工具/软件:
我计划在我正在开发的代码中重用 EMACbootloader 代码中的 BOOTP 和 TFTP 功能。当我直接重用 BOOTPThread 函数并执行 SendBOOTPRequest 函数时、它会在行中进入 FaultISR。 pui8Packet[ui32Idx] = 0;
我怀疑修改 uip_appdata在 uip.h 中声明的值会导致故障。 是否有正确初始化的方法 uip_appdata?
此外,我尝试在 SendBOOTPRequest () 的开头分配内存 uip_appdata = (uint8_t _)malloc(sizeof(uint8_t) _ UIP_APPDATA_SIZE);,但行为没有改变,它仍然进入故障。
静态 void
SendBOOTPRequest (void)
{
uint8_t * pui8Packet =(uint8_t *) uip_appdata;
tBOOTPPacket * psBOOTP =(tBOOTPPacket *) UIP_appdata;
uint32_t ui32Idx;
//
//零填充 BOOTP 请求数据包。
//
for (ui32Idx = 0;ui32Idx < sizeof (tBOOTPPacket);ui32Idx++)
{
pui8Packet[ui32Idx]= 0;
}