初始化代码基础手册中文翻译版.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AT91初始化代码手册汉字翻译版 因为多个原因基于ARMAT91大多数应用代码使用C语言编写。然而,开启次序要求初始化ARM处理器和严重依靠于寄存器结构关键设备和内存映射处理机,和存放器重映射操作。因为这个原因,C开启序列必需用汇编编写。 这个应用笔记描述了一个AT91C代码开启序列示例。她是使用ARM ADS1.1开发工具为AT91评定板写基于C开启序列。更多可用C开启序列示例见AT91库。在上电而且复位后C开启序列激活实施。 C开启次序 在设计ARM嵌入式应用设计中关键考虑是计划内存图。尤其是在地址0x0存放器。复位后,处理器从地址0x0处指令处开始实施,所以必需能够以后处取得可实施代码。在嵌入式系统中,这需要初始化后在地址0xO处是NVM(非挥发存放器)。 最简单计划是在存放器映射中将ROM定位在地址0。当它首先实施在0x00地址第一条指令后应用程序能够指向自动实际入口。不过这也有一个缺点,ROM位窄(8、16位)且比RAM慢,存取她需要更多等候周期。这将减缓处理器处理经过矢量表异常尤其是中止。况且,假如矢量表在ROM中,她不能够被代码编辑。 因为RAM较ROM存取速度快且位宽,假如在RAM中0x00处存放器作为矢量表和中止句柄愈加好。即使在通常运行中RAM被定位在0x0处数必需,假如上电后RAM定位在地址0x0,再复位指令入口处没有一个正当可实施指令。所以上电后ROM必需定位在0x0以确保此处有一个正当复位矢量。从复位到正常运行存放器图变换通常经过实施一个REMAP(重映射)来完成。 很多基于ARM嵌入式应用程序包含在ROM中且在复位后实施。当编写嵌入式操作系统,或没有操作系统从复位后实施嵌入式应用程序时有多个原因必需考虑,包含: *变换ROM到RAM,以改善实施速度。 *初始化实施环境。比如异常向量,堆栈、I/O引脚 *初始化应用——比如,从ROM中到RAM中拷贝初始化值付值给初始化变量而且清除其它变量为0。 *连接嵌入式实施映像到存放器中放置程序和代码指定区域。 对于没有操作系统嵌入式应用,rom中代码必需提供一个方法以初始化她自己而且开始实施。复位后不会自动初始化,所以应用程序入口在它调用C代码之前实施部分初始化。 复位后定位在地址零初始化代码,必需: *为初始化代码标识入口标识 *设置异常向量。 *初始化内存系统 *初始化堆栈指针寄存器 *初始化任何临界I/O器件 *初始化中止系统需求任何RAM变量 *使能中止(假如经过初始化句柄) *假如需要话改变处理器模式 *假如需要话改变处理器状态 环境初始化完成后,应用程序初始化继续而且将进入C代码入口。 C开启文件是上电后第一个实施文件而且从复位后实施微控制器初始化然后调用其它应用程序主例程。主程序将是一个死循环且不应该返回。 ARM内核复位后从地址零处开始实施。对于嵌入式系统。这意味着系统复位后ROM必需在地址0。因为ROM限制,异常处理速度将受到影响而且异常向量不能被编辑。一个通用策略是重映射ROM到RAM中而且开启后从ROM拷贝异常向量到RAM. C开启示例 在AT91软件库中本笔记和其它笔记包含一个一般开启文件。这个事例基于AT91开发板、使用ARM ADS 1.1开发工具在外接闪存中调试。这个文件必需被编辑以适应用户需要。 每个AT91评定板描述在AT91库software argets子目录中。每个这些子目录中包含下列文件: *target.h文件,用C描述线路板组件 *target.inc文件,用汇编描述线路板组件 *一个或多个cstartup.s,使用ARM SDT、ARM ADS和GREEN HILL MULTI 200标准引导示例。 AT91库提供C开启文件解释怎样引导AT91零件而且怎样分支到MAIN主函数。开启代码提供一个怎样考虑零件特殊性引导AT91零件以达成板子指定特征和调试等级需求实例。 初始化代码区域定义和入口指针 在ARM汇编语言源文件中,开始片断必需经过AREA伪指令标识。这个伪指令片断而且设置它属性。属性被放置在名字以后,经过逗号分割。以上代码示例定义一个名为RESET只读代码段。 一个可实施映像必需有一个入口指针。被放置在ROM中可实施映像通常在0x0放置一个入口指针。在初始化代码中使用汇编伪指令定义一个入口指针。 ;---------------------------------------------------------------------------------- ;-区域定义 ;---------------------------------------------------------------------------------- AREA reset,CODE,REA

文档评论(0)

181****8523 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档