嵌入式系统固件的开发与调试
主要学习
• ❖ 嵌入式系统的质量属性(quality attributes)
• ❖ 嵌入式系统的设计与开发
• ❖ 嵌入式系统的类型
• ❖ 嵌入式系统中的时间管理与调度(time management and scheduling)
• ❖ 用于嵌入式系统的调试工具(debugging tools)
1.质量属性分为操作质量属性和非操作质量属性
嵌入式硬件
嵌入式系统开发人员将控制算法(程序指令)和/或配置设置转储到嵌入式系统的代码(程序)内存中
它是嵌入式系统中不可避免的一部分。
➢ 嵌入式固件可以通过各种方法开发,如:
➢ 使用集成开发环境(IDE)以嵌入式C/C++等高级语言编写程序:
➢ IDE将包含一个编辑器、编译器、链接器、调试器、模拟器等。
➢ IDE对于不同的处理器/控制器系列是不同的。
➢ 使用应用程序的目标处理器/控制器支持的指令,用汇编语言编写程序
嵌入式固件负责控制嵌入式硬件的各种外围设备,并根据产品的功能要求生成响应
嵌入式固件是嵌入式系统的主脑
嵌入式固件将智能传递给嵌入式系统
这是一个一次性的过程,可以在任何阶段发生
一旦通过在硬件中嵌入固件将智能传递给产品,该产品将开始正常运行
该产品将继续为分配的任务提供服务,直到发生硬件故障或嵌入式固件损坏
在硬件故障的情况下,可能需要更换损坏的组件,对于固件损坏,应重新加载固件,以使嵌入式产品恢复正常功能
嵌入式固件通常存储在永久存储器(ROM)中,并且
最终用户不可更改
嵌入式固件的设计和实现有两种基本方法,即
基于超循环的方法 The Super loop based approach
基于嵌入式操作系统的方法 The Embedded Operating System based approach
关于固件开发需要采用哪种方法的决定是完全依赖于复杂性和系统需求
基于超级循环的固件开发方法是
适用于时间不严格且响应时间不太重要的应用程序(例如,可接受错过截止日期的嵌入式系统)
它非常类似于传统的过程编程,其中代码是逐任务执行的。
任务在一个永无止境的循环中执行。
程序代码顶部列出的任务首先执行,顶部下方的任务在完成第一个任务后执行
优点:
▪ 不需要操作系统来进行