从事嵌入式编程工作已有一年多了,在这里有幸分享笔者对软件系统优秀特性的看法以及在嵌入式编程实践中的感悟。全文若有疑议,欢迎同事Email至笔者的邮箱:VegaEmbed@163.com,技术交流,相互促进。
软件系统优秀特性如下:
(1) 高效合理的数据流处理;
(2) 客观严谨的逻辑控制;
(3) 人性化的外部接口;
(4) 健壮的容错管理;
(5) 良性的代码冗余。
以下从嵌入式编程的角度说明个人对上述软件系统特性的看法,文中所指的嵌入式编程按通俗的说法:即开发运行于终端设备的应用,区别于传统PC机上的软件。基于笔者的项目经历,文中观点更倾向于在裸机上自行构建与开发一套专用的软件系统,如:单片机软件系统。在软件系统优秀特性的表述方面,既有“个性”,也有“共性”。
特性(1): 数据流处理无疑是软件系统最重要的功能需求,目的在于通过计算机实现对数据的智能管理,而嵌入式编程中处理的数据流通常是控制硬件的指令和反应硬件状态的信号,所以数据流处理是否稳妥将直接影响硬件的驱动性能。尤其在单片机有限主频和小容量存储空间情况下,数据流处理不善极有可能导致堆栈溢出,系统跑飞和死机现象。为了杜绝此类事情发生,嵌入式程序员很有必要提高数据流的处理效率,结合应用场景,灵活使用数据结构。
笔者以”串口通信”为例(如图1),结合串口本身”串入串出”的特性,引入循环队列作为其数据结构,为进一步提高串口的协议解析效率,再结合队列”先进先出”的操作特点,采用”按字节解析”算法,实时记录协议包解析状态,接收超时或者完成解析则进行清空策略,使之通过了模拟双向数据流压力测试。