《2ARM嵌入式开发模式和基本开发流程.ppt

《2ARM嵌入式开发模式和基本开发流程.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章ARM嵌入式开发模式和基本流程 内 容 2.1 ARM嵌入式开发模式 2.2 ARM嵌入式开发流程 2.3 ARM嵌入式系统控制界面 2.1 ARM嵌入式开发模式 目标机/宿主机开发模式 宿主机需要运行一些软件进行程序编辑、编译和调试等功能,这些软件通常称为集成开发环境(IDE)。 集成开发环境 1、针对处理器的集成开发环境: 传统的单片机程序开发环境一样,是针对特定处理器的,而不是针对特定程序或者操作系统的。 主要采用在线仿真模式进行调试,主要用于调试无操作系统的程序和没有指定编译环境和集成开发环境的操作系统(如uC/OS-II、Nucleus)。 如ARM ADS、ADT IDE等。 2、针对操作系统的集成开发环境: 不是针对某一种处理器,而是针对某一种操作系统,并支持多种不同的处理器。 主要采用驻留监控模式进行调试。 如开发VxWorks的Tornado和WorkBench、开发Windows CE的Platform Builder、开发Linux的GNU工具链等。 调试模式 1、在线仿真模式 2、驻留监控模式 在线仿真模式 JTAG边界扫描即IEEE 1149.1标准,这个标准定义了可用于完成功能和互连测试以及内建自测过程的各种指令。 仿真器在调试时不额外占用目标板的资源,包括RAM、GPIO端口等。 驻留监控模式 驻留监控程序是一个特殊应用的程序,开发者先将驻留监控程序调试好并在目标机上运行,驻留监控程序通过特定的通信方式(如以太网、USB等)和运行于宿主机的集成开发环境进行通信实现程序下载、调试等功能。 这种模式下载速度快,和集成开发环境连接紧密,但该程序运行需要占用一些目标板资源。 调试驻留监控程序通常采用在线仿真模式进行。 驻留监控程序有:VxWorks操作系统的bootrom、Linux操作系统的u-boot、Windows CE的Eboot等。 2.2 ARM嵌入式开发流程 需求分析 1 硬件需求分析 处理性能 技术指标和成本 功耗 操作系统和软件支持工具的选择 2 软件需求分析 实时性 系统的功能 开发的难度 成本 系统移植 这个阶段根据不同的软件设计方案可能不同。对于无操作系统的应用该阶段的主要目的是设计启动代码。对于有操作系统的应用则包括bootloader的移植和操作系统的移植。 启动代码 由于ARM软件编程一般采用高级语言,如C语言,因此在系统启动后必须有一段程序能够将CPU带入到能够运行C语言的状态,这段程序就是启动代码。 启动代码通常用汇编语言完成,并在系统复位入口点(ARM系统中为0地址)运行。 在嵌入式系统中系统复位入口点所在的硬件通常是Flash等芯片,存储在这些芯片中的数据即使掉电也能够保存,而且这个地方的硬件的访问宽度是由硬件设计决定,软件不能更改,这样就能保证上电后该地址的数据有效。 ARM代码结构 ARM程序编译后得到的二进制代码通常包含: 代码段(text段或code段):编译后的代码,只读 读写数据段(data段):可读写的全局变量,读写 只读数据段(rodata段):只读数据,如const类型的全局变量 BSS段:需要清0的数据 这些段在链接(link)过程中产生,并且在链接过程中都应该设置各段的起始地址。程序必须从代码段指定的起始位置处运行。 根据代码段运行所在地址的硬件介质不同可以将程序分为在RAM运行的程序和在ROM运行的程序。 在RAM运行程序结构图 在ROM运行程序结构图 启动代码主要功能(1) 1、建立异常向量表 2、初始化硬件:初始化RAM、关闭中断、关闭看门狗等 3、初始化堆栈 4、初始化读写数据段、BSS段: 在ROM中运行的程序必须将数据段从ROM中拷贝到RAM中,并将BSS段清零; 在RAM中运行的程序则需要将BSS段清零,然后将整个代码段、只读数据段、读写数据段和BSS段从ROM拷贝到RAM。 启动代码主要功能(2) 5、重定向 位置无关的代码是指该代码不用在编译指定的地址 运行也能保证程序的执行流程和执行逻辑不会改变。 位置相关代码运行的地址必须和编译时的地址一致,否则将导致程序运行流程改变。 在初始化程序区、数据区之后需要一条跳转指令将PC跳转到编译时指定的运行地址接着运行。LDR指令及之前的指令都在ROM中运行,而startram标号之后的代码则跳转到编译时指定的地址(RAM或者ROM中)中运行了,因为startram标号表示的地址是由编译时就确定的。这个过程就是重定向。 LDR PC, = startram startram : … 重定向之前运行的代码必须是位置无关的代码。 启动代码主要功能(3) 6、跳转到C代码 LDR PC,=Main Bootloader 在操作系统内

文档评论(0)

jizi6339 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档