移植华为LiteOS

利用华为LiteOS 创建两个任务。任务A 使用PA7引脚点亮LED,每500毫秒交替闪烁。任务B 使用PA8引脚点亮LED,每1000毫秒交替闪烁。

1、STM32CubeMX 创建裸机工程

关于如何使用STM32CubeMX创建,参考博客https://blog.csdn.net/daniaoxp/article/details/117533369,但略作修改,修改如下。

①原来是将PA5设置成输出模式,现在修改成PA7和PA8为输出模式。

image-20220706145009309

修改完成后,同时也可以修改标签为LED1和LED2。

image-20220706145320350

②按照下图操作,去掉这两个中断设置,这是因为华为OS系统本身使用了两个中断,如果在裸机中在设置这两个中断就会报错,因此需要去掉。

image-20220706145453824

设置完成后,编译keil工程,0错误0警告。

image-20220706150034678

2、系统移植

根据链接下载系统文件。

链接:https://pan.baidu.com/s/1R6IR5GC0ks-CWkNuEHhkSA?pwd=d1js 提取码:d1js
可以将解压出来的两个文件夹放在下图位置,供参考。

image-20220706151437687

根据下图添加这两个模块,接下去需要在这两个模块下添加文件。

image-20220706151223003

在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路径下。

添加完成后如下图。

image-20220706151900252

接下去需要在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 文件

添加完成后如下图。

image-20220706152256889

两个模块完成后添加如下5个路径。

image-20220706152901805

编译keil工程,0错误0警告。到此为止系统移植成功,

image-20220706152953804

3、实验验证

按照工程中添加子模块的方式添加LED闪烁的文件。

image-20220706153230564

因为这部分简单,快速过一下。下图是添加子模块方式。

image-20220706153321694

添加路径。

image-20220706153404653

打开main函数,添加以下两段代码,可观察试验效果。

image-20220706153502516

image-20220706153535485

注:关于LED代码部分不做讲解,先体验下移植成功后的喜悦感!!

用到的代码及最后的工程。

链接:https://pan.baidu.com/s/1RBvnFZXUDfR4dWiQk2P20g?pwd=vrwz
提取码:vrwz

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值