-
DSP 1553B总线 F2812 开发板 BU61580开发系统
【实例简介】1553B-F2812开发系统是本公司最新推出的嵌入式1553B总线开发系统系列产品的中又一力作。1553B-F2812开发系统由F2812平台系统以及1553B总线子系统构成。1553B总线协议部分采用美国DDC公司的1553B总线通讯引擎BU61580S3,控制、管理BU61580S3的CPU采用TI公司经典的数字信号处理芯片TMS320F2812,BU61580S3与TMS320F2812二者强强联合共同构成了1553B-F2812开发系统。开发者基于此系统不但可以开展1553B总线协议、1553B总线BCRT模式控制等方面的学习,而且还可以开展DSP(F2812)处理器方面的系统化的学习过程。此套系统所具有的硬件资源以及软件资源相当丰富,提供了包括1553B总线BC模式、RT模式等20多个实验项目,提供了完整的硬件系统原理图、软件实验代码和常用的外围端口资源,同时开发系统的硬件构成解析以及软件代码讲解都非常详尽,这样使得初学者、初步开发者能够很快的掌握如此复杂、如此深奥的1553B总线以及F2812等方面的相关知识。
同时1553B-F2812开发系统完全可以作为公司、高校以及各大研究院所的研究和教学工具。另外1553B-F2812开发系统在硬件设计方面充分考虑了EMC、EMI以及散热等因素,最大限度的引出了系统的所有端口资源,用户可以直接作为一个功能模块内嵌到用户的目标产品中,因此可以大大缩短用户的1553B总线系统的开发周期。
- 2021-11-14 00:40:54下载
- 积分:1
-
PID算法实现代码,包括增量式和位置式PID代码
PID算法实现代码,包括位置式增量式数字PID实现代码。对大家编写PID程序有帮助哦。
- 2020-12-05下载
- 积分:1
-
matlab仿真雷达(SAR)点目标成像算法
点目标成像程序,对于SAR成像初学者非常有用。里面包含多点目标成像(用RD算法),包含距离徙动矫正,最后结果的评价
- 2020-12-05下载
- 积分:1
-
GPS,GLONASS,COMPASS联合伪距差分定位
包括读取RENIX观测、导航文件GPS,GLONASS,COMPASS的卫星位置计算程序三种星座的联合差分定位(代码附有详细注释)
- 2020-12-04下载
- 积分:1
-
ex4 to mq4 所有版本201905.rar
ex4 to mq4 所有版本所有版本,有的是要交费的,我花许多积分下载的,给大家分享
- 2020-11-29下载
- 积分:1
-
asp.net 项目开发案例
内有12个项目 图书管理系统 博客系统 考试系统===
- 2020-11-02下载
- 积分:1
-
基于模糊PID控制的智能小车控制器的研制
中文期刊网下的 只为挣点分 希望作者别追究责任 一个研究生论文 很不错的 很有用 本人绝没骗人
- 2021-05-07下载
- 积分:1
-
J.D.Aderson 计算流体力学CFD入门中译本
流体力学CFD书籍,内容丰富,讲述详细,很适合初学者参考学习。
- 2020-12-11下载
- 积分:1
-
基于Android的天气预报课程设计源代码和开发文档
基于Android的天气预报课程设计源代码和开发文档,比较适合大家交软件设计这门课的大作业
- 2020-06-24下载
- 积分:1
-
内存乒乓缓存机制和消息分发机制的C代码实现
用C代码实现乒乓内存缓冲机制,具体实用价值,帮助您提高内存响应速度与及时数据的处理。unsigned long writeunsigned long greadunsigned long overflowST TWTMSG QUEUE:/ Helper macros for accessing Msg queues. *#define tWt QUEUE EMPty(a)(((g->write==(q)->gread)? 1: 0)#define twt_ QUeUe full(a)(((((q)->qwrite +1% TIMEWEIGHT TASKQUEUE SIZED)==(q)->gread)?1: 0)米 generate a Msg entity*正常返回消息体的指针,异常返回NULLT TWTMSG* generateMsg(tT-TWTMSG* pmSg=nULL,if(NULL =-(ptMsg malloc(sizeof(T TWTMSG)))return NULL;memset(ptMsg, 0, sizeof(T TWTMSG)return pmSg;destroy a Msgvoid destroy Msg(t TWTMSG ptMsgif(NULL ptMsg->pfDestroyMsg)pt Msg->pfDestroy Msg(ptMsg->pvMsg)if (NULL != pt Msg)free(pmSgfree a Msg Queuevoid freeTWTMsg Que(T TWTMSG QUEUE* ptMsgQif(NULL =ptMsg Afree(ptMsg Q);Init a Msg QT TWTMSG QUEUE* initTWTMsg QueoT TWTMSG QUEUE pmSg Q= NULlif (NULL ==(ptMsgQ malloc(sizeof(T_ TWTMSG QUeue)goto ErrRetmemset(ptMsgQ, 0, sizeof(T TWTMSG QUEUE))return pmSg Q;Errretprintf( initTWTMsg Que Fail! ")freeTWTMsgQue(ptMsg Q)return nullPop a pvMsg packet from a msg packet queues param g is the packet queue from which to pop the pbuf@return pointer to pvMsg packet if available, NULl otherwiseT TWTMSG* TWTMsg Get(T_ TWTMSG QUEUE aT TWTMSG*//*加锁if(TWT_ QUEUE_ EMPTY(a))iReturn a NUll pointer if the queue is emptypmSg=NULL;else is The queue is not empty so return the next frame from itand adjust the read pointer accordinglypmSg=g->pvMsglq >greadg->gread =((q->gread +1)% TIMEWEIGHT_TASKQUEUE_ SIZE)/*解锁return(pmSg);Push a pmSg packet onto a pvMsg packet queue@param p is the pmsg to push onto the packet queue@param g is the packet queue.W @return 0 if successful, -1 if q is fullnt TWTMsg Send(T tWTMSg*p, T TWTMSG QUEUE *qint ret/if(!TWT_ QUEUE FULL(al)iThe queue isn t full so we add the new frame at the currentw write position and move the write pointer.g->pvMsgla->write]=pg- >write =((q->qwrite+1)% TIMEWEIGHT TASKQUEUE SIZE;ret =oThe stack is full so we are throwing away this value. Keep trackof the number of times this happensg->overflow++ret =-1://*解锁return(ret)**米**米来米***来米*半米*米*半米*米求***半*米米求半**米求半**半求半和*米*//消息分发机制//*算法是//*正常返回0,出错返回-1水米米******水*米*水**米*半*水米米冰半**水水*水米米半米冰水*米水水*水*米水水extern int RecToFile MsgProc(T_ MSG_ REC2 FILE* ptMsg);int DispatchMsg(T TWTMSG *ptMsgitif(NULl = ptMsg goto ErrRet/*dispatch msg*/switch(ptMsg->en Msg Type)case TWT PINgPoNgBuff recRecTo File Msg Procl(TMSG_REC2FE) (pmSg->pMsg);/*处理消息*/destroy Msg( pmSg;/*消毁消息breakdefault.printf("Dispatch Msg Msgtype Error! n")break.return 0ErrRetprintf("Dispatch Msg Fail! ";return-1./*buff size*/#defineP| NGPONG_ BUFF BSIZE0X20000//10*1024*1024/*10M*/*ping pong buff*///chargacPINGBUFF[PINGPONG BUFF BSIZE]; /* Ping Buff*///chargacPONGBUFF[PINGPONG_ BUFF BSIZE] *Pong Buff*/水米米*********米*水**米*半*水米米水**冰水*水米米半半水半米冰水*米水水*水*米米//*释放 ping pong buff/必然成功//*无返回木***木*水****本**水*水水*水****本水**水水****水水***本***米*水void Destroy Ping Pong Butt(T PINGPONGBUFF USE DES ptPing Pong Butt)nLoopif (NULL = pt Ping pong buffreturnfor (nLoop=0; nLooptIng BuffUse[nLoop]. pcHeadAddr)free(ptPing Pong ->t Ping BuffUse[nLoop]. pcHeadAddr)free(pt Ping pong Buff)/初始化 ping pong buff返回 pign pong buff的描述指针//*正常返回0,出错返回-1水水水水水水水水水木水木水水水水水木水木水水水水水水水水本水水水水水水水水水本水水水水水水水水水水水水水T PINGPONGBUFF USE DES InitPing Pong Buff(unsigned int n BuffSizeT PINGPONGBUFF USE DES* ptBuffDes=NULLintnLoop/*获取buf描述*if NULL==(ptBuffDes=malloc(sizeof(T PINGPONGBUFF USE DES))))goto ErrRetmemset(pt BuffDes, 0, sizeof(T_PINGPONGBUFF USE_ DES));/*分别初始化ping和pong*/for(nLoop=0; nLooptIng BuffUsenLoop pcHeadAddr =malloc n BuffSize))goto Err Ret;ptBuffDes->tIng BuffUselnLoop] nBuffSize nBuffsizeptBuffDes->tPing BuffUse[nLoop]. oFfsetptBuffDes->tPing BuffUsenLoop) eUseStatus-=BUFF WRITEABLE;pt BuffDes->eCurUseIDBUFF PINGreturn pt BuffDesErrretprintf("lnitPing Pong Buff Fail!");DestroyIng Pong Buff(pt BuffDes)turn null平**米**米*米***来米米*米*米*半米*米米米来*半米平**米米求*来*半求半来*米求*和*米*/*Reset ping pong buff//*正常返回0,出错返回-1米米米米水冰米*米米水**米米冰*米水米米米米水米水*水米米来米米x米来米米水冰来来宋来水米来米来冰#define ResetBuffUse(ptBuffuse)pt BuffUse->oFfset0pt BuffUse->eUseStatus BUFF WRITEABLEgenerate a file rec msg*正常返回消息体的指针,异常返回NULLT_MSG_REC2lGK SenFRMSB(T_BUFF_USE_DES *ptBuffUse, REC_FILE_DESLIST *ptFileListRT MSG REC2FILE KE* ptRFMsg= NULL;if(NULL ==(ptRFMsg malloc(sizeof(T_ MSG REC2 FILE)return nUllptRFMsg- >pt BuffUse pt BuffUseptRFMsg->pt Filelist ptFilelist;return ptRFMsg
- 2020-12-03下载
- 积分:1