STM32L476移植华为LiteOS系列教程---更换芯片后应该修改的地方 7
摘要:假如你需要移植LiteOS_Lab到STM32F103xx或者其他系列的例如M0、M3等上,本篇帖子就是为你写的。
首先,我贴一幅图,转自百度百科:https://baike.baidu.com/item/Cortex-M/1363782?fr=aladdin
这张图片向大家分别展示M0、M3、M4分别对应的架构版本。
这里简单的说一个小知识:STM32和ST公司和ARM公司合作的,ARM公司设计好相应的核提供给ST公司,ST公司再去设计各种外设(ADC、Flash)等等,上图中的V6M、V7M在这些就是ARM公司设计的。
一、SDK配置
现在转回正题,我们打开IoT Studio为自己的特定芯片开发移植LiteOS_Lab时,要进行的一个操作就是SDK配置,选择我们用到的组件,不知道大家是否注意到,有着这样一个选项:
这个选项就是用于配置我们的芯片的架构,按照上图中的来配置即可,armv6-m这里没有显示,但是ubuntu下可以手动填写,大家等后面新版本的IoT Studio出来以后,就可以看到该选项了,这里我给大家贴个Ubuntu上的配置图片,如果大家需要我出一份关于搭建Ubuntu的LiteOS开发环境请留言。
这就是Kconfig的功劳,上期说过,配置并保存之后会生成一个.config文件,用于让Makefile引用其中的配置项,用于控制编译,下图是.config的部分内容:
看到了吧,这里定义了一个CONFIG_ARCH_CPU_TYPE := "armv7-m",
我想你和我一样一定也想知道是哪个Makefile引用了该配置,请你打开这个路径:iot_link/os/liteos/liteos_imp.mk,你可以看到如下图
相信你一定能看出来,这三个不同的路径对应了三种架构的芯片的汇编起始文件和一些列芯片相关的文件
二.makefile配置
首先,我们来看下GCC/Makefile
同样的,我们也需要将这里的CPU、FPU等一些列信息修改为芯片的相应信息。
再来看下project.mk
我们需要将这些引用Hal库的路径也修改为芯片对应的路径。
三、其他地方
例如你的main.c文件或者其他包含了stm32L4xxxx.h的文件也应该进行相应修改,你也可以直接编译,根据错误信息去修改。
PS:这是是我目前发现的问题,大家在将LiteOS_Lab移植到自己的芯片上时,可以选择相近芯片的Demo来入手,这样可以避免发生过多的问题,例如我用的是STM32L476我就选择小熊派的STM32L431这样就方便很多了。
- 点赞
- 收藏
- 关注作者
评论(0)