一.IAP修改点:
使用官网EVT例程是无法在CH591上使用的,因为LIB库为192K,CH591系列的芯片FLASH为192K,
如果你只需要从机功能,那么固定库可以使用只包含从机功能的小库(136K)
小库大小为136k,但实际起始地址为48k,以防库增加新功能导致不够用。
那么JUMP IAP+APP+IAP的大小只有48K,例程jump iap4k,iap16k,app只剩28k。
若28k够使用那么就不需要过多修改,如果不够就可以按照下面的方法修改,去掉jump iap,压缩iap为8k,那么app可用空间为40k。
一.IAP工程修改:
1:LD文件修改起始地址为0,长度为8k,

2:启动文件修改指向地址为库的起始地址48k,即0xC000。

3:ota.h中修改各部分起始地址和大小,

if(EraseAdd < IMAGE_A_START_ADD || (EraseAdd + (EraseBlockNum - 1) * FLASH_BLOCK_SIZE) > IMAGE_C_START_ADD)
send_buf[1] = (uint8_t)(IMAGE_C_START_ADD& 0xff);
send_buf[2] = (uint8_t)((IMAGE_C_START_ADD>> 8) & 0xff);
send_buf[3] = (uint8_t)((IMAGE_C_START_ADD>> 16) & 0xff);
send_buf[4] = (uint8_t)((IMAGE_C_START_ADD>> 24) & 0xff);
4.预编译宏中添加库起始地址,

5.添加新的mcu.c文件,屏蔽校准函数,目的是节省flash空间,若IAP占用12K也可以接受可以不修改,

二:APP程序修改
1.LD文件

2.启动文件

3.预编译宏

修改以上部分后,即可在烧录时选用从机效率,APP可使用FLASH空间40K。
浙公网安备 33010602011771号