一.嵌入式开发概述:
嵌入式:在已有硬件上移植操作系统,解决软硬件耦合度高导致的问题。(打个比方:软件的实现是为了调用open()函数,那么嵌入式开发就是在操作系统中实现open()函数对硬件的调用)
移植:为满足硬件要求修改内核源码
嵌入式开发和单片机开发的区别:是否移植操作系统。
没有操作系统的产品就不是嵌入式产品;
传统开发(单片机/裸机开发)缺点:
1.软件移植性差;(软件直接控制硬件,耦合度太高,若硬件变化,软件也要变)
2.软件开发人员必须懂硬件;
3.软件功能性差(用户体验和功能)。(开发人员要从硬件的角度考虑软件的编写,功能性差)
优点:成本低
嵌入式开发优点:
1.解决传统开发软硬件耦合度高的问题;
2.多任务机制;
3.提供了丰富的网络协议栈;
4.提供了丰富的开源软件和工具。
缺点:成本高
应用软件(linux c/c++)的开发要求:
1.精通一门语言;
2.熟悉一款操作系统;
3.数据结构和算法;
系统软件:驱动,BSP内核
开发要求:
1.精通c语言;
2.熟悉汇编;
3.理解操作系统的实现;
4.熟悉硬件工作原理。
linux:
GPL协议:开源协议
POSIX标准:可移植操作系统接口(使linux兼容Unix)
GNU计划:gun is not unix 不属于unix的工具