各位大神好, 最近我自己做了个bootloader并通过串口来烧写用户程序,烧写之后程序能正常运行。但是我进行一级加密之后,发现程序不运行了。但此时还能通过bootloader串口来重新烧写程序,说明bootloader是有正常运行的。看现象应该是无法调转到用户程序,或调转到用户程序之后程序才不运行的。如果不进行一级加密,程序是可以正常运行的。
然后我尝试直接用仿真器把用户程序烧写进去,并进行一级加密,加密之后程序可以正常运行。
烧写过程中烧写bootloader是用ST-link和keil 5进行烧写。通过串口烧写完用户程序后,加密是用“STM32 ST-LINK Utility“(这一套烧写之前在ST芯片上是完全没问题的,加密后也能正常运行)。直接仿真器烧写用户程序及一级加密跟上面用的工具是一样的。
两种烧写方式的区别就是,用bootloader烧写后需要重映射中断向量表,我是把整个表搬到RAM执行,难道是,HK芯片上进行一级加密后,会影响这个中断向量表的重映射,还是说一级加密之后,中断向量表就不能重映射?
加密设置表:
谢谢!
|