用户ISP程序设置在非EEPROM区域可以防止用户APP误修改用户ISP,但这样只能通过系统ISP下载用户ISP(可同时下载用户APP),用户ISP无法修改自己
该方式由于用户ISP被保护,且用户ISP位于实际中断向量处,这样可以在用户ISP和用户APP中使用中断,不会出现用户APP错误影响用户ISP的中断(需要确保用户ISP中的中断是正常的)
如用户APP位于实际中断向量处,需要确保每一次下载的用户APP程序中断跳转都是正常的,才能在用户ISP中使用中断
这种情况下如用户APP中断相关程序错误且用户ISP使用了中断,就会出现用户APP影响用户ISP的问题
表现为错误的用户APP下载进去之后无法再通过用户ISP下载,所以安全起见避免用户APP错误导致用户ISP锁死,用户APP位于实际中断向量处时,用户ISP中不要使用中断
ercircle 发表于 2025-6-11 10:30
是的,对应用户APP工程的中断偏移,程序预留也要删掉、
现在程序预留区改到ISP工程里配置 ...
我用官方的那个ISP示例,把isr.asm删了,然后程序预留区设置为0xFF0000-0xFFF000,其他还没改,编译结果是
*** WARNING L30: MEMORY SPACE OVERLAP
SEG:
FROM: FF0000H
TO: FF0003H
Program Size: data=19.1 edata+hdata=768 xdata=4 const=0 code=735
creating hex file from ".\obj\stc_uart_user_isp"...
".\obj\stc_uart_user_isp" - 0 Error(s), 1 Warning(s). JDBJXB 发表于 2025-6-11 10:39
我用官方的那个ISP示例,把isr.asm删了,然后程序预留区设置为0xFF0000-0xFFF000,其他还没改,编译结果是 ...
前三个字节跳过,这三个字节跳转程序起始地址的,烧录App时记得不要覆盖。
0xFF0003-0xFFF003
页:
1
[2]