首页-英亚体育网页版|官网app下载

0877-80176637

在线客服| 微信关注
当前位置: 首页 > 后期工艺 > 画册精装

首页:AT91SAM7Sxx系列MCUBoot-Loader的设计


英亚体育网页版|官网app下载_AT91SAM7xx系列是Atmel公司销售的基于ARM7内核的32位单片机。用户代码编译器可以在Thumb模式下获得16位指令宽度,从而节省内部程序空间。目前该系列芯片的内部Flash空间在32KB到256KB之间,RAM空间在8KB到6?知识库.除SAM7S32外,该系列所有芯片均内嵌USB2.0加速通信模块。本文介绍了基于USB模块的用户程序升级工具。

我们告诉Atmel,我们获得了这个系列芯片的SAM-BA下载工具。这个工具在产品阶段的应用有一定的局限性,就是为了启动芯片内部的SAM-BA程序,用户必须将芯片的TST槽短路到电源的末端,然后加电10秒,再加电。

本文所解释的Boot-loader程序驻扎在芯片内部的Flash空间,启动方式是用户按下产品的某个特定按钮,然后开机。这大大简化了产品固件的升级过程。1 Flash中boot-loader的定位为了规范整个SAM7Sxx系列中相同的Boot-Loader程序,我们将其定位在Flash的低端定位偏移量0x800到0x15ff,总共有3584字节的空闲空间。适当的用户程序应避免在链接时使用此地址。

作者使用IAR编译器环境,必须改变链接目标位置控制文件,以超出定位目标文件的目的。例如在S256中,必须更改at91SAM7S256_NoRemap.xcl文件。

首页

有:-DROMSTART1=00中断向量表连接方向-DROMEND1=3F中断向量表完成方向-DROMSTART2=800目标程序连接方向-DROMEND2=15FF目标程序完成方向代码必须适当改变。引导加载程序启动文件由Atmel (Cstartup.s79)获取,但不得更改为: rsegic ode 3360 code 3360 root(2)必须更改回rsegintvec: code3360 root (2)定位异常向量表从0x00到0x3f。

将异常向量表的末尾添加到rsegicode3360 code3360根语句中。用户必须更改-DROMSTART1=00中断向量表和起始代码连接方向-DROMEND1=7FF中断向量表和起始代码结束方向-DROMSTART2=1600目标程序连接方向-DROMEND2=3FFFF目标程序结束方向代码在at91SAM7S256_NoRemap.xcl文件中,定位代码ICODECONST必须进行一定程度的适当更改。以防止与引导加载程序地址重叠。

2 Boot-Loader的构造2.1 Boot-Loader禁用后,PC指针先指向Boot-Loader,Boot-Loader先初始化IO端口,然后判别用户是否没有按下Boot-Loader按钮。如果按键未按下,闪存中有用户代码,跳转到用户程序条目。

下面的代码是为了编写用户输入子程序而编译的。publicatentusercode 16 enteruser : ldr 1,=0x 15 fc;0x15fc保留用户条目地址ldr0、[R1,# 0] bxr0。

如果用户在开机时按下此键,将运行引导加载程序的主循环。2.2USB驱动USB驱动使用HID类,省去了开发驱动的需要。HID的报表采用如下结构:constcarloaderdescriptor[]={0x 06,0xa0,0xFF,//厂商定义的用途0x09,0x01,//厂商定义的用途0xA1,0x01,//报表子集:应用于//Initeriaport0x 09,0x03,//厂商定义的报表ID0x15,0x00,//逻辑最小值(0)0x26,0xff,0x00,//逻辑最大值(255)0x75,0x08,//报表位宽(8位)//输出报表//输出//子集完成时,PC下载的数据报大小为260B,其中第一个字节为写命令,第二个和第三个字节为用户固件的页面地址(用户固件要求编译器为二进制文件*)。

bin),后跟256字节的固件数据。 2.3Flash操作符定义了Flash操作符在ram空间中的所有功能,例如:_ _ _ ramfunctcflash 33603360 erase _ all(void)由于SAM7Sxx系列Flash采用单层结构,在Flash上操作时不允许重写Flash的内容,所以要将操作符的Flash程序放入RAM中进行操作。2.4数据包的处理第一个数据包包括用户启动代码和异常向量表。引导加载程序必须更改撤销向量,并保留用户条目地址(伪代码如下)如果(Page==0){ GetUserDerecessEadresddresswith Boot-LoadeRecentNacesprogramfirst Page into FlashSetFlagToindicantenaffinishedTaskCalculateCheck收到完成指令后,sumandreturntoPC}必须设置完成标志(伪代码如下):如果(command==end _ of _ task){ writtelastpageinto flashsetunfinishedlag calculatchecksumandreturnTopc }如果页面地址打破;}3PC终端iTunes软件构造概述以下是标准PC终端操作员流程:-获取USBHID类GUID-获取所有HID设备结构数组-根据VIDPID获取设备信息-关闭设备句柄-与Boot-Loader通信。

以上操作步骤在windows、MAC OS、Linux中规范,读者可以在参考文献3中找到PC终端程序实现的具体方法。图Flash中Boot-loader的定位(以SAM7S256为例)4结论本文阐述的构建方法修改了AT91SAM7Sxx系列用户程序的升级过程。HID类的USB模块降低了产品跨平台应用的灵活性。

作者对iTunes25K代码进行了2秒左右的测试,具有一定的实用价值。参考文献[1]at 91 sam7s _ full . pdf . http ://[2]hid 1 _ 11.pdf。

本文来源:英亚体育网页版-www.headroomgate.com

客户案例Customer case
  • 包皮过长怎么会引起不育这些危害要知道
  • 首页-南京市男士专科医院哪家
  • 怀孕初期需要做哪些检查-英亚体育网页版
  • 2016年1-9月我国日用化学品行业经济运行情况【英亚体育app下载】
  • 英亚体育app下载:国内首条金膜电容器自动化生产线问世
  • 泡小绿舟姚智文:首页
  • 快递垃圾泛滥在于“外部性的管制”缺位
  • 英亚体育网页版|官网app下载:增强教职工安全意识彭州南街幼儿园开展消防演练
  • 【英亚体育网页版|官网app下载】合肥天使儿童医院:儿童癫痫有哪些表现
  • 【英亚体育网页版|官网app下载】四川将对限期治污不力出狠招