移植华为LiteOS
Posted haichuangdianzi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移植华为LiteOS相关的知识,希望对你有一定的参考价值。
利用华为LiteOS 创建两个任务。任务A 使用PA7引脚点亮LED,每500毫秒交替闪烁。任务B 使用PA8引脚点亮LED,每1000毫秒交替闪烁。
1、STM32CubeMX 创建裸机工程
关于如何使用STM32CubeMX创建,参考博客https://blog.csdn.net/daniaoxp/article/details/117533369,但略作修改,修改如下。
①原来是将PA5设置成输出模式,现在修改成PA7和PA8为输出模式。
修改完成后,同时也可以修改标签为LED1和LED2。
②按照下图操作,去掉这两个中断设置,这是因为华为OS系统本身使用了两个中断,如果在裸机中在设置这两个中断就会报错,因此需要去掉。
设置完成后,编译keil工程,0错误0警告。
2、系统移植
根据链接下载系统文件。
链接:https://pan.baidu.com/s/1R6IR5GC0ks-CWkNuEHhkSA?pwd=d1js 提取码:d1js
可以将解压出来的两个文件夹放在下图位置,供参考。
根据下图添加这两个模块,接下去需要在这两个模块下添加文件。
在arch 中需要添加los_dispatch_keil.S,los_hw.c,los_hw_tick.c和 los_hwi.c
,这 4 个文件。
其中los_dispatch_keil.S在Middlewares\\LiteOS\\arch\\arm\\arm-m\\cortex-m3\\keil路径下。其余三个文件在Middlewares\\LiteOS\\arch\\arm\\arm-m\\src路径下。
添加完成后如下图。
接下去需要在kernel中添加,首先将文件夹定位到Middlewares\\LiteOS\\kernel,接着在kernel 中添加
los_init.c
base/core
下面全部 .c 文件base/ipc
下面全部 .c 文件base/mem/bestfit_little
下面全部 .c 文件base/mem/common
下面全部 .c 文件base/mem/membox
下面全部 .c 文件base/misc
下面全部 .c 文件base/om
下面全部 .c 文件extended/tickless
下面全部 .c 文件
添加完成后如下图。
两个模块完成后添加如下5个路径。
编译keil工程,0错误0警告。到此为止系统移植成功,
3、实验验证
按照工程中添加子模块的方式添加LED闪烁的文件。
因为这部分简单,快速过一下。下图是添加子模块方式。
添加路径。
打开main函数,添加以下两段代码,可观察试验效果。
注:关于LED代码部分不做讲解,先体验下移植成功后的喜悦感!!
用到的代码及最后的工程。
链接:https://pan.baidu.com/s/1RBvnFZXUDfR4dWiQk2P20g?pwd=vrwz
提取码:vrwz
以上是关于移植华为LiteOS的主要内容,如果未能解决你的问题,请参考以下文章