【华为云技术分享】STM32L476移植华为LiteOS系列教程------背景知识 1
2023-02-18 16:31:59 时间
一、这篇文章想向大家说明一个问题,我们开发单片机的本质是什么?
在最早的开发中,我们没有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程序!
相关文章
- PreSTU:一个专门为场景文本理解而设计的简单预训练模型
- 聚焦技术,锐意创新,GaussDB给世界一个更优选择
- openGemini v0.2.0版本正式发布:5大特性全面增强
- 下一代架构?从组装式企业到组装式应用
- 浅析静态应用安全测试
- 保护客户代码和应用安全,CodeArts有7招
- ROMA集成关键技术:增量数据集成
- 多线程安全问题原理和4种解决办法
- 详解视频中动作识别模型与代码实践
- 全球银行最大分布式核心系统全面上线,邮储银行做到了!
- 昇腾携手OpenMMLab,支持海量算法仓库的昇腾AI推理部署
- Karmada多云多集群生产实践专场圆满落幕
- 性能达1.5+倍!昇腾AI助力分子动力学模拟研究
- GaussDB(DWS)运维 :遇到truncate执行慢,怎么办?
- 云图说丨什么是应用身份管理服务OneAccess
- 什么是CodeArts?
- CartoonGAN论文复现:如何将图像动漫化
- 纷繁复杂见真章,华为云产品需求管理利器CodeArts Req解读
- 面对庞大复杂的身份和权限管理,企业该怎么办?
- 城市云灾备,为业务连续性保驾护航