三 基于ARM的嵌入式系统软件设计

更新时间:2023-04-08 20:54:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于ARM的嵌入式系统
软件设计
北京微芯力科技有限公司

主要内容嵌入式软件开发关键技术 “ARM”软件设计基础 “ARM”软件调试与运行

嵌入式软件开发关键技术嵌入式软件的启动代码 嵌入式实时操作系统 程序的链接定位 软件调试技术

启动代码说明启动代码是用来初始化电路以及用来为高级语言 写的软件做好运行前准备的一小段汇编语言 是 任何处理器上电复位时的程序运行入口点 功能初始化电路 为高级语言编写的软件运行做准备
特征汇编语言 处理器上电复位的程序运行入口点

启动代码常见形式
实时操作系统的板基支持包——BSP ? 计算机主板的BIOS

启动代码最小流程全局寄存器初始化 存储区配置
初始化堆栈 高级语言入口函数调用Main( ) Rtos_Init( ) MyRoot( ) ……

启动代码典型流程中断向量设置 全局寄存器初始化 看门狗设置 外围电路初始化
中断禁止 存储区设置 初始化堆栈 自检
数据区清零
允许中断 高级语言入口函数调用

程序的链接定位链接定位是系统级软件开发过程中必不可少的 一部分 嵌入式软件开发均属于系统级开发 链接定位过程一般由链接器根据链接定位文件 完成 比较简单的系统可以通过设置链接器开关 选项取代链接定位文件 链接定位的关键是链接定位文件的编写

常见链接程序段以下程序段存在于各个目标文件中 链接定位后按段的类别收集在一起 存储区中的位置 text : 代码段 所有代码块部分 *.obj *.o 同时指定在
rodata : 已初始化的全局只读数据 data : 已初始化的全局数据 bss : 未初始化的全局变量

简单链接定位文件 SECTIONS { .= 0x10000 .text:{*(.text)} .= 0x8000000 .data:{*(.data)} .bss:{*(.bss)} }

典型链接定位文件SECTIONS { . = 0x02000000; .text : { *(.text) } Image_RO_Limit = .; Image_RW_Base = .; .data : { *(.data) } .rodata : { *(.rodata) } .bss : { *(.bss) } PROVIDE (__stack = .); end = .; _end = .; .debug_info 0 : { *(.debug_info) } .debug_line 0 : { *(.debug_line) } .debug_abbrev 0 : { *(.debug_abbrev)} .debug_frame 0 : { *(.debug_frame) } }

调试技术在应用程序的编辑 编译工作完成后 开发人员需要借助一些 调试设备或调试模块 对应用程序进行调试 发现程序设计中的缺 陷 常用的调试设备或调试模块有以下几种 指令集模拟器
驻留监控软件
JTAG仿真器 在线仿真器

指令集模拟器
PC 而且 调试 运行速度

驻留监控软件驻留监控软件 Resident Monitors 是一段运行在目标板上 的程序 集成开发环境中的调试模块 通过以太网口 并行端口或者 串行端口等通讯端口与驻留监控软件进行交互 由调试模块发送命令 通知驻留监控软件 控制程序的执行 读写存储器 读写寄存器 设 置断点等 ??? 驻留监控软件是一种比较低廉有效的调试方式 不需要任何其他 的硬件调试和仿真设备 ARM公司的Angel就是该类软件 大部分嵌 入式实时操作系统也是采用该类软件进行调试 不同的是在嵌入式实 时操作系统中 驻留监控软件是作为操作系统的一个任务存在的 ??? 驻留监控软件的不便之处在于它对硬件设备的要求比较高 一般 在硬件稳定之后才能进行应用软件的开发 同时它占用目标板上的一 部分资源 而且不能对程序的全速运行进行完全仿真 所以对一些要 求严格的情况不是很适合

JTAG仿真器JTAG仿真器也称为JTAG调试器 边界扫描口进行调试的设备 是通过ARM芯片的JTAG
JTAG仿真器比较便宜 连接比较方便 通过现有的JTAG边界 扫描口与 ARM CPU 核通信 属于完全非插入式(即不使用片上资 源)调试 它无需目标存储器 不占用目标系统的任何端口 而这些 是驻留监控软件所必需的 另外 由于JTAG调试的目标程序是在目标板上执行 仿真更 接近于目标硬件 因此 许多接口问题 如高频操作限制 AC和 DC参数不匹配 电线长度的限制等被最小化了 使用集成开发环境配合JTAG仿真器进行开发是目前采用最多 的一种调试方式

在线仿真器在线仿真器使用仿真头 完全取代目标板上的CPU 可以完全 仿真ARM芯片的行为 提供更加深入的调试功能 但这类仿真器 为了能够全速仿真时钟速度高于100MHz的处理器 通常必须采用 极其复杂的设计和工艺 因而其价格比较昂贵 在线仿真器通常用在ARM的硬件开发中 在软件的开发中较少 使用 其价格高昂 也是在线仿真器难以普及的因素

实时操作系统(RTOS)RTOS选择的原则 EmbestIDE与RTOS的配合 常见的几种RTOS介绍

RTOS基础知识RTOS特点基于优先级的任务调度保证优先任务得到优先执行
任务间的通信
互斥机制
实现任务间同步和通讯
实时时钟管理保证任务在确定时间内执行完成

RTOS选择真的需要RTOS主程序是不是很冗长 程序的执行是不是需 要判断很多条件参数或资源是否得到 是否发现花费很多时间盘算怎样使一段代码 在该执行的时候执行 是否花费太多时间在中断子程序上 出所有代码处理中断事件 需要编
处理器控制的时间和方式和预想的一样吗

RTOS选择原则
RTOS性能 包括任务最长切换时间 时间 可调度的任务数和优先级数等 软件组件和设备驱动程序是否齐全 开发工具和调试工具是否易用 标准兼容性 是否支持POSIX标准
中断最长延迟
RTOS发送形式
是源代码还是二进制代码
是否需要许可证以及能否提供及时的技术支持

EmbestIDE和RTOS的配合EmbestIDE完全支持源代码方式提供的RTOS 只需 要将RTOS的源代码纳入EmbestIDE的工程管理目录中 和应用程序一起编译 即可调试RTOS及应用程序 EmbestIDE支持二进制码方式提供的RTOS 条件是 RTOS的二进制码是使用GNU工具链编译的 将该二进 制码文件作为库链接进EmbestIDE应用工程 即可调试 RTOS及应用程序

本文来源:https://www.bwwdw.com/article/p5ol.html

Top