微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > LPC1768 IAP升级解析及例程分享

LPC1768 IAP升级解析及例程分享

时间:11-21 来源:互联网 点击:

0;

}

当程序全部写入到Flash后,按下向下按键,跳转到应用程序,首先修改中断向量表然后进入应用程序

voidBoot(void)

{

SCB->VTOR=IMG_START_SECTOR&0x1FFFFF80; //修改中断向量表

JMP_Boot(IMG_START_SECTOR);

}

堆栈地址更新,PC地址更新

__asmvoidJMP_Boot(uint32_taddress){

LDRSP,[R0] ;堆栈地址更新

LDRPC,[R0,#4] ;进入应用程序

}

7、操作步骤及实验现象

1、下载“宝马开发板串口IAP升级”例程,插上USB转串口线,打开超级终端,复位开发板。

2、按下按键INT0按键--擦除扇区

3、按下方向键确认键--等待从串口接收程序

4、串口打印‘C’字符等待接收数据

5、串口发送文件,选择“1K Xmodem”协议,选择要下载的应用程序bin文件,这里使用DAC例程作为测试。

6、发送文件

7、按下方向键向下键开始执行应用程序,可以用示波器测试P0.26输出正弦波信号

bin文件生成方法及设置:

打开要更新应用程序工程,这里使用“IAP升级DAC转换”程序,设置ROM空间地址(程序下载到Flash的地址),这里也是我们应用程序的入口地址0x10000

打开User选项,利用Keil自带的fromelf.exe生成bin文件,bin文件保存在Obj文件夹中,如下图添加“D:\Keil\ARM\ARMCC\bin\fromelf.exe--bin--output./Obj/app.bin./Obj/app.axf”,输入文件为app.axf,所以工程编译生成输出文件名设置为app,命令执行生成app.bin文件

打开Asm选项,定义“NO_CRP”,我们可以打开启动文件,当定义了“NO_CRP”后,那么我们后面的代码也就不起作用了,所以在需要加密的时候前面就一定不能再定义了代码读保护,也就是加密的关键字,经过加密后芯片再也无法擦除,由于我们这里程序需要使用到IAP升级,因此添加此定义

8、CAN总线

CAN是ControllerAreaNetwork的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之许多RS-485基于R线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性:

1)网络各节点之间的数据通信实时性强

2)缩短了开发周期

3)已形成国际标准的现场总线

4)最有前途的现场总线之一

9、CANIAP升级

关于LPC1768CAN总线介绍可以参考“宝马开发板基础例程文档”第十九章“CAN总线”,这里就不在赘述了,CANIAP例程使用两块宝马开发板进行实验,分为“CANIAP编程板”与“CANIAP接收板”,将编程板(ID=0x01)与接收板(ID=0x02)的CAN1进行连接(CAN1L对CAN1L,CAN1H对CAN1H),波特率为500K,编程板通过读取板上SD卡内的app.bin文件然后传输给接收板,每次传送1024字节,然后等待接收板发送“CONTINUE”信号继续发送下一个1K数据,直到发送完成,发送“UPDATAOK”通知接收板发送完成。其操作步骤与串口IAP类似,只是将通信方式有串口改为CAN总线,有兴趣的朋友可以修改成其他方式进行IAP下载。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top