在线时间285 小时
UID3419421
注册时间2017-8-30
NXP金币0
该用户从未签到
高级会员

- 积分
- 750
- 最后登录
- 2021-1-25
|
你好,想利用串口对54608下载固件程序,不想通过外部引脚控制,而是直接进入ISP.参考之前的文档,利用下面函数,在工程选项里设置编译地址
为 IROM1 0x0~0x8000,32K大小空间。其实Program Size: Code=7708 RO-data=488 RW-data=36 ZI-data=2144 实际代码只有为8K,之所以设置32K是因为Flash Magic在下载固件时,第二步里擦除是1个block的擦,一个block为32K。为了下载其他HEX文件时不擦除该UART isp的boot,故设置为32K。通过mdk的download直接下载到开发板。
status_t Chip_IAP_ReinvokeISP(uint8_t IspMode)
{
uint32_t command[9], result[4];
uint8_t Param[8];
uint8_t *p=Param;
Param[0] = 0;
Param[1] = IspMode; //usb 8// 6 usart
Param[2] = 0;
Param[3] = 0;
Param[4] = 0;
Param[5] = 0;
Param[6] = 0;
Param[7] = IspMode;
command[0] = kIapCmd_FLASHIAP_ReinvokeISP; //57
command[1] = (uint32_t )p;
iap_entry(command, result);
}
然后main函数调用这个
int main(void)
{
uint32_t i, status;
/* Board pin, clock, debug console init */
/* attach 12 MHz clock to FLEXCOMM0 (debug console) */
CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);
BOARD_InitPins_Core0();
BOARD_BootClockFROHF48M();
BOARD_InitDebugConsole();
status = Chip_IAP_ReinvokeISP(6); //usb 8// 6 usart
{
PRINTF("\r\nstatus=%x\n",status);
}
}在另外一个工程lcdc_cursor里(就是需要生产HEX文件,更新程序用的其他工程)设置编译地址为IROM2 0x8000~0X80000。工程的设置如下:
flashmagic下载工具第二步擦除设置如下:
但是按照上述设置,lcdccursor生成的hex文件下载进去后无反应.
最佳答案
paulkiyt 发表于 2017-10-27 15:26
你好,lcdcurse这个代码没有问题,我用MDK download下载可以跑起来,然后按键操作进入ISP模式,下载hex ...
好的!楼主,你现在可以和我说下你想实现功能的具体需求吗 ...
|
-
-
|