嵌入式是在已有硬件上移植(修改操作系统源码)操作系统。
相比于单片机开发的缺点:
① 软件开发人员必须了解硬件的工作原理
② 软件的移植性较差
嵌入式开发具有如下优点:
① 提高了软件的移植性
② 软件人员不需要懂硬件(人才培养周期)
③ 引入操作系统提供多任务机制,更加智能性(线程、进程)
④ 操作系统提供了丰富的网络协议栈,能够实现远程控制
⑤ 操作系统提供了很多开源软件和工具(提高效率,节约成本)
移植操作系统缺点:成本高。
应用软件(Linux C/C++、android、ios、Java、php、c#)
① 精通一门语言
② 熟悉一款操作系统
③ 熟悉数据结构、算法
系统软件(驱动、BSP、内核)
① 精通C语言
② 熟悉汇编
③ 理解操作系统的实现
④ 熟悉硬件的工作原理(CPU、51、ARM、外设、iic、pci、usb、LCD、蓝牙、wifi)
软件基础
① 开发语言:C、C++、Java
② 操作系统:Linux、android、ucosii
硬件基础:51、ARM
驱动:Linux、android
扩展:STM32、数据结构