HuaweiLiteOs移植到STM32
移植前期的准备工作
MDK5软件的和HuaweiLiteOs源码的下载
由于我移植使用的是MDK5,所以本文的一些对于HuaweiLiteOs源码(以下简称内核源码)的兼容性修改也是基于MDK5,所以看这篇博客的前提是你已经下载了MDK5.
HuaweiLiteOs源码在Github上面也是开源的,下面附着地址:
HuaweiLiteOs源码地址
串口驱动和烧写软件的下载
由于本篇博客的内容最终是要将编译生成的16进制文件烧写到STM32的板子上,所以需要串口驱动和烧写软件。
串口驱动下载ch340即可。
烧写软件我用的是FlyMcu。
移植过程中开展的工作
- 在MDK5新建一个项目Huawei_LiteOS,如下图所示:
去Arm官网下载相关STM32库文件,同时建立6个如上图的分组,STARTCODE中存放的是创建关于STM32系列芯片的Project自带的.s文件,文件名是startup_stm32f10x_hd.s,这个代表的是大容量(512KB)启动文件;USER中存放的是main.c 和用户自己编写的c文件和一些工程文件;FWlib中存放的是STM32库里面的inc和src两个文件,这两个文件包括了芯片上所有的驱动;CMSIS(Cortex Microcontroller Software Interface Standard)用来存放库为我们自带的启动文件和一些M3系列通用文件;在MDK中添加依组添加库文件,如下图:
存放内核文件的分组是HuaweiLiteOS_kernel和HuaweiLiteOS_platform,下载源码后,找到相应的文件夹添加即可,如下图:
- 文件添加完毕后,由于源代码是在IAR上编译,故直接运行代码,必定报错,所以需要修改相应的代码,上述链接完成修改了大部分BUG,以下列举剩余我所遇到的BUG,及如何修复。
2.1..\Huawei_LiteOS\platform\cpu\arm\cortex-m4\los_hw.c(99):error:#18:expected a ")"
类似上述错误。
解决方法:
los_hw.c 90行处函数修改如下:
2.2 Error:Symbol main multiply defined (by main.o and los_config)<