【小黑嵌入式系统第六课】嵌入式系统软件设计基础——C语言简述、程序涉及规范、多任务程序设计、状态机建模(FSM)、模块化设计

1、什么要学习程序设计规范?

1、程序不仅要被计算机执行,还要给程序员阅读,以及被今后重复使用。
2、一个风格清爽而严谨、规范化的程序更容易被读懂,更容易被修改、排错和移植。
3、规范化编程、高度一致的风格和正确的习惯还有助于保持思维清晰,写出正确无误的代码。特别是一个开发团队共同工作时,规范一致化的编程尤其重要
4、每个初学者在项目初期都会因为不良编程习惯浪费大量时间,因此若能在开始写程序时就重视规范化问题,对顺利渡过提高阶段有很大帮助。

2、程序规范的基本原则?

原则:

(1)一致的代码风格,统一的变量名、函数名命名规则

(2)符合英语语法、可阅读的代码

(3)关键代码100%注释

(4)硬件有关、硬件无关代码分离,可移植性强

(5)每个对象都具有完善的封装,接口形式简洁、易用

(6)对所有资源严格要求硬件隔离层,软件中不允许直接访问硬件,不允许跨层调用。

(一)编程风格

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


(二)可移植性

1)消除CPU差异

若希望自己写的程序在不同处理器上运行,首先需要了解这些处理器的不同之处。其中包括硬件的不同以及特殊语法的差异。例如MSP430单片机没有位操作指令,8051单片机有,若两者之间程序需相互移植,首先需要消灭这个差异。
在这里插入图片描述
2)消除硬件差异

在这里插入图片描述
在这里插入图片描述

更改数码管硬件布线,无需重写段码表

3)封装

封装是指将软/硬件对象的属性与行为绑定在一起,并放置在一个模块单元内。该单元负责将所描述的属性隐藏起来,外界对其内部属性的所有访问只能通过提供的应用程序接口实现。

在这里插入图片描述

初学者常见问题:

在这里插入图片描述
4)应用程序接口(API)

接口是对软/硬件对象的抽象,对外提供的服务和访问功能,

即:对象封装后对外呈现成什么样?

原则:(1)使用方便(2)功能丰富(3)但不要过多过滥

【例】为液晶显示模块规划应用程序接口:

在这里插入图片描述
5)软件层次

例:菜单程序
在这里插入图片描述
 
(1)杜绝跨层调用
(2)功能模块可以任意拼接、组合
(3)要有硬件隔离层(HAL)
(4)更换任意层代码,上下层建筑不变


(三)版本管理、可配置

在这里插入图片描述
 
(1)尽可能减少软件副本
(2)类似的产品/设计尽可能公用同一代码
(3)利用宏定义配置功能
(4)永远在最新的代码上开发,保留最新版


三 前后台多任务程序设计

(一)前后台程序的基本概念

在这里插入图片描述
任务(Task) :指完成某一单一功能的程序
后台程序:对时间要求不严格的任务,通常在主循环内执行
前台程序:要求快速响应或者时间严格的任务,通常中断内
队列/缓冲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值