47、嵌入式系统开发中的关键问题与解决方案

嵌入式系统开发中的关键问题与解决方案

1. 编码风格与并发问题

1.1 编码风格的重要性与陷阱

在编码过程中,拥有明确的编码风格至关重要。缺乏定义好的编码风格是最大的错误,不同开发组的风格可能不同,但在特定项目或组内应尽可能保持一致。同时,不要花费过多时间争论使用哪种风格,若开发者无法达成一致,可通过妥协来推进,比如抛硬币或轮流制定规则。一致性是关键,也可以借鉴他人的风格指南并进行修改。

所谓的自文档化代码常被用来为无注释、无设计和无架构描述的代码辩护。虽然有些代码确实无需注释,但大多数人并非编程界的诗人或文学大师,因此不能以此为借口跳过注释和忽视设计的其他部分。

1.2 数据访问并发问题

两个任务在任何时间点都能同时活跃则为并发。嵌入式系统软件在运行时通常会不断执行控制算法,因此大多数嵌入式系统都存在一定程度的并发问题。当任务间共享数据或内存位置时,就可能出现问题。并发问题通常发生在一个任务访问数据结构并错误地假设其不会被其他任务更改时。

常见的并发问题症状包括:
- 偶尔出现看似随机的错误,在特定系统操作模式下可能更频繁。
- ISR 更新变量或内存位置,非 ISR 例程在使用这些位置时未禁用中断。
- 全局变量被多个任务访问,但没有互斥锁或其他锁定机制保护。
- 硬件资源被多个任务共享,但没有互斥锁或其他锁定机制保护。
- 变量可能被其他任务或硬件更改,但软件在可能发生更改时未强制重新加载值。
- 存在使用静态、全局或其他非可重入数据结构的共享代码段。

并发管理不当的风险包括:
- 间歇性错误,难以重现,可能在系统交付

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值