嵌入式软件开发涉及的知识点很多,我仅以自己多年的经验简单说一下:

1、具备简单的硬件电路设计能力,包括数字电路和模拟电路;做嵌入式软件对硬件一样要有一定的基础;

2、MCU设计与应用,从单片机到ARM到DSP等要具备根据客户要求设计产品的能力;外围端口和设备的设计使用以及驱动程序的编写能力,包括ADC、FLASH、EEPROM、RTC、Timer、GPIO、CAN、UART、I2C、SPI、以太网、液晶显示器等等;

3、操作系统方面至少要精通一种嵌入式操作系统,比如uCOSIII、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、掌握常用数据结构及算法的原理以及编程实现,包括链表、队列、二叉树等,掌握常用排序、查找等算法的实现;多关注一些开源项目,从中学习编程能力,提高自己;

......

运行效果

$ gcc mmap.c -o mmap
$ ./mmap
$ ls
mmap  mmap.c  records.dat
$ strings records.dat
RECORD-0
RECORD-1
RECORD-2
...
RECORD-42
RECORD-243
RECORD-44
...

嵌入式人工智能是一种让人工智能算法可以在嵌入式终端设备上运行的技术概念。目的是为了让智能硬 件设备在不联网的情况下实时完成环境感知、人机交互、决策控制。人工智能不可能没有嵌入式,要实现人 工智能的行为,必须使用嵌入式系统。嵌入式技术是支撑人工智能、物联网和5G发展的核心技术,直接决定 着“AI+”各领域应用落地。

物联网AIoT,即智能物联网,是2018年兴起的概念,指系统通过各种信息传感器实时采集各类信 息(一般是在监控、互动、连接情境下的),在终端设备、边缘域或云中心通过机器学习数据进行 智能化分析,包括定位、比对、预测、调度等。 ·“万物互联”到“万物智联”的进化 物联网(IoT)使得万物互联,但仅停留在“连接”的阶段,而AI的介入,则让物联网拥有了“大 脑”。从而使万物互联进化到万物智联。

相信掌握这些已经基本具备嵌入式系统开发能力,一定要保持时刻学习的能力,接下来就是多做项目,多解决客户问题,在实际工作中历练自己提高自己。才可以成长为更好的嵌入式开发工程师。

如果你也喜欢物联网、嵌入式,并希望在这个领域继续深耕,这里准备了一份完整的学习资料包,私信我获取。如果你觉得文章有用,可以给留下个赞或者帮忙转发一下,让更多人看到哈~

 

更多推荐

嵌入式开发工程师需要掌握哪些知识呢?