IAP 升级中的ISP程序大小最大只能是4K吗?
使用AI32G8K64的单片机,使用串口做上位机升级,ISP的程序大小在4K以内,使用4K的空间(60K的EEPROM),升级程序可以正常运行,但是如果使用6K 8K 10K等大于4K的空间做程序升级时,可以跳转到AP程序,但是AP程序在会多重启一次。使用4K的ISP程序空间就没有这个问题。比如使用8K的ISP程序空间时(下载时设置56K的EEPROM),AP程序使用另外的56K空间,在ISP程序中,长跳转指令也做了相应的修改:
((void(far *)())(0xff0000 + LDR_SIZE))(); 。LDR_SIZE改为0x2000
AP程序中KEIL的设置,对中断向量入口冬至改为了INTVECTOR(0x2000)
复位地址重映射区,改为 0xFF0003-0xFF2002
AP程序下载完成之后,可以跳转,但是就是会自动重启一次,第二次运行才会正常运行。不知道什么原因。
发现每次重启的位置在CAN数据发送的时候。不管把CAN数据发送指令放在哪里,第一次运行AP程序,只要发送CAN数据,就重启一次,重启完之后可以正常运行。
如果ISP程序空间设置为1K大小(上述设置也相应改变,和官方案例一样),就不会出现AP程序多重启一次的情况。
怎么没有人回复呢? 8051U最大有8k的用户系统区。
页:
[1]