10、嵌入式程序设计与分析

嵌入式程序设计与分析

1. 引言

嵌入式程序的创建是嵌入式系统设计的核心。与编写典型的工作站或 PC 程序相比,设计和实现嵌入式程序更具挑战性。嵌入式代码不仅要提供丰富的功能,还需以所需的速率运行以满足系统期限,适应允许的内存量,并满足功耗要求。

在讨论中,我们主要关注高级编程语言,特别是 C 语言。如今,高级语言程序在嵌入式系统中已很常见。不过,若编译器的结果不够理想,程序的某些部分可能仍需用汇编语言编写。本章研究的许多分析和优化技术同样适用于汇编语言编写的程序。

接下来将介绍嵌入式软件中常用的一些软件组件,引入控制/数据流图作为高级语言程序的模型,回顾汇编和链接过程,介绍编译技术、程序性能分析方法,以及针对嵌入式计算的优化技术,讨论确保程序正确性和安全性的技术,最后给出两个设计示例。

2. 嵌入式程序的组件

嵌入式软件中常用的三种结构或组件的代码,分别是状态机、循环缓冲区和队列。状态机适用于用户界面等反应式系统,循环缓冲区和队列在数字信号处理中很有用。

2.1 状态机

2.1.1 状态机风格

当输入间歇性出现而非周期性采样时,将系统视为对这些输入做出反应是很方便的。大多数系统的反应可以根据接收到的输入和系统的当前状态来描述,这自然引出了用有限状态机风格来描述反应式系统的行为。而且,以这种方式指定行为后,用状态机风格编写实现该行为的程序是很自然的,这种编程风格也是此类计算的高效实现方式。

2.1.2 编程示例:C 语言中的状态机

以简单的安全带控制器为例,该控制器的任务是,如果有人坐在座位上且在规定时间内未系好安全带,则打开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值