问题是这样的
unsigned char MyIP[4] = {0xC0,0xA8,0x01,0x0B};
unsigned char RemoteIP[4] = {0xC0,0xA8,0x01,0x28};
#define IP_PROTOCOL_UDP 0x11 //协议UDP
#define UDP_HEADER_SIZE 8 //UDP头部的长度 字节个数
typedef struct _psd_hdr
{
unsigned char psd_src_ip[4]; //源IP
unsigned char psd_dst_ip[4]; //目的IP
unsigned char psd_mbz; //填充字节为0
unsigned char psd_protocol; //协议类型
unsigned short psd_len; //UDP长度
}psd_hdr;
void PSD_PACKET(unsigned short datalenth)
{
unsigned char i;
for(i=0;i<4;i++)
{
PSD_HDR.psd_src_ip[i] = MyIP[i];
PSD_HDR.psd_dst_ip[i] = RemoteIP[i];
}
PSD_HDR.psd_mbz = 0x00;
PSD_HDR.psd_protocol = IP_PROTOCOL_UDP;
PSD_HDR.psd_len = SwapWord((UDP_HEADER_SIZE + datalenth));
}
程序在执行完此函数之后,就会报:找不到地址0x02,从而进入HardFault Handler 我查找了相关资料,说明是存储器访问冲突。可是如何解决呢?
我把此函数的调用屏蔽掉,就可以正常运行了,可是我查了这个函数,没有问题啊。。。。。。。