华为云技术分享STM32L476移植华为LiteOS系列教程背景知识-1

112次阅读

共计 1276 个字符,预计需要花费 4 分钟才能阅读完成。

一、这篇文章想向大家说明一个问题,我们开发单片机的本质是什么?

在最早的开发中,我们没有 Keil、IAR 等等一系列好用的单片机集成开发环境,注意这里的“集成”,是指将多个软件其中有

①编辑器:记事本、NotePad++、vim(Linux 中的) 这些都是编辑器,可以给我提供关键词高亮、代码补全等等操作。

②编译器:gcc 工具链,我们用的是 arm-none-eabi-gcc 工具链,注意这里有个“链”,链子???将一系列的工具串在了一块,可以分别使用也可以单独 使用,我们在 Linux 下输入了 gcc -o hello hello.c,就生成了一个 hello 可执行文件./hello 就打印一句 hello world!给我们,或者这样说,我们在 Keil 中编写好了一个输出 hello world!的程序,点下“编译”再点下“下载”,单片机的串口就会输出 hello world!。

但是大家有没有思考过进行了这么一步,编译器到底做了什么?

相信大家已经知道了最终给机器运行的是 0 和 1 组成的二进制文件,但是我们 C 语言是如何转变为二进制文件的呢?

其中一个 hello.c 文件经历了“预处理”、“编译”、“汇编”、“链接”、生成 hex/bin 等可执行文件,其中每一步都是一个不同的软件来操作的。

这些软件都被集成在了工具链之中,这里就不继续说下去了,如果大家感兴趣,可以给我留言,后面给大家详细科普。

③下载器:下载器是我们的 ST-Link/JLink 仿真器的驱动程序,通过这个下载器将程序烧写到我们的单片机中。

相信用过 Keil 的同学一定遇到过“找不到头文件这种错误吧”,在下图中红框的位置添加上该头文件的所在路径即可找到

我们在最早的单片机开发中没有怎么好用的开发环境时,都是通过一个叫 Makefile 的文件和 make 软件来帮助我们简化上面的各种操作,这是最本质的操作,我们现在使用的 IoTStudio 软件也是通过 Makefile 来进行控制编译。

二、开发环境的对比

1.Keil/IAR

相信各位单片机开发爱好者大都使用 Keil/IAR 这类开发软件,这类软件特别好用,因为他集成管理编译工具链、管理编译方式、提供代码补全、提供 ST-Link/JLink 仿真集成等,我们在使用时,只需要关心代码的逻辑问题,完全可以忽略其他的问题。

我们的开发步骤:

使用 STM32CubeMX 软件创建一个工程 -> 选择芯片型号 -> 配置时钟和各类需要用到的外设 (GPIO,串口,定时器,中断控制器等)-> 选择生成工程(IAR/Keil/Makefile)-> 直接使用 Keil/IAR 打开创建好的工程即可开始编程。

2.IoTStudio

IoTStudio 软件是使用 Makefile 来控制编译的,但是大家不用担心,Makefile 不需要我们自己写,只要能看懂,会修改即可。编译、下载等按钮华为的工程师小哥哥们已经帮我们做好啦,都是只要点一下就可以。

本期为大家介绍关于单片机开发的系列知识,下期我会直接带大家从 STM32CubeMX 创建一个工程开始,直到能运行 IoTStudio 中的 Demo 程序!

点击关注,第一时间了解华为云新鲜技术~

正文完
 0