dsp28335中文手册板子调试过程中的问题

21ic官方微信-->
后使用快捷导航没有帐号?
查看: 1687|回复: 4
调试28335时出现问题,求解决
&&未结帖(20)
主题帖子积分
实习生, 积分 36, 距离下一级还需 14 积分
实习生, 积分 36, 距离下一级还需 14 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 36, 距离下一级还需 14 积分
实习生, 积分 36, 距离下一级还需 14 积分
问什么debug的最后一步会出现load program error,然后out文件出不来
主题帖子积分
主题帖子积分
专家等级:结帖率:70%打赏:75.00受赏:2921.20
主题帖子积分
编译过程中只要error& &都不能生产.out
首先确保编译过程中没有错误&&生产.OUT后再去load
欢迎进入 &
& && && & TI忠诚粉丝!
H-JTAG ARM仿真器代理
主题帖子积分
实习生, 积分 42, 距离下一级还需 8 积分
实习生, 积分 42, 距离下一级还需 8 积分
主题帖子积分
专家等级:结帖率:33%
主题帖子积分
实习生, 积分 42, 距离下一级还需 8 积分
实习生, 积分 42, 距离下一级还需 8 积分
I:\& & Debug界面,load program 时,会出现 no source available for &0x3ff9ce& 。用的是28335、ccs5,Boot to SARAM,不知道是什么原因引起的?还请解答,谢谢& &&&
主题帖子积分
主题帖子积分
专家等级:结帖率:70%打赏:75.00受赏:2921.20
主题帖子积分
pandabin 发表于
Debug界面,load program 时,会出现 no source available for &0x3ff9ce& 。用的是28335、ccs5,Boot&&...
这个就说不好了
欢迎进入 &
& && && & TI忠诚粉丝!
H-JTAG ARM仿真器代理
主题帖子积分
主题帖子积分
专家等级:结帖率:70%打赏:75.00受赏:2921.20
主题帖子积分
pandabin 发表于
Debug界面,load program 时,会出现 no source available for &0x3ff9ce& 。用的是28335、ccs5,Boot&&...
0x3ff9ce为BOOT ROM区域,不是FLASH区,因此是没有源代码的。
欢迎进入 &
& && && & TI忠诚粉丝!
H-JTAG ARM仿真器代理
技术新星奖章
人才类勋章
技术领袖奖章
人才类勋章
时间类勋章
坚毅之洋流
发帖类勋章
荣誉元老奖章
等级类勋章
时间类勋章
热门推荐 /5DSP28335+RTL8019调试问题 - mumu1xingxing2的日志 -
电子工程世界-论坛
DSP28335+RTL8019调试问题
热度 1已有 2469 次阅读 10:49
自己做的一块DSP+RTL8019的板子,接线图参照研旭至尊版以及网上资源。程序如下,参照网上8019驱动程序。程序在研旭至尊版上运行正常。但是在自己做的板子上调不通。请大家多多指教!!!
<FONT color=#、net.h
#define&&RTL8019BASE&&0x4900
#define&&Reg00&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x00)))#define&&Reg01&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x01)))#define&&Reg02&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x02)))#define&&Reg03&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x03)))#define&&Reg04&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x04)))#define&&Reg05&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x05)))#define&&Reg06&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x06)))#define&&Reg07&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x07)))#define&&Reg08&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x08)))#define&&Reg09&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x09)))#define&&Reg0a&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x0A)))#define&&Reg0b&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x0B)))#define&&Reg0c&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x0C)))#define&&Reg0d&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x0D)))#define&&Reg0e&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x0E)))#define&&Reg0f&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x0F)))#define&&Reg10&(*((volatile&unsigned& int& *)(RTL8019BASE + 0x10)))
#define MY_UDP_PORT& &&&&& 8763#define SOCKET_ERROR&& 0xFFFF
#define ETH_HEADER_START&&&& 0#define IP_HEADER_START&&&&& 7#define ARP_HEADER_START&&&& 7#define UDP_HEADER_START&&&& 17#define ICMP_HEADER_START&&& 17#define USER_DATA_START&&&&& 27
#define RTL8019_HEADER_SIZE& 2 #define ETH_HEADER_SIZE&&&&& 7#define IP_HEADER_SIZE&&&&&& 10#define UDP_HEADER_SIZE&&&&& 4#define ARP_FRAME_SIZE&&&&&& 14
#define Frame_ARP&&&&&&&&&&& 0x0806#define Frame_IP&&&&&&&&&&&& 0x0800#define Ip_Edition&&&&&&&&&& 0x4500&&&&&&&&&&&&& //Ip 版本和IP首部长度#define DEFUALT_TTL&&&&&&&&& 128
#define HARDW_ETH&&&&&&&&&&& 1#define IP_HLEN_PLEN&&&&&&&& 0x0604#define OP_ARP_REQUEST&&&&&& 1#define OP_ARP_ANSWER&&&&&&& 2
#define PROTOCOL_TCP&&&&&&&& 6#define PROTOCOL_UDP&&&&&&&& 17&void&Init8019();Uint16&RecFrame();void &ArpRequest(void);void&ArpAnswer(void);Uint16& SwapWord(Uint16 Data);
void &UDPActiveTxData(void);void&&& Prepare_UDP_Frame(Uint16 RemoteUdpPort,Uint16 TxUDPDataNum);void &CopyFrameFromBE(Uint16 Offset,Uint16 Size);void&ProcessEthIAFrame(void);
void&SendFrame(Uint16 *TxdNetBuff,Uint16 length);void &WriteDWord(Uint16 *Address,Uint32 Data);Uint16 &CalcCheckSum(Uint16 *Start, Uint16 Count, Uint16 IsTCP, Uint16 IsUDP);void&SendFrame(Uint16 *TxdNetBuff,Uint16 length);void &UDP_Init(void);void&&& Process_UDP_Frame(void);void &UDPStart(void);void &UDPStop(void);void &UDPStopping(void);void &UDPConnecting(void);Uint16&UDPGetData(Uint16 *DataBuf);void&StopUDPConnection(void);void&PollData(void);void&EstablishUDPConnection(void);void&PollDataActive(void);interrupt void ISRTimer0(void);void &scic_echoback_init(void);void &scic_fifo_init(void);void &scic_xmit(int a);void &scic_msg(char *msg);
//========================== end ==========================
<FONT color=#、net.c
void&page(Uint16 pagenumber)&&{&&&Uint16&&&&temp = Reg00;&&&&//command register&&&temp = temp & 0x3B ; &&&//注意txp位不能要&&&pagenumber=pagenumber &&6;&&&temp=temp |&&&Reg00=&&}void&Init8019()&&{&&&&SRT0819_H=1;&&&&&&&DELAY_US(50000);&&&&SRT0819_L=1;&&&&&&DELAY_US(10000);& &Reg00=0x21;&& //使芯片处于停止模式,这时进行寄存器设置
&&&DELAY_US(10000); //延时10毫秒,确保芯片进入停止模式&&&page(0);&&&Reg0a=0x00;&& //清rbcr0&&&DELAY_US(5);&&&Reg0b=0x00;&& //清rbcr1&&&DELAY_US(5);&&&Reg0c= 0xe0;& //RCR,监视模式,不接收数据包&&&&&&&&& &&&DELAY_US(5);&&&Reg0d= 0xe2;& //TCR,loop back模式&&&DELAY_US(5);
&&&Reg01=0x4c;&&&DELAY_US(5);&&&Reg02=0x80;&&&DELAY_US(5);&&&Reg03=0x4c;&&&DELAY_US(5);&&&Reg04=0x40;& //TPSR,发送起始页寄存器&&&DELAY_US(5);&&&Reg07=0& //清除所有中断标志位,中断状态寄存器&&&DELAY_US(5);&&&Reg0f=0x00;& //中断屏蔽寄存器清0,禁止中断&&&DELAY_US(5);
&&&Reg0e=0xc9;& // 数据配置寄存器,16位dma方式&&&DELAY_US(5);&&&page(1);&&&DELAY_US(15);&&&Reg07=0x4d;&&&DELAY_US(5);&&&Reg08=0x00;&&&DELAY_US(5);&&&Reg09=0x00;&&&DELAY_US(5);&&&Reg0a=0x00;&&&DELAY_US(5);&&&Reg0b=0x00;&&&DELAY_US(5);&&&Reg0c=0x00;&&&DELAY_US(5);&&&Reg0d=0x00;&&&DELAY_US(5);&&&Reg0e=0x00;&&&DELAY_US(5);&&&Reg0f=0x00;&&&DELAY_US(5);
&&& &&Reg01=0x02;&&&DELAY_US(5);&&& &&Reg02=0xE0;&&&DELAY_US(5);&&& &&Reg03=0x4C;&&&DELAY_US(5);&&& &&Reg04=0xA0;&&&DELAY_US(5);&&& &&Reg05=0x7E;&&&DELAY_US(5);&&& &&Reg06=0x7A;&&&DELAY_US(5);
&&&page(0);&&&DELAY_US(15);&&&Reg0c=0xc2;& //将芯片设置成正常模式,跟外部网络连接&&&DELAY_US(5);&&&Reg0d=0xe0;&&&DELAY_US(5);&&&Reg00=0x22;& //启动芯片开始工作&&&DELAY_US(5);//-----------------------------------&&&Reg07=0& //清除所有中断标志位&&&DELAY_US(5);&&}
Uint16 CalcCheckSum(Uint16 *Start, Uint16 Count, Uint16 IsTCP, Uint16 IsUDP){&&& Uint32 Sum = 0;& &&& if ((IsTCP)||(IsUDP)) &&& {&&&&&&& Sum += MyIP[0];&&&&&&& Sum += MyIP[1];&&&&&&& Sum += RemoteIP[0];&&&&&&& Sum += RemoteIP[1];&&&&&&& Sum += SwapWord(Count*2);&&&&&&& if(IsTCP)&&&&&&&&&&&& Sum += SwapWord(PROTOCOL_TCP);&&&&&&& else&&&&&&&&&&&& Sum += SwapWord(PROTOCOL_UDP);&&& }&&& while (Count & 0) &&& {&&&&&&& Sum += *S&&&&&&& Start ++;&&&&&&& Count --;&&& }&&& Sum = (Sum & 0xFFFF) + ((Sum && 16) & 0xFFFF);&&& if(Sum & 0xFFFF0000)&&&&&&& Sum++;&&& return((Uint16)((~Sum) & 0xFFFF));}
void&SendFrame(Uint16 *TxdNetBuff,Uint16 length)&&{&&&Uint16&i,&&&& &if(length&60/2)&&&&&& &&&{&&&&&&&&& &&&for(i=i&60/2;i++)&TxEthnetFrameBuffer[i]=0;&&&&&&&&& &&&length=60/2;&&&&&& &&&}&&&&&&page(0);&&&DELAY_US(5);&&&&&//切换至第0页&&&length = length &&1;&&&gsu16_TxBufFlag=!gsu16_TxBufF&&&//设置两个发缓区,提高发送效率&&&if(gsu16_TxBufFlag)&&&&{Reg09=0x40 ;}&&&&//设置发送页地址&&&else&&&&{Reg09=0x46 ;}&&&&//设置发送页地址&&& &&DELAY_US(5);&&&Reg08=0x00; &&&&&//read page address low&&&DELAY_US(5);&&&Reg0b = (length &&8) & 0&&&&//写发送长度高位&&&DELAY_US(5);&&&Reg0a = length & 0&&&&&&& //写发送长度低位& &&&DELAY_US(5);&&&Reg00=0x12;&&&&&&//write dma, page0&&&DELAY_US(5);
&&&for(i=0;i&length/2;i++)&&&&{&&&&&Reg10 = TxEthnetFrameBuffer[i];&& &&&&}/***************************************///以下为终止DMA操作&&&Reg0b=0x00; &&&DELAY_US(5);&&&Reg0a=0x00;&&&DELAY_US(5);&&&Reg00=0x22;&&&&DELAY_US(5);&&//结束或放弃DMA操作/***************************************/
&&&for(i=0;i&6;i++)&//最多重发6次&&&&{&&&&&for(ii=0;ii&1000;ii++)&&& &&&&&{//检查CR寄存器的txp位是否为低,为1说明正在发送,为0说明发完或出错放弃&&&&&&& &&&&&if((Reg00 & 0x04)==0)& &&&&&&& &&&&&&{ }&&&&&&& &&&&}&&&&&if((Reg04 & 0x01)!=0)//表示发送成功,判断发送状态寄存器TSR,决定是否出错&&&&&&{};&&&&&Reg00=0x1e;&&&&&DELAY_US(5);&&&&}
&&&Reg07=0&&&DELAY_US(5);&&&if(gsu16_TxBufFlag)&&&&{& &&&&&Reg04=0x40;&& //& &&&&}&&&else&&&&{&&&& &&&&Reg04=0x46;& //&&& &&&}&&&DELAY_US(5);&&&Reg06=(length&&8) & 0& //high byte counter&&&DELAY_US(5);&&&Reg05=length & 0//low byte counter&&&DELAY_US(5);&&&Reg07=0&&&DELAY_US(5);&&&Reg00=0x1e;&&&&&& //&&&DELAY_US(5);&}Uint16&RecFrame()&&{&&&Uint16&i,&&&Uint16&Temp,&&&union{&&&&&Uint16&&&&&&&struct{&&&&&&&Uint16&high:8;&&&&&&&Uint16&low:8;&&&&&&& }e;&&&& }d;&&&& &&& &&&&&page(0);&&&DELAY_US(15);&&&bnry = Reg03;&&&&//bnry page have read 读页指针&&&bnry = bnry & 0x00FF;&&&page(1);&&&DELAY_US(15);&&&curr = Reg07;&&&&//curr writepoint 8019写页指针&&&curr = curr & 0x00FF;&&&page(0);&&&if((curr==0))return(0);&//读的过程出错&&&bnry++;&&&if(bnry&0x7f)&bnry=0x4c;&&&if(bnry!=curr)&&&//此时表示有新的数据包诨撼迩?&&& &&&{&&&&&//在任何操作都最好返回page0&&&& &&&&page(0);&&&& //=======================================&&&&&DELAY_US(15);&&&& &&&&Reg09=&&//读页地址的高字节&&&&&DELAY_US(5);&&&& &&&&Reg08=0x00; &//读页刂返牡妥纸?&&&&&DELAY_US(5);&&&& &&&&Reg0b=0x00;&&//读取字节计数高字节&&&&&DELAY_US(5);&&&& &&&&Reg0a=18;&&&&&& //读取字节计数低字节&&&&&DELAY_US(5);&&&& &&&&Reg00=0x0a;&&&& //启动Remote DMA读操作&&&&&DELAY_US(5);& & &&&& &&&&for(i=0;i&9;i++)&//读取一包的前18个字节:4字节的8019头部,6字节目的地址,6字节原地址,2字节协议&&&&&&&&&&&&&&&&&&& &{&&&&&&&&&&&&&&&&&&&&&& &&RxEthnetFrameBuffer[i]=Reg10;&&&&&&&&&&&&&&&&&&&&& &}&//=======================================中止DMA操作&&&& &&&&Reg0b=0x00;&//&&&&&DELAY_US(5);&&&& &&&&Reg0a=0x00;&//&&&&&DELAY_US(5);&&&& &&&&Reg00=0x22;&//结束或放弃DMA操作&&&&&DELAY_US(5);&//=======================================&&&&&&&&&&d.total = RxEthnetFrameBuffer[0];&&&&&length = RxEthnetFrameBuffer[1];&&&& &&&&if(((d.e.high & 0x01)==0)||(d.e.low & 0x7f) || (d.e.low & 0x4c)||( length & 1518))&&& &&&&&{//接收状态错误或下一数据包的起始页地址错误或接收的数据包长度&1500字节&&&&&& &&&&&&page(1);&&&&&&&DELAY_US(15);&&&&&&&curr=Reg07; &//page1&&&&&&&DELAY_US(5);&&&&&&&page(0);&&//切换回page0&&&&&&&DELAY_US(15);&&&&&&& &&&&&bnry = curr -1;&&&&&&& &&&&&if(bnry & 0x4c) &bnry =0x7f;&&&&&&& &&&&&Reg03= &//write to bnry&&&& &&&&&&&DELAY_US(5);&&&&&&& &&&&&Reg07=0&&&&&&&DELAY_US(5);&&&&&&&return(0);&&&&&&&&&&&&& &&&}//=============================================&&&&&&&&&&& &&&& &&&&else//表示数据包是完好的.读取剩下的数据&&&& &&&&&{&&&& &&&&&&Temp = SwapWord(RxEthnetFrameBuffer[8]);&&&&&&&&& &&&&&if((Temp == Frame_IP)||(Temp == Frame_ARP))&&&&&&&&{ //协议为IP或ARP才接收&&&&&&&&&&&&&&& &&&&&Reg09 =&& &&&&//read page address high&&&&&&&&&DELAY_US(5);&&&&&&&&&&&&&&& &&&&&Reg08 = 4;&&&&& &&&&//read page address low&&&&&&&&&DELAY_US(5);&&&&&&&&&&&&&&& &&&&&Reg0b = (length&&8) & 0& //read count high&&&&&&&&&DELAY_US(5);&&&&&&&&&&&&&&& &&&&&Reg0a = length & 0//&&&&&&&&&DELAY_US(5);&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&& &&&&&Reg00=0x0a;&&&&&&&&&&&&&&&&&&&&&&&&&&&& //read dma&&&&&&&&&DELAY_US(5);&&&&&&&&&&&&& &length=(length+1)/2;&&&&&&&&&&&&&&& &&&&&for(ii=2;ii&length+2;ii++)&&&&&&&&&&&&&&& &&&&&&{&&&&&&&&&&&&&&& &&&&&&&RxEthnetFrameBuffer[ii]=Reg10;&&&&&&&&&&&&&&& &&&&&&}&&&&&&&&&&&&&&&&&&&&&&& &&&//================终止DMA操作&&&&&&&&&&&&&&&&&&&&&&& &&&Reg0b=0x00;&&&//read count high&& &&&&&&&&&DELAY_US(5);&&&&&&&&&&&&&&&&&&&&&&& &&&Reg0a=0x00;&&&//&&&&&&&&&DELAY_US(5);&&&&&&&&&&&&&&&&&&&&&&& &&&Reg00=0x22;&&&//结束或放弃DMA&&&&&&&&&DELAY_US(5);&&&&&&&&&&&&&&&&&&&&&&& &&&//============================&&&&&&&&&&&&&&&&&&&&&&& &&}&&&&&&&&&&&&&&&&&&&&&&& &&//=========================================&&&&&&&&&&&&&&&&&&&&&&& &d.total = RxEthnetFrameBuffer[0];&&&&&&&&&&&&&&&&&&&&&&& &bnry = d.e.low - 1;&&&&&&&&&&&&&&&& &&&if(bnry&0x4c)&bnry=0x7f;&&&&&&&& &&&&Reg03=&&&&& //write to bnry&&&&&&&DELAY_US(5);&&&&&&&&&&&&&&& &&&Reg07=0&&&&&&&DELAY_US(5);//--------------------------------------&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&& &&&gu16_RxSuccessFlag=1;//--------------------------------------&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&& &&&return(1);&& //have new packet&&&&&&&&&&&&&& &&&}&& &&&&}&&&else{&&&&&&return(0);&&&&}&&&}
Uint16 SwapWord(Uint16 Data){&&& return((Data&&8)|(Data&&8));}
void WriteDWord(Uint16 *Address,Uint32 Data){&&& Uint16 T&&& Temp=(Uint16)(Data&&16);&&& *Address=SwapWord(Temp);&&& Temp=(Uint16)(Data&0x0000FFFF);&&& *(Address+1)=SwapWord(Temp);}
void CopyFrameFromBE(Uint16 Offset,Uint16 Size){&&& Uint16 i,T&&& for(i=0;i&Si++)&&& {&&&&&&&& Temp=*(RxEthnetFrameBuffer+Offset+i);&&&&&&&& *(RxEthnetFrameBuffer+Offset+i)=SwapWord(Temp);&&& }}
//============================================================//======================== ARP ================================void ArpRequest(void){&*(TxEthnetFrameBuffer + ETH_HEADER_START +0) = 0xFFFF;&*(TxEthnetFrameBuffer + ETH_HEADER_START +1) = 0xFFFF;&*(TxEthnetFrameBuffer + ETH_HEADER_START +2) = 0xFFFF;& &&& memcpy((TxEthnetFrameBuffer+ETH_HEADER_START+3),&MyMAC,3);&&& *(TxEthnetFrameBuffer+ETH_HEADER_START+6)=SwapWord(Frame_ARP);//ARP&&& *(TxEthnetFrameBuffer+ARP_HEADER_START+0)=SwapWord(HARDW_ETH);&&& *(TxEthnetFrameBuffer+ARP_HEADER_START+1)=SwapWord(Frame_IP);&&& *(TxEthnetFrameBuffer+ARP_HEADER_START+2)=SwapWord(IP_HLEN_PLEN);&&& *(TxEthnetFrameBuffer+ARP_HEADER_START+3)=SwapWord(OP_ARP_REQUEST);&&& memcpy((TxEthnetFrameBuffer+ARP_HEADER_START+4),&MyMAC,3);&&& memcpy((TxEthnetFrameBuffer+ARP_HEADER_START+7),&MyIP,2);&&& *(TxEthnetFrameBuffer + ARP_HEADER_START + 9) = 0;&&& *(TxEthnetFrameBuffer + ARP_HEADER_START + 10) = 0;&&& *(TxEthnetFrameBuffer + ARP_HEADER_START + 11) = 0;&&& &&& if(((RemoteIP[0]^MyIP[0])&SubnetMask[0])||((RemoteIP[1]^MyIP[1])&SubnetMask[1]))&&&&&&&& memcpy((TxEthnetFrameBuffer+ARP_HEADER_START+12),&GatewayIP,2);&&& else&&&&&&&& memcpy((TxEthnetFrameBuffer+ARP_HEADER_START+12),&RemoteIP,2);&&& gu16_TxFrameSize=ETH_HEADER_SIZE+ARP_FRAME_SIZE; &&& SendFrame(TxEthnetFrameBuffer,gu16_TxFrameSize);}
void ArpAnswer(void){&&& memcpy((TxEthnetFrameBuffer+ETH_HEADER_START+0),&RemoteMAC,3);&&& memcpy((TxEthnetFrameBuffer+ETH_HEADER_START+3),&MyMAC,3);&&& *(TxEthnetFrameBuffer+ETH_HEADER_START+6)=SwapWord(Frame_ARP);//ARP&&& &&& *(TxEthnetFrameBuffer+ARP_HEADER_START+0)=SwapWord(HARDW_ETH);&&& *(TxEthnetFrameBuffer+ARP_HEADER_START+1)=SwapWord(Frame_IP);&&& *(TxEthnetFrameBuffer+ARP_HEADER_START+2)=SwapWord(IP_HLEN_PLEN);&&& *(TxEthnetFrameBuffer+ARP_HEADER_START+3)=SwapWord(OP_ARP_ANSWER);&&& memcpy((TxEthnetFrameBuffer+ARP_HEADER_START+4),&MyMAC,3);&&& memcpy((TxEthnetFrameBuffer+ARP_HEADER_START+7),&MyIP,2);&&& memcpy((TxEthnetFrameBuffer+ARP_HEADER_START+9),&RemoteMAC,3);&&& memcpy((TxEthnetFrameBuffer+ARP_HEADER_START+12),&RemoteIP,2);&&& gu16_TxFrameSize=ETH_HEADER_SIZE+ARP_FRAME_SIZE;&&& SendFrame(TxEthnetFrameBuffer,gu16_TxFrameSize);}
/***************TCP/IP*****************/
void ProcessEthBroadcastFrame(void){&&& Uint16 TargetIP[2],FrameL&&& &FrameLenth=5;&&& CopyFrameFromBE(RTL8019_HEADER_SIZE+6,FrameLenth);&&& memcpy(&gu16_RecdFrameMAC,(RxEthnetFrameBuffer+ETH_HEADER_START+RTL8019_HEADER_SIZE+3),3);&&& if(*(RxEthnetFrameBuffer+ETH_HEADER_START+RTL8019_HEADER_SIZE+6)==Frame_ARP)&&& {&&&&&&&& if(*(RxEthnetFrameBuffer+ARP_HEADER_START+RTL8019_HEADER_SIZE)==HARDW_ETH)&&&&&&&& {&&&&&&&&&&&&& if(*(RxEthnetFrameBuffer+ARP_HEADER_START+RTL8019_HEADER_SIZE+1)==Frame_IP)&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&& if(*(RxEthnetFrameBuffer+ARP_HEADER_START+RTL8019_HEADER_SIZE+2)==IP_HLEN_PLEN)&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&& if(*(RxEthnetFrameBuffer+ARP_HEADER_START+RTL8019_HEADER_SIZE+3)==OP_ARP_REQUEST)&&&&&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&&&&&&& memcpy(&gu16_RecdFrameIP,(RxEthnetFrameBuffer+ARP_HEADER_START+RTL8019_HEADER_SIZE+7),2);&&&&&&&&&&&&&&&&&&&&&&&&&&&& memcpy(&TargetIP,(RxEthnetFrameBuffer+ARP_HEADER_START+RTL8019_HEADER_SIZE+12),2);&&&&&&&&&&&&&&&&&&&&&&&&&&&& if((MyIP[0]==TargetIP[0]) && (MyIP[1]==TargetIP[1]))&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ArpAnswer();&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& gu16_ARPAnswerSuccessFlag=1;&&&&&&&&&&&&&&&&&&&&&&&&&&&& }&&& &&&&&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&& }&&&&&&&& }&&& }&&&&&&&&&&&&&& }
void ProcessEthIAFrame(void){&&& Uint16 FrameType,IpHeaderLenth,ProtocolT&&& &&& CopyFrameFromBE(RTL8019_HEADER_SIZE+6,1);&&& &&& memcpy(&gu16_RecdFrameMAC,(RxEthnetFrameBuffer+ETH_HEADER_START+RTL8019_HEADER_SIZE+3),3);&&& FrameType=*(RxEthnetFrameBuffer+ETH_HEADER_START+RTL8019_HEADER_SIZE+6);&&& switch(FrameType)&&& {&&&&&&&& case Frame_ARP:&&&&&&&& {&&&&&&&&&&&&& CopyFrameFromBE(ARP_HEADER_START+RTL8019_HEADER_SIZE+0,4);&&&&&&&&&&&&& if(*(RxEthnetFrameBuffer+ARP_HEADER_START+RTL8019_HEADER_SIZE+2)==IP_HLEN_PLEN)&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&& if(*(RxEthnetFrameBuffer+ARP_HEADER_START+RTL8019_HEADER_SIZE+3)==OP_ARP_ANSWER)&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&& memcpy(&gu16_RecdFrameMAC,(RxEthnetFrameBuffer+ARP_HEADER_START+RTL8019_HEADER_SIZE+4),3);&&&&&&&&&&&&&&&&&&&&&&& memcpy(&gu16_RecdFrameIP,(RxEthnetFrameBuffer+ARP_HEADER_START+RTL8019_HEADER_SIZE+7),2);&&&&&&&&&&&&&&&&&&&&&&& gu16_ARPAnswerSuccessFlag=1;&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&& }&&&&&&&& }&&&&&&&&&&&&&&&& case Frame_IP:&&&&&&&& {&&&&&&&&&&&&& CopyFrameFromBE(IP_HEADER_START+RTL8019_HEADER_SIZE+0,1);&&&&&&&&&&&&& IpHeaderLenth=*(RxEthnetFrameBuffer+IP_HEADER_START+RTL8019_HEADER_SIZE);&&&&&&&&&&&&& if((IpHeaderLenth & 0xFF00)==Ip_Edition)&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&& IpHeaderLenth=5*(32/8)/2;&&&&&&&&&&&&&&&&&& CopyFrameFromBE(IP_HEADER_START+RTL8019_HEADER_SIZE+1,IpHeaderLenth-1-4);&&&&&& gu16_RecdIpFrameLenth=*(RxEthnetFrameBuffer+IP_HEADER_START+RTL8019_HEADER_SIZE+1)/2;&&&&&&&&&&&&&&&&&& ProtocolType=*(RxEthnetFrameBuffer+IP_HEADER_START+RTL8019_HEADER_SIZE+4) & 0x00FF;&&&&&&&&&&&&&&&&&& memcpy(&gu16_RecdFrameIP,(RxEthnetFrameBuffer+IP_HEADER_START+RTL8019_HEADER_SIZE+6),2);&&&&&&&&&&&&&&&&&& if(ProtocolType==PROTOCOL_UDP)&&&&&&Process_UDP_Frame();&&&&&&&&&&&&& }&&&&&&&& }&&&&&&&&&& default:&&& }}
//======================= END ===============================
<FONT color=#、
const Uint16 MyMAC[] = &&//02-E0-4C-A0-7E-7A{0xE002,0xA04C,0x7A7E};
const Uint16 MyIP[] =&&//192.168.1.11&{0xA8C0,0x0C01};
const Uint16 RemoteMAC[] = //00-09-FB-1D-A7-CD{0xDFB,0xCDA7};
const Uint16 RemoteIP[] =&//192.168.1.6{0xA8C0,0x0601};
const Uint16 SubnetMask[] =&//255.255.255.000{0xFFFF,0x00FF};
const Uint16 GatewayIP[] = &//192.168.1.1{0xA8C0,0x0101};
评论 ( 个评论)
Powered byCCS3.3下开发28335碰到的数据格式问题-电子产品世界论坛
CCS3.3下开发28335碰到的数据格式问题
我现在使用的是TMS320x28335,CCS3.3版本进行仿真,watch window中8位变量显示为16位,例如:
Uint8 uc_BufTdSci[700];
Uint8 uc_BufRdSci[20];
还有在做数据拷贝的时候,也碰到同样的问题:
memcpy((Uint8 *)&uc_BufTdSci[11], (Uint8 *)&s_ACSRealData.ui_U[0], 2);
此时s_ACSRealData.ui_U[0]=0x55F0,按照标准C函数,结果应该是uc_BufTdSci[11]=0xF0,uc_BufTdSci[12]=0x55。但实际上,看到的结果是uc_BufTdSci[11]=0x55F0。
希望TX们帮忙看看怎么检查。
的存储单元都是16位的,你只要关心具体的结果对就可以了位的变量或者数组都是可以正常使用的
就2812中的定义来说 就没有Uint8的定义啊 不知道你的程序中的Uint8被重新定义成C语言中的那个类型了
2812中的定义如下
typedef int int16;
typedef long int32;
typedef unsigned int Uint16;
typedef unsigned long Uint32;
感谢二位的答复。
按照标准C定义:typedef unsigned char uint8;
但是结果是16位的;
不知要如何设置CCS或编译器;
再请TX们给出具体解决办法,谢了!
刚看了相关书籍 应该是可以的啊 8位
能否帮忙试一下?或告知详细的解决办法?我试下来只能16位的,也google到28335内部确实字节定义是16bit的,妖怪的DSP设计啊,字节访问成问题了~
PS:现在是CCS3.3下试滴~
我刚试啦 确实有这个问题的啊
沈瑞强 发表于
能否帮忙试一下?或告知详细的解决办法?我试下来只能16位的,也google到28335内部确实字节定义是16bit的 ...
14:14 上传
我刚试啦 确实有这个问题的啊
interrupt void SCITXINTA_ISR(void) // SCI-A
unsigned char ReceivedAC
DINT;//关闭总中断
//自动侦测波特率处理
if(SciaRegs.SCIFFCT.bit.ABD == 1)
SciaRegs.SCIFFCT.bit.ABDCLR = 1; //清除ABD
SciaRegs.SCIFFCT.bit.CDC = 0; //禁止自动波特率侦测
ReceivedAChar = SciaRegs.SCIRXBUF.
SciaRegs.SCIFFRX.bit.RXFFINTCLR = 1;//清除中断标志位
SciaRegs.SCIFFRX.bit.RXFIFORESET=0; //将FIFO指针复位为0
SciaRegs.SCIFFRX.bit.RXFIFORESET=1; //退出复位状态
if(ReceivedAChar == 'A')
Send_String_SCIA("right!");// Autobaud
SciaRegs.SCIFFRX.bit.RXFFIENA = 1;// 使能SCIA FIFO接收中断
connect_right = 1;
匿名不能发帖!请先 [
Copyright (C) 《电子产品世界》杂志社 版权所有

我要回帖

更多关于 dsp28335中文资料 的文章

 

随机推荐