查看: 6211|回复: 7

[其他] Flash Magic烧写失败

[复制链接]

该用户从未签到

61

主题

233

帖子

7

高级会员

Rank: 4

积分
750
最后登录
2021-1-25
发表于 2017-10-25 09:38:10 | 显示全部楼层 |阅读模式
参考文档 【经验分享】 LPC546XX 使用 IAP 进入 USB UART ISP 更新程序  ,利用LPC54608开发板自带仿真器对MCU进行串口烧写程序,但是FlashMagic总是报错,错误如下:
设备管理器的端口配置和FlashMagic设置如下:

最佳答案

paulkiyt 发表于 2017-10-26 11:48 你好。根据这个思路,我将上述代码编译后下载到内部Flash中,  编译地址设置为 IROM1  0x0~0x8000,32K大 ... 楼主你好!你的lcdccursor也是一个完整的工程对 ...
fail baud.png
comm3.png
fmconfig.png
advanceconfig.png
回复

使用道具 举报

该用户从未签到

61

主题

233

帖子

7

高级会员

Rank: 4

积分
750
最后登录
2021-1-25
 楼主| 发表于 2017-10-25 10:41:43 | 显示全部楼层
刚查找了原因,参考文档里提到的flashIAP生成的用户程序应该要再烧写一遍,然后才能烧写事先准备好hex文件。想问的是,怎么将flashIAP生成的用户程序(用于实现UART下载)只用烧写一次,然后进行uart下载hex就可以了。这个flashIAP生成的用户程序怎么放在内部FLASH或者外部Flash中去?
uart ISP.png
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24879
最后登录
2025-7-20
发表于 2017-10-25 11:14:19 | 显示全部楼层
楼主你好!
我不知道,你是否一定需要使用IAP的方式进入ISP模式?
其实如果你也能接受外部引脚控制进入ISP模式的话,你完全可以直接使用外部引脚控制进入ISP,然后使用flashmagic下载用户程序。
当然,如果你希望用户程序自己就能直接进入ISP模式,你可以在你的用户程序里面配置一些进入ISP的条件,这样你的用户程序也能运行,后续等条件满足,就可以进入ISP模式更新程序了。
回复 支持 反对

使用道具 举报

该用户从未签到

61

主题

233

帖子

7

高级会员

Rank: 4

积分
750
最后登录
2021-1-25
 楼主| 发表于 2017-10-25 16:56:23 | 显示全部楼层
小恩GG 发表于 2017-10-25 11:14
楼主你好!
我不知道,你是否一定需要使用IAP的方式进入ISP模式?
其实如果你也能接受外部引脚控制进入ISP ...

你好,我是参考你之前分享的文档。
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);
        //return translate_iap_status(result[0]);
}


然后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);
}
}

上述代码是直接进入ISP模式吗
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24879
最后登录
2025-7-20
发表于 2017-10-26 11:21:03 | 显示全部楼层
paulkiyt 发表于 2017-10-25 16:56
你好,我是参考你之前分享的文档。
status_t Chip_IAP_ReinvokeISP(uint8_t IspMode)
{

是的
回复 支持 反对

使用道具 举报

该用户从未签到

61

主题

233

帖子

7

高级会员

Rank: 4

积分
750
最后登录
2021-1-25
 楼主| 发表于 2017-10-26 11:48:41 | 显示全部楼层

你好。根据这个思路,我将上述代码编译后下载到内部Flash中,  编译地址设置为 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。然后在另外一个工程lcdc——cursor里(就是需要生产HEX文件,更新程序用的其他工程)设置编译地址为IROM2  0x8000~0X80000。两个工程的设置如下:
flashmagic第二步擦除设置如下:

但是按照上述设置,lcdccursor生成的hex文件下载进去后无反应?请问其他位置还要设置吗?



flashiap.png
lcd IROM2.png
flashmagic.png
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24879
最后登录
2025-7-20
发表于 2017-10-27 15:10:50 | 显示全部楼层
paulkiyt 发表于 2017-10-26 11:48
你好。根据这个思路,我将上述代码编译后下载到内部Flash中,  编译地址设置为 IROM1  0x0~0x8000,32K大 ...

楼主你好!你的lcdccursor也是一个完整的工程对吗?
你是想通过ISP下载之后,lcdccursor工程能够直接运行,但是这个代码是偏移到0X8000的,我理解的有问题吗?
我分享的例程功能是程序进入ISP模式,更新的代码同样是更新到0X000地址的,也就是之前的代码会被覆盖掉,新下载的代码没有做偏移。
如果你想在偏移后地址做应用程序,等你下载后,你需要把PC,SP, 中断向量等都偏移到你新的地址去。
你先这样测试试试,把lcdccursor直接下载到0X00地址,然后看看跑不跑?
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24879
最后登录
2025-7-20
发表于 2017-10-27 15:10:57 | 显示全部楼层
paulkiyt 发表于 2017-10-26 11:48
你好。根据这个思路,我将上述代码编译后下载到内部Flash中,  编译地址设置为 IROM1  0x0~0x8000,32K大 ...

楼主你好!你的lcdccursor也是一个完整的工程对吗?
你是想通过ISP下载之后,lcdccursor工程能够直接运行,但是这个代码是偏移到0X8000的,我理解的有问题吗?
我分享的例程功能是程序进入ISP模式,更新的代码同样是更新到0X000地址的,也就是之前的代码会被覆盖掉,新下载的代码没有做偏移。
如果你想在偏移后地址做应用程序,等你下载后,你需要把PC,SP, 中断向量等都偏移到你新的地址去。
你先这样测试试试,把lcdccursor直接下载到0X00地址,然后看看跑不跑?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 16:12 , Processed in 0.107453 second(s), 30 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表