嵌入式软件内功修炼心法

这里写自定义目录标题


1、对嵌入式软件的认知
所谓嵌入式软件开发,抽象的讲,就是在专用的硬件平台借助宿主机交叉编译环境通过编程、编译、链接下载、调试达到目标需求;往细了分,嵌入式软件开发可分为嵌入式驱动设计师(向下根据接口协议驱动硬件设备,向上提供应用API),嵌入式系统设计师(编写固件程序,设计操作系统内核或文件系统,根据不同硬件平台移植操作系统,优化系统功能),嵌入式界面设计师(嵌入式硬件平台的上位机GUI设计,人机交互),嵌入式应用设计师(裸机或操作系统移植调度驱动API按照一定的算法逻辑实现相应的需求功能),嵌入式算法设计师(把相关数学算法设计成软件程序精准优化系统功能,如PID控算、卡尔曼滤波算法、低通滤波等)。
2、嵌入式软件内功
C语言就是嵌入式软件的内功,相信大家都看过武侠小说或电视,金老前辈的甚是出名,里面有“天下武功出少林”一说,为什么呢?就是因为少林有一本《易筋经》, “扫地僧”也就是当时江湖的大神,学了易筋经的人想再学其他武功可谓是游刃有余,就像《射雕英雄传》的郭靖郭大侠因为修炼了全真教马钰道长的内功,再学洪七公、老顽童等的外功就很简单了,而C语言就是所有各种编程语言(像Python、Java、C++、PHP、JavaScript等等)里面的“易筋经”,达到精通C的境界,再学其他就很简单了,因为C 要整明白,必须了解底层、明白计算机系统的运行机制,当然一个没学过汇编的人不能真正掌握C语言的真谛。在如今Python、Java编程语言火热的市场前景下,我还是建议,在学校读书真心想搞IT技术,从C语言学起,会受益终生的。
3、内功修炼心法
学习C语言难吗?我的回答是:不难。真正懂得用C语言难吗?–难,但是按照心法不断去实践会化解“难”这颗顽石。现在对C语言水平层次的定义有几阶:入门、掌握、熟悉、精通。现在很多一线的软件工程师都是至多在“熟悉”的水平阶上。
内功心法:用数学思维抽象化去学习,多编程、多调试、多实际应用,多看高手写的优秀代码,可以尝试去写写RTOS内核;知错就改,温故知新,不断学习
内功大纲:结构体、数组、指针、函数、内存管理、数据结构
(1) 深度理解ANSI标准定义的C语言预处理指令用法,文件结构问题
(2) 明确定义及声明,深度解析C语言的32个关键字,sizeof是关键字
(3) 标准C语言的20个基本符号深度熟练怎么用,还有表达式的优先级问题
(4) 深度理解内存管理与内存泄漏问题,野指针的问题,栈、堆、静态区的问题
(5) 深度解析指针和数组的内存布局,它们之间的相互访问形式以及地址的强制转换 ,还有多维数组和多级指针问题
(6) 深度理解函数设计的原则和技巧,养成良好的编程风格和编程习惯
4、顺便提提软件面试一般考察的问题,也就是面试官想通过面试了解的问题:
(1) 在需求实现的前提下,看你的编程风格;
(2) 编程逻辑不可能一步到位,很多时候需要不断修改,看你出错问题的处理能力;
(3) 对你代码算法复杂度进行分析,是否提高系统性能。

猜你喜欢

转载自blog.csdn.net/yusujifeng/article/details/88125072