嵌入式系统里你需要知道的东西

发布时间 2023-08-25 21:42:42作者: asandstar
STM32单片机

1.库函数编程以及寄存器操作
2.复杂外设:DMA、ADC、DAC、PWM、IIc、SPI、jtag调试、中断、时钟系统
3.高级模块:蓝牙、WiFi、摄像头、键盘鼠标、USB

书+开发板

正点原子,资料齐全,视频配套

博客+自己做笔记

cortex M3内部结构 STM32的内部结构和cortex M3内核结构 《cortex M3/M4权威指南》
C语言进阶 C指针、数据结构

《C和指针》

《C primer》

《数据结构与算法分析》

实时操作系统

freertos 或者 ucos操作系统

下载源码,学会移植,学习操作系统基本结构,深入掌握操作系统调度和内存管理

源码+手册+大佬博客
应用层 学习一点C++或者C#,常识写上位机程序,Windows的应用程序  

一般嵌入式的大厂大都要求有Linux开发经验,

按照顺序:先学会使用Linux,再学习Linux内核。Linux十分庞大,弄懂一个组件或者一项就能找个不错的工作。

Linux应用层编程、Linux系统编程、ARM体系结构(嵌入式一般先学ARM架构,其他架构工作中再学)

Linux驱动、Linux内核基本模块:内存管理,任务调度,文件系统。弄懂一个需要很多时间。

书籍:

《Unix环境高级编程》【】

《Linux内核设计与实现》【】

《Linux系统编程》【】

《深入理解Linux内核》【】

《Linux设备驱动开发详解》【】

《Linux设备驱动程序内核机制》【】

《Linux内核情景分析》【】

《ARM体系结构与编程》【】

《ARM嵌入式系统开发:软件设计与优化》【】

______________________________________________________________

来源:https://www.zhihu.com/question/322341076/answer/1068611110
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

______________________________________________________________

建议:

1.多参加比赛,配合软硬件开发调试的经历对今后发展很有帮助

2.开发板购买资料齐全的

3.进阶时最好不要按某模块顺序学习,而是先定需求再学模块(从目标到学习,效果更好)

需求的例子:

①用串口完成PC和设备通讯

②串口使用自定义协议,包含起始位、地址、数据、结束位、CRC校验

③通过串口管理外部设备如复位、蜂鸣器、设置DA输出、获取AD值,并在界面显示

④支持串口在线升级,存储使用外部FLASH,下载支持断点重传,版本检验和完整性检验

⑤上位机开发支持自定义串口协议软件,用常用的可以实现图像界面的语言和框架,如c#,c++,python

⑥支持自定义协议替换为FreeModbus协议,使用宏切换

……

用Web端,通过浏览器实现上述功能

【分解为小模块进行实现】

4.总结!写文档或写博客发表,完成比完美更好。调试成功了AD、串口通讯协议等等都可以发,分享开发心得和解决问题的思考过程与步骤。能写出来讲给别人听一定是经过思考的。

5.早点定位行业,积累工作经验!

来源:玩嵌入式,一般怎么入门? - 听心跳的声音的回答 - 知乎