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


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

    在最早的开发中,我们没有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程序!
     
     
  • 相关阅读:
    netty解决TCP的拆包和粘包的解决办法
    HTML图片热区map area的用法
    JWT应用
    React-router4简约教程
    axios中文文档
    如何区分Babel中的stage-0,stage-1,stage-2以及stage-3(一)
    python datetime offset-aware与offset-navie相互转换
    DJango跨域中间键
    Javacript实现倒计时
    CAN协议,系统结构和帧结构
  • 原文地址:https://www.cnblogs.com/huaweiyun/p/12963462.html
Copyright © 2020-2023  润新知