芯片:TM4C1294NCPDT
我在freertos任务中调用ROM_UpdateEMAC()函数,发现启动不了bootloader。但是在创建或初始化函数中调用ROM_UpdateEMAC()函数就可以启动bootloader。有知道原因的吗?谢谢!!!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
芯片:TM4C1294NCPDT
我在freertos任务中调用ROM_UpdateEMAC()函数,发现启动不了bootloader。但是在创建或初始化函数中调用ROM_UpdateEMAC()函数就可以启动bootloader。有知道原因的吗?谢谢!!!
我的可以哟!
if(g_bFirmwareUpdate)
{
//
// Transfer control to the bootloader.
//
SoftwareUpdateBegin(g_ui32SysClock);
}
上次进这个网站,不能回复,老是说网页有一个错误;
void
SoftwareUpdateInit(tSoftwareUpdateRequested pfnCallback)
{
uint32_t ui32User0, ui32User1;
//
// Remember the callback function pointer we have been given.
//
g_pfnUpdateCallback = pfnCallback;
//
// Get the MAC address from the user registers in NV ram.
//
FlashUserGet(&ui32User0, &ui32User1);
//
// Convert the 24/24 split MAC address from NV ram into a MAC address
// array.
//
g_pui8MACAddr[0] = ui32User0 & 0xff;
g_pui8MACAddr[1] = (ui32User0 >> 8) & 0xff;
g_pui8MACAddr[2] = (ui32User0 >> 16) & 0xff;
g_pui8MACAddr[3] = ui32User1 & 0xff;
g_pui8MACAddr[4] = (ui32User1 >> 8) & 0xff;
g_pui8MACAddr[5] = (ui32User1 >> 16) & 0xff;
//
// Set up a UDP PCB to allow us to receive the magic packets sent from
// LMFlash. These may be sent to port 9 from any port on the source
// machine so we do not call udp_connect here (since this causes lwIP to
// filter any packet that did not originate from port 9 too).
//
g_psMagicPacketPCB = udp_new();
udp_recv(g_psMagicPacketPCB, SoftwareUpdateUDPReceive, NULL);
udp_bind(g_psMagicPacketPCB, IP_ADDR_ANY, MPACKET_PORT);
}
void SoftwareUpdateRequestCallback(void)
{
UARTprintf("receive udp magic!\n");
g_bFirmwareUpdate = true;
}
//*****************************************************************************
//
// Setup lwIP raw API services that are provided by the application. The
// services provided in this application are - http server, locator service
// and Telnet server/client.
//
//*****************************************************************************
void
SetupServices(void *pvArg)
{
....................................
...................................
//
// Start the remote software update module.
//
SoftwareUpdateInit(SoftwareUpdateRequestCallback);
..............................
.............................
}
再加上上一个回复的内容(run in task)!
TI的社区就是有这个问题,是不是服务器不在大陆呢?刷新一下就好了。你这个是测试好的代码么?我有空跑跑看