嵌入式系统的启动程序的实现流程(The implementation process of the startup program of embedded system).docVIP

嵌入式系统的启动程序的实现流程(The implementation process of the startup program of embedded system).doc

  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文档。上传文档
查看更多
嵌入式系统的启动程序的实现流程(The implementation process of the startup program of embedded system)

嵌入式系统的启动程序的实现流程(The implementation process of the startup program of embedded system) 嵌入式系统的启动程序的实现流程(ZT) 基于 ARM7 嵌入式系统的启动程序的实现流程 【摘要】 本文给出了基于 ARM7 嵌入式系统的启动程序的实现流程,并针对存储器控制单元的使用以及目 标文件的分布装载等技术难点进行详细分析. 【关键词】嵌入式系统,启动程序,ARM7 嵌入式系统被定义为:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能,可 靠性,成本,体积,功耗严格要求的专用计算机系统.嵌入式系统的核心部件是各种类型的嵌入式处理器, 随着嵌入式系统不断深入到人们生活中的各个领域,嵌入式处理器得到前所未有的飞速发展. 典型的 32 位 RISC 芯片——ARM 处理器,不论是在 PDA,STB,DVD 等消费类电子产品中,还是在 GPS,航空,勘探, 测量等军方产品中都得到了广泛的应用.越来越多的芯片厂商早已看好 ARM 的前景,如 Intel,NS,Ateml, Philips, NEC, CirrusLogic 等公司都有相应的产品. 1999 年, 在 ARM 突破 1.5 亿个, 市场份额超过了 50 , 已经成为业界的龙头. 在我们研制开发基于 ARM7 的嵌入式系统过程中,发现技术难点主要在于系统启动程序的编写,为此本文详 细论述了在 ARM7 基础上开发嵌入式系统时启动程序的实现. 1.启动程序流程 嵌入式系统的资源有限,程序通常都是固化在 ROM 中运行.ROM 中程序执行前,需要对系统硬件和软件运行 环境进行初始化,这些工作由用汇编语言编写的启动程序完成. 启动程序是嵌入式程序的开头部分,应与应用程序一起固化在 ROM 中,并首先在系统上运行.它应包含进 各模块中可能出现的所有段类,并合理安排它们的次序. 写好启动程序是设计好嵌入式程序的关键,系统启动程序所执行的操作依赖于正在开发其软件的系统, 一般 流程如下: 2.详细步骤 ⑴设置入口指针 启动程序首先必须定义入口指针,而且整个应用程序只有一个入口指针. 设置中断向量 ARM7 要求中断向量表必须设置在从 0 地址开始,连续 8×4 字节的空间,分别是复位,未定义指令错误, 软件中断,预取指令错误,数据存取错误,IRQ,FIQ 和一个保留的中断向量. 如果 ROM 定位于 0 地址,向量表包含一系列指令跳转到中断服务程序,否则向量必须被动态初始化.可以 在启动程序中添加一段代码,使其在运行时将向量表拷贝到 0 地址开始的存储器空间. 对于各未用中断,使其指向一个只含返回指令的哑函数,以防止错误中断引起系统的混乱. 初始化堆栈和寄存器 系统堆栈初始化取决于用户使用了哪些中断,以及系统需要处理哪些错误类型.一般来说管理者堆栈必须 设置, If it USES the IRQ interrupt IRQ stack must also be set. If the system USES the DRAM or other peripherals, you need to set up the relevant register, to determine the refresh rate, the information such as the data bus width. Initializes the memory system Some chips can be register program initializes the memory system, and for more complex systems integration usually have MMU to manage the memory space. [5] if necessary change the processor mode, state If the system application is running in user mode, can be in here to change the system to user mode and initialize the user stack pointer. Initializes the memory space needed for the C language. To run the application, right during initialization system need to read and write data and variables should be from ROM to RAM;

您可能关注的文档

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档