OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 嵌入式系统基础阶段的学习建议

共2条 1/1 1 跳转至

嵌入式系统基础阶段的学习建议

专家
2020-10-29 07:36:45    评分

基于以上讨论,21ic家总结了渴望学习嵌入式系统的学子提出几点基础阶段的学习建议:
(1)嵌入式系统软件硬件密切相关,一定要打好软件硬件基础。其实,只要找到正确的方法,加上努力,任何理工科学生,甚至非理工科学生,都能学好嵌入式系统。
(2)选择一个芯片及硬件评估板(入门芯片最好是简单一点,例如8位MCU)、选择一本好书(最好有规范的例子)、找一位好老师(最好是有经验且热心的)。硬件评估板的价格一定要在1000元以下,不要太贵,最好能有自己动手的空间。不花一分硬件钱,要想学好嵌入式系统不实际。因为,这是实践性很强的学科。好书,可以使你少走弯路,不会被误导,要知道有的书是会使人进入学习误区的。好老师也可以是做过一些实际项目的学长(一定要找做过几个成功项目的学长或老师做指导,否则,经验不足也可能误导),有教师指导,学习进程会加快(人工智能学科里有个术语叫无教师指导学习模式与有教师指导学习模式,无教师指导学习模式比有教师指导学习模式复杂许多)。
(3)许多人怕硬件,其实嵌入式系统硬件比电子线路好学多了。只要深入理解MCU的硬件最小系统,对I/O口、串行通信、键盘、LED、LCD、SPI、I2C、PWM、A/D(包括一些传感器)、D/A等逐个实验理解,逐步实践。再通过自己做一个实际的小系统,底层硬件基础就有了。各个硬件模块驱动程序的编写是嵌入式系统的必备基础。学习嵌入式系统的初期,这个过程是必须的。
(4)至于嵌入式实时操作系统RTOS,一定不要一开始就学,这样会走很多弯路,也会使你对嵌入式系统感到畏惧。等你软件硬件基础打好了,再学习就感到容易理解。实际上,众多嵌入式应用,并不一定需要操作系统。也可以根据实际项目需要再学习特定的RTOS。一定不要被一些嵌入式实时操作系统培训班宣传所误导,而忽视实际嵌入式系统软件硬件基础知识的学习。
(5)要避免片面地单纯从“电子”或“计算机软件”角度认识嵌入式系统。前面说过,嵌入式系统是软件与硬件的综合体。因此,要逐步从MCU的最小系统开始,一点一点理解硬件原理及底层硬件驱动编程方法。要通过规范的例子,理解软件工程封装、可复用等思想。通过规范编程,积累底层构件(Component),也就是一个一个模块,但是要封装得比较好,可复用。
(6)注重实验与实践。这里说的实验主要指通过重复或验证他人的工作,目的是学习基础知识,这个过程一定要经历。实践是自己设计,有具体的“产品”目标。如果你能花500元左右自己做一个具有一定功能的小产品,且能稳定运行1年以上,就可以说接近入门了。
(7)关于入门芯片的选择。不要选太复杂的微控制器作为入门芯片,不能超越学习过程。不要一下子学习几种芯片,可以通过一个芯片入门并具有一个实践经验后,根据实际需要选择芯片开发实际产品。注意,不要把微处理器(MPU)与微控制器(MCU)概念相混淆,微处理器只是微控制器的内核。
(8)关于操作系统的选择。可以等到你具有一定实践后,选择一个简单容易理解原理的进行学习,不要一开始就学习几种操作系统,理解了基本原理,实践中确有实际需要再学习也不迟。人总是要不断学习的。
(9)关于汇编与C语言的取舍。随着MCU对C编译的优化支持,对于汇编可以只了解几个必须的语句,直接使用C语言编程。但必须通过第一个程序理解芯片初始化过程、中断机制、程序存储情况等区别于PC机程序的内容。另外,为了测试的需要,最好掌握一门PC机编程语言。
(10)要明确自己的学习目的,并注意学习方法。关于学习目的要明确是打基础,还是为了适应某些工作而进行的短训;而学习方法方面,要根据学习目的选择合适的学习途径,注意理论学习与实践、通用知识与芯片相关知识、硬件知识与软件知识的平衡,要在理解软件工程基本原理基础上理解硬件构件与软件构件等基本概念。
以上建议,仅供参考。 当然,以上只是基础阶段的学习建议,要成为良好的嵌入式系统设计师,还需要在实际项目中锻炼,并不断学习与积累经验。如果还没有看够,可以在21ic中国电子网的专栏进行查阅。

附:嵌入式 Arm Linux 入门必读书籍推荐


1、Linux基础入门

· 《笨办法学 Linux 》

· 《嵌入式 Linux 基础教程》

· Linux 就该这么学》

· Linux C 编程一站式学习》

· 《嵌入式 Linux 开发教程》

· 《鸟哥的 Linux 私房菜》

· Linux 自学大全》

· ARM嵌入式 Linux 系统开发从入门到精通》

· ARM Linux 入门与实践》


2、Linux 系统环境

· LINUX命令行与SHELL脚本编程大全》第三版

· Shell 编程大全》

· Shellbook》

· Shell 命令行操作》


3、Git 版本管理

· GitHub 入门与实践》

· Pro Git》第二版


4、C 语言和汇编

· C 和 指针》

· C 语言深度剖析》

· 《高质量C++编程指南》

· TheCprogramminglanguage《C程序设计语言》 

· Ctrapsandpitfalls《C陷阱与缺陷》 

· ExpertCLanuage《专家C编程》 

· WritingCleanCode-----MicrosoftTechiniquesforDevelopingBug-freeCPrograms《编程精粹--Microsoft编写优质无错C程序秘诀》 

· ProgrammingEmbeddedSystemsinCandC++《嵌入式系统编程》 

· 《高质量C++/C编程指南》林锐 


5、Arm 体系结构

· ARM 嵌入式系统开发-软件设计与优化》

· ARM系列处理器应用技术完全手册》

· ARM 官方文档

· 编程指南:

§ The_Definitive_Guide_to_ARM_Corte_M3&M4》

§ Arm Cortex-A 编程指南》

§ Armv8-A 编程指南》


6、Linux 应用编程

· Linux 环境编程:从应用到内核》

· GNU Linux 编程指南》

· Linux 程序设计》

· Linux 系统编程》

· UNIX 环境高级编程》


6、Linux 内核基础原理

· Linux 内核设计与实现》

· Linux 设备驱动程序》

· 《深入 Linux 内核架构》

· 《深入Linux 设备驱动程序内核机制》

· Mastering Linux Kernel Development》


7、Linux 内核开发与实践

· Linux 设备驱动开发详解》

· 《精通 Linux设备驱动开发》

· 《嵌入式 Linux 基础教程》

· 《构建嵌入式 Linux 系统》

· 《深入 Linux 内核架构》

· Linux 内核完全注释(带源码中文注释)》

· 《一幅漫画解读 Linux 内核》

· 《快速理解什么是 Linux 内核》

· 《嵌入式 Linux 框架的理解》

8、Linux应用开发

· 《韦东山嵌入式 Linux 应用开发完全手册》

· Linux 学习资料(华为)》

· 《树莓派开始,玩转 Linux》

· 《书单:顶级Linux大神告诉你该看哪些书》

· 《给编程初学者的7本书+高级Linux编程(开源书下载)


9、操作系统理论与基础

· 《深入理解计算机系统》

· Operating Systems:Three Easy Pieces》

 





关键词: 嵌入式     系统     基础     阶段     学习    

工程师
2020-10-29 21:53:45    评分
2楼

目录还是很全的


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]