嵌入式软件开发涉及的知识点很多,我仅以自己多年的经验简单说一下:
1、备简单的硬件电路设计能力,包括数字电路和模拟电路;做嵌入式软件对硬件一样要有一 定的
基础;
2、MCU设计与应用,从单片机到ARM到DSP等要具备根据客户要求设计产品的能力;外围端[和
设备的设计使用以及驱动程序的编写能力,包括ADC、FLASH、 EEPROM、 RTC、 Timer. GPIO、
CAN、UART. I2C、 SPI、 以太网、液晶显示器等等;
3、操作系统方面至少要精通一种嵌入式操作系统, 比如uCOIII、freeRTOS 、Vxworks等, 并且
-定要学嵌入式linux, 搞明白多任务调度、信号量、邮箱等的原理和使用; 在实际的项目中使用这
些操作系统并逐渐掌握它们;
4、能编写常见的linux平台下的外围设备驱动,包括但不限于ADC、GPIO、 UART、I2C、摄像
头、SD卡、网卡、SPI等等, 搞明白字符设备、块设备以及网络设备的常用设备驱动程序架构;
5、具备GUI设计能力,可以学习Qt,它的跨平台特性使得一套设计可以应用于不同的平台包括
windows以及linux;
6、具备多线程编程能力,弄懂线程池的原理并应用到实际工作中;
7、具备高并发网络通信编程能力,epoll以及libevent 的使用和设计;
8、精通C/C++,并涉猎其他编程语言比如python
9、备至少-种数据库编程能力,嵌入式可以学习SQLite;
10、掌握常用数据结构及算法的原理以及编程实现,包括链表队列、=叉树等,掌握常用排序、
查找等算法的实现;多关注一些开源项目, 从中学习编程能力,提高自己;
相信掌握这些E经基本具备嵌入式系统开发能力,一定要保持时刻学习的能力, 接下来就是多做项
目,多解决客户问题,在实际工作中历练自己提高自己。 |