CH32V208W IAP的APP程序为什么需要更改ld文件里面的flash地址?

IAP是烧写到system flash的, 因此和code flash完全独立的, 那么IAP相当于是从system flash启动一个bootloader,然后这个bootloader可以通过串口/USB接收APP固件, 并将这个app固件烧写到code flash.


那么为什么还需要修改app的ld里面的地址呢? IAP不是放到code flash里面吗? 然后BOOT1拉低的时候从code flash启动IAP, 然后IAP去操作完全独立的code flash, 相当于wch-link烧写程序一样? 还是我哪里理解错了?


另外system flash里面出厂带有烧写IAP程序吗?  即如果新贴片的芯片, 我没有wch-link的话, 可以通过将配置BOOT1和BOOT0来进入到IAP, 然后通过串口/USB来烧写程序吗?

您好,首先区分两种下载方式:

1、通过Bootloader下载,此Bootloader是出厂时固化到特定FLASH区域的,用户不可改写,通过该Bootloader下载程序,需要将boot0拉高经指定的串口或USB口下载。具体下载接口可参考EVT例程PUB目录下的评估板说明书。

2、通过IAP方式下载,该方式分为IAP与APP两部分,APP下载的触发条件与下载接口由IAP程序决定,该方式的下载方式比较灵活,但IAP程序需用户自行实现,ld文件中的地址偏移起两个作用,一个是为生成hex文件提供初始地址偏移;另一个是实现向量表偏移,因此该偏移操作不可省略。


只有登录才能回复,可以选择微信账号登录