嵌入式软件开发学习Ⅰ:学习路线与初步软件安装
一、嵌入式软件开发背景知识
参考资料: 我在ARM板上写的第一个驱动程序
搞嵌入式有两个方向,即偏底层的硬件+稍上层的软件
一个是嵌入式硬件开发(微控制单元——Microcontroller Unit——MCU;MCU方向);另一个是嵌入式软件开发(Linux方向)。其中MCU方向基本是裸机开发和RTOS开发。而Linux开发方向又分为驱动开发和应用开发,其中应用开发相比于驱动开发来说简单一些,因为搞驱动你要和Linux内核打交道。而我们普通的单片机开发就是应用开发,和Linux开发没多大区别,单片机你去调别人写好的库,Linux应用你也是调别人的驱动程序。
很多人学习的路线是:单片机到RTOS,再到Linux,这个路线其实是非常好,循序渐进。因为你学了单片机,所以你对RTOS的学习会很容易理解,单片机+RTOS在市面上也可以找到一个很好的工作。因为你学了RTOS,你会发现Linux驱动开发其实和RT-Thread的驱动程序非常像,其实RT-Thread驱动大概率可能是仿Linux驱动而写的。所以如果你现在在学RT-Thread,那么你后面去搞Linux驱动也是非常容易上手。
除了Linux系统,嵌入式开发还常用一些其他的操作系统比如RTOS、FreeRTOS、RTT等小型操作系统。
二、嵌入式软件开发学习路线
三、STM32初步学习相关软件
3.1 需要下载的软件以及教程
需要下载如下的三个软件:
1、Source Insight
Source Insight 4.0安装教程(PS:附安装包及卸载重新安装等注意事项)
2、keil5
keil5安装教程
3、CubeMX
(实测可用)STM32 CubeMx安装教程
经过笔者亲身操作,在移动硬盘上下载了以上三个软件(主要是后续学习中还需要使用虚拟机,占用空间较大,所以将这些软件统一安装在一个移动硬盘中),按照教程一步一步走即可。注意在安装以上的软件中可能需要关闭杀毒软件(避免破解的过程被电脑拦截),或者在运行时使用“以管理者身份运行”。
3.2 下载软件的作用与对比
1、Source Insight
-
Source Insight是一个源代码阅读和导航工具,它提供了强大的代码浏览、查找和编辑功能。通过解析源代码文件,它可以构建代码的层次结构,并提供一系列导航功能,如跳转到定义、查看引用、查找符号等。同时,它还支持自动完成、语法高亮、代码折叠等功能,帮助开发人员更高效地阅读和修改源代码。
-
Source Insight支持多种编程语言,包括C、C++、C#、Java、Python等,可以轻松处理大型项目和复杂的代码库。它还提供了强大的搜索功能,可以快速定位关键字、函数、变量等。此外,Source Insight还支持项目管理、版本控制集成以及与外部工具的交互等功能,使得开发过程更加便捷和高效。
-
总的来说,Source Insight是一款功能强大的源代码阅读和导航工具,适用于开发人员在日常开发中对源代码进行浏览、分析和编辑。
2、keil5
-
Keil 5是一款嵌入式开发工具,由Keil Software(现在是ARM公司的一部分)开发和维护。它是一款集成开发环境(IDE),专门用于编译、调试和程序下载嵌入式系统所需的软件。
-
Keil 5主要针对ARM架构的微控制器开发,包括Cortex-M系列和Cortex-R系列等。它支持多种编程语言,如C、C++和汇编语言,并提供了丰富的开发工具和功能,如代码编辑器、编译器、调试器、仿真器等。
-
通过Keil 5,开发人员可以创建项目、编写代码并进行编译和调试。它提供了直观的用户界面和丰富的调试功能,使得开发人员能够方便地查看变量的值、执行代码、跟踪程序流程等。此外,Keil 5还支持与硬件设备的连接,可以通过仿真器或调试器与目标系统进行通信,并将程序下载到目标设备上进行测试和调试。
-
总的来说,Keil 5是一款专门用于嵌入式系统开发的集成开发环境(IDE),提供了编译、调试和程序下载等功能,适用于ARM架构的微控制器开发。
3、CubeMX
-
CubeMX(CubeMX是一个Cube配置工具,可用于基于ARM Cortex-M微控制器的嵌入式应用程序开发。它由STMicroelectronics开发和维护。
-
CubeMX的主要目标是简化和加速嵌入式系统的开发过程。它提供了一个图形化界面,使开发人员可以轻松地配置微控制器的引脚、时钟、外设等参数。通过选择和配置不同的功能模块,如GPIO、UART、SPI、I2C等,开发人员可以快速生成初始化代码和配置文件。
-
CubeMX还提供了一些高级功能,如中断和DMA的配置、时序图的生成、时钟配置的优化等。它还支持导出代码到各种开发环境,如Keil、IAR、STM32CubeIDE等,方便进一步的应用程序开发和调试。
-
总的来说,CubeMX是一个强大的嵌入式开发工具,可用于基于ARM Cortex-M微控制器的应用程序开发。它提供了图形化界面,简化了微控制器的配置过程,并生成相应的初始化代码和配置文件,加速了开发过程。
胡歌 - 此生不换: 博主好啊,韦东山freeRTOS快速入门这个课只有一部分啊
CSDN-Ada助手: 恭喜用户撰写了第十篇博客!题目“深入RTOS(1):为什么从裸机到RTOS?”引人深思,探讨了从裸机到RTOS的重要转变。希望用户能继续坚持写作,分享更多有价值的内容。建议在下一篇博客中,可以深入探讨RTOS的优势和应用场景,让读者更加全面地了解这一主题。期待您的精彩续篇!
CSDN-Ada助手: 恭喜用户撰写了第9篇博客《嵌入式面试救急指南!》,内容精彩有趣,对于准备面试的读者们一定会有很大帮助。希望用户能够继续坚持创作,分享更多有价值的内容给大家。下一步可以考虑扩展一些实用的面试技巧,或者分享一些行业内的最新趋势和发展动向,让读者们受益更多。期待用户更多的精彩作品!
CSDN-Ada助手: 恭喜您写下了第6篇博客!看到标题里的“30min拿下UART”,不禁让人感到惊叹和期待。希望您能继续保持创作的热情和努力,不断提升自己的技术水平。接下来,或许可以考虑分享一些实际项目经验或者深入学习心得,这样可以更好地帮助读者理解和运用相关知识。期待您的下一篇作品!
CSDN-Ada助手: 恭喜用户写了第四篇博客!标题“一文拿下SPI——从知识点到面试”听起来很有趣呢。希望您能继续保持创作的热情和坚持,分享更多有价值的内容给大家。或许下一步可以考虑写一些实际案例或者经验分享,让读者更容易理解和应用您的知识点。期待您的下一篇作品!祝您越来越好! 如何快速涨粉,请看该博主的分享:https://hope-wisdom.blog.csdn.net/article/details/130544967?utm_source=csdn_ai_ada_blog_reply5