APP下载

NXP ARM的自升级方法

2015-07-24马玲

电脑知识与技术 2015年14期
关键词:波特率字符串存储器

马玲

摘要:该论文介绍了一种新型的NXP ARM FLASH自动编程方法。该方法通过上电之前对管脚预先设置,使芯片进入ISP模式,通过自动波特率检测匹配串口,通过串口将代码烧写到FLASH里。

关键词:自动引导;FLASH

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)14-0232-02

Abstract:This paper introduces a new NXP ARM FLASH automatic programme method. The method set the PIN before power on and make the chip go into the ISP mode.Then the chip check the sci port and programme the Flash through SCI.

Key words: boot loader; FLASH

1 简介

NXP半导体LPC24XX系列围绕16/32位的ARM7TDMI-S CPU内核来设计微控制器,该CPU内核带有实时调试接口,包含JTAG和嵌入式跟踪。LPC2468的Flash存储器容量高达512kB,并且设计有独特的128位位宽的存储器接口以及accelerate结构,使CPU的执行速率高达72MHz,从而大大提高Flash存储器程序的执行速度。芯片自带的Bootloader控制上电复位后的初始化程序,并可通过串口完成Flash存储器编程。Bootloader可实现对裸片的烧写、已完成烧写的flash的擦除和再烧写以及在程序运行时使用应用程序对Flash存储器进行烧写。

2 实现原理

Flash bootloader程序可提供ISP和IAP两种编程接口,能够完成烧写片内Flash存储器的功能。

Bootloader区的Flash大小为8kB,位于片内Flash存储器空间地址最大处(从0x0007 E000开始)。上电或复位后,整个boot区也被映射到片内存储器空间的顶端,即boot区位于从地址0x7FFF E000开始的存储区。Flash boot装载程序就从这片存储区运行,而ISP和IAP程序也均使用这部分片内RAM。位于片内Flash存储器boot区的中断向量,它在复位后也被激活,即boot区的最低64字节也可在从地址0x0000 0000开始的存储区中看到。复位向量包含一条跳转指令,通过该跳转指令,程序就从Flash boot装载程序的首地址处,即有效的用户代码的入口处开始执行。

芯片上电或复位时会运行Flash boot装载程序代码。该装载程序可执行芯片自带的ISP命令处理程序或用户自己编写的应用代码。当复位后管脚P2.10的电压为低电平时,启动ISP命令处理器的外部硬件请求。假定在管脚上产生上升沿时电源管脚在指定的电平下操作,那么在采样P2.10之前最多只允许有3ms的时间,并且还要确定是执行ISP处理程序还是用户编写的代码。假如管脚P2.10的电压为低电压且检测到芯片看门狗溢出标志位置位,那么启动ISP命令的外部硬件请求将被忽略掉。当P2.10复位后电压为高电平,且没有ISP命令处理器的请求时,将寻找有效的用户程序。若找到了有效的用户程序,执行控制权就被转交给用户程序。若没有找到有效的用户程序,就将调用自动波特率程序。

下面介绍判定有效用户代码标准:保留的芯片中断向量字(0x0000 0014)应当包含所有其他中断向量字校验和的2进制补码,从而使所有中断向量的校验和为0。bootloader装载程序时,代码首先保证boot引导区内的中断向量字不重叠,然后再校验Flash扇区0中中断向量字的校验和。如果符号差(signature)校验成功,那么将地址0x0000 0000装入程序计数器,ARM的CPU控制权便由用户代码接管。因此在用户Flash复位扇区内,必须包含一条跳转指令,该指令可跳转到用户应用程序代码入口。如果符号差(signature)校验失败,那么ARM自动波特率程序会通过串口0与上位机进行同步。上位机应当通过串口0发送一个同步命令字节 ‘?(0x3F)并等待ARM的响应。上位机的串口0的配置为8个数据位、1个停止位和无奇偶校验位。ARM自带的自动波特率程序由内部的频率计算通过串口0接收到的同步命令字节的位时间,并设置串口0的波特率发生器,从而使串口0的波特率与上位机相匹配。此外,它还向上位机发送一组字符串(“Synchronized”),上位机在接收到该字符串(“Synchronized”)后,将该字符串再发送给自动波特率程序,表明上位机正确收取到了同步字符串。自动波特率程序通过收到的该组字符串来验证是否与上位机同步成功。如果同步成功,自动波特率程序则向上位机发送“OK”字符串。上位机应当发送芯片正常工作运行时的晶振频率来回应,其中频率的单位为KH。例如,如果10MH为芯片工作频率,那么上位机将发送字符串“10000 ”作为响应。在ARM的自动波特率程序通过串口0获取到晶振频率后再向上位机发送字符串“OK”。如果同步验证失败,那么自动波特率程序就会等待下一个同步字符。要让自动波特率程序能够稳定可靠的工作,晶振频率最小为10MHz。

3 流程图

4 结论

使用该方法可以方便地对芯片进行程序下载,成本低,操作方便。本方法已经在开发板上使用,稳定可靠。

参考文献:

[1] NXP半导体公司 LPC2468 user manual.2008.

[2] 赵伟庆.ISP技术与Internet结合的应用研究.2006.

猜你喜欢

波特率字符串存储器
静态随机存储器在轨自检算法
基于文本挖掘的语词典研究
CAN 总线波特率自适应程序设计
基于FPGA的异步串行通信波特率容错设计
存储器——安格尔(墨西哥)▲
一种新的基于对称性的字符串相似性处理算法
基于Nand Flash的高速存储器结构设计
依据字符串匹配的中文分词模型研究
C*Core芯片SCI串口波特率容限优化
一种针对Java中字符串的内存管理方案