一步步写嵌入式操作系统
嵌入式硬件开发有哪些步骤?#嵌入式##硬件开发#
说到嵌入式硬件开发,不得不先理解什么是嵌入式。
#度娘#给出的答案是:
嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。
很多人对此还是不了解,那么,如何理解“嵌入式”呢?
从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,早期的基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,而目前很多控制器芯片早已集成到CPU内部,例如早期PC机有显卡,而现在多数嵌入式处理器都带有LCD控制器,某种意义上就相当于显卡。
从软件上,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入”。
综上所述,嵌入式是一个综合性的学科。
嵌入式硬件开发流程如图1所示。
图1 硬件开发流程
基于嵌入式的开发,基本上分为四层:硬件层、驱动层、操作系统层和应用层。
其中应用层的开发最为简单,也是需求量最大的,也是公司里利润最高的部分。操作系统层的开发主要是移植相关,很少有人自己写操作系统。不过华为的鸿蒙系统,还是很值得我们期待的。驱动层的开发比较难。需要能看懂电路图还要对操作系统内核十分的精通。
最后,说说硬件开发,它是整个嵌入式系统的根本,是基础。嵌入式硬件开发在很大程度上决定了嵌入式产品的性能。硬件工程师就像是设计师和建筑师,负责整个建筑的设计和建设。软件工程师则是负责房间的装修,锦上添花。
#嵌入式#
做嵌入式硬件工程师需要掌握什么?个人感觉硬件和软件都得懂,肯定不会做纯软件开发或纯硬件开发。
一个嵌入式硬件工程师应该掌握的最基本技能:
一、硬件方面
1、根据需求设计原理图
1)、芯片选型;
2)、芯片外围电路设计;
3)、硬件原理图设计。
2、PCB
1)、PCB合理布线;
2)、生成BOM文件。
3、硬件调试
1)、硬件调试常用的仪器;
电烙铁,示波器,万用表。
2)、板子调试,电源部分,电阻电容虚焊等。
4、掌握数字电路和模拟电路
5、了解电磁兼容
6、电源的设计
主要包括DC/DC、LDO电源芯片设计的原理,设计时各元器件的选型以及电源指标参数。
二、软件方面
1、熟练掌握C编程;
2、熟练嵌入式开发环境;
3、熟悉常用外设接口,比如SPI总线,IIC总线,USB,串口、网口等;
4、代码debug;
5、固化代码。
三、了解CPU最小系统知识
了解ARM、POWERPC、MIPS的CPU架构、主要是掌握其最小系统的电路设计。
#Linux##ARM#
总之,嵌入式硬件工程师要有软件基础和硬件基础。软件基础就是ARM软件开发那一套理论知识,硬件基础需要了解数字电路,模拟电路,典型的电路设计等等,有一定的动手能力。
以上纯属个人观点,多多交流,点点关注。





