当前位置RFID世界网 > 技术文章 > 其它 > 正文

AT91SAM7Sxx系列MCU Boot-Loader的设计

作者:李隆庆 来源:希尔思仪表(深圳)有限公司 2012-03-21 09:08:24

摘要:AT91SAM7xx 系列是Atmel 公司推出的基于ARM7内核的32位MCU.用户代码编译在Thumb 模式下可获得16位指令宽度,从而节约内部程序空间。目前这个系列芯片的内部Flash空间范围从32KB到256KB, RAM空间范围是8KB 到 6?KB.除了SAM7S32外,这个系列的芯片都内嵌有USB2.0全速通讯模块。本文介绍的就是基于USB接口的用户程序升级工具。

关键词:AT91SAM7Sxx[0篇]  Boot-Loader [0篇]  ATMEL[1篇]  

 

  AT91SAM7xx 系列是Atmel 公司推出的基于ARM7内核的32位MCU.用户代码编译在Thumb 模式下可获得16位指令宽度,从而节约内部程序空间。目前这个系列芯片的内部Flash空间范围从32KB到256KB, RAM空间范围是8KB 到 6?KB.除了SAM7S32外,这个系列的芯片都内嵌有USB2.0全速通讯模块。本文介绍的就是基于USB接口的用户程序升级工具。

  我们知道 Atmel 公司为这个系列芯片提供了 SAM-BA 下载工具。这个工具在产品阶段的应用有一定的局限,就是为了启动芯片内部的 SAM-BA 程序,用户需要短接芯片的TST引脚到电源端,然后上电10秒钟,再重新上电。本文介绍的Boot-loader 程序常驻在芯片内部Flash空间,启动方法是用户按住产品的一个特定的按键然后上电。这样大大简化了产品固件的升级过程。

  1 Boot-loader 在Flash中的位置

  为了在整个SAM7Sxx系列中通用同一个Boot-Loader程序,我们把它定位在Flash的低端位置偏移量为0x800至0x15ff位置,共占用3584个字节空间。相应的用户程序在链接时要避开使用这段地址。笔者采用的是IAR编译环境,需要修改链接目标定位控制文件达到定位目标文件的目的。以S256为例,需要修改at91SAM7S256_NoRemap.xcl 文件

  Boot-loader 的链接控制文件中需要修改的项目有:

  -DROMSTART1=00 中断向量表起始位置

  -DROMEND1=3F 中断向量表结束位置

  -DROMSTART2=800 目标程序起始位置

  -DROMEND2=15FF 目标程序结束位置

  CODE, ICODE CONST 的定位同样需要相应的修改。

  Boot-loader 启动文件为Atmel提供(Cstartup.s79),但需要作一定修改:

  RSEG ICODE:CODE:ROOT(2) 改为RSEG INTVEC:CODE:ROOT(2) 把异常向量表定位在0x00至0x3f.

  异常向量表的末端添加语句RSEG ICODE:CODE:ROOT(2) 把启动代码定位在CODE段。

  用户应用项目需要修改at91SAM7S256_NoRemap.xcl文件中

  -DROMSTART1=00 中断向量表及启动代码起始位置

  -DROMEND1=7FF 中断向量表及启动代码结束位置

  -DROMSTART2=1600 目标程序起始位置

  -DROMEND2=3FFFF 目标程序结束位置

  CODE, ICODE CONST 的定位同样需要相应的修改。以避免和Boot-Loader 地址重叠。

 已有0条评论 我要评论 联系编辑 分享到:网易新浪腾讯人人开心网豆瓣MSN


最新评论(加载最新评论):


上一篇:基于射频识别的无线传感网节点设计研究

下一篇:基于MFRC522的热量表预付费模块设计


相关文章:


关键字搜索:


新闻中心:AT91SAM7Sxx[0篇]  Boot-Loader [0篇]  ATMEL[29篇]  

成功应用:AT91SAM7Sxx[0篇]  Boot-Loader [0篇]  ATMEL[0篇]  

解决方案:AT91SAM7Sxx[0篇]  Boot-Loader [0篇]  ATMEL[0篇]  


图片文章:

热点专题