我是用的LPC 1778的芯片,采用的是SPI半双工的方式传输。由于APP程序较大就只分享下引导程序。做IAP在线升级,APP程序只需要增加如下几点:1、在Target 设置中 IROM 中设置好APP程序的起始地址和所需占用FLASH空间大小。2.Linker中 在Use Memory Layout from Target Dialog 前打勾。(步骤1.2就将boot loader文件做好了(自动生成))。3.在ASM中的Define 中 定义 NO_CRP(这是用来防止芯片被锁的,想具体了解可以百度NO_CRP) 4 .屏蔽system_LPC177x.c 系统文件中的 SCB->VTOR = 0x00000000 & 0x3FFFFF80;(这句是将中断向量表映射到地址0x00,由于我是在引导程序中将中断向量表映射到了APP程序首地址,故APP程序的系统文件的这句必须屏蔽掉)。5.让keil 生成BIN文件。(在User中的After Build/Rebuild 中的RUN#1 中写入路径,具体可以百度keil 如何生成BIN文件),要是不嫌解析HEX文件麻烦,也可以不做步骤5。 引导程序跳转到APP程序的关键为: 1中断向量表的映射。 2 程序的跳转 。 具体可以参考我写的引导程序。 以上就是我关于LPC 1778IAP 在线升级的个人经验,仅供参考。
|