LiteOS移植到STM32F7 - 非接管中断方式

一  使用KEIL与STM32CubeMX创建一个stm32f7工程

省略

二 官方下载LiteOS源码

下载地址:https://github.com/LiteOS/LiteOS

三 复制LiteOS必要文件

LiteOS源码包里有很多文件,将我们需要的几个目录复制下来,目录如下:

  • LiteOS\targets\STM32F103VET6_NB_GCC\OS_CONFIG
  • LiteOS\kernel
  • LiteOS\arch\arm\arm-m
  • LiteOS\osdepends\liteos\cmsis

 工程中添加LiteOS文件

在工程中新建LiteOS分组,添加代码,这些代码分别是:

  • LiteOS\osdepends\liteos\cmsis\2.0\cmsis_liteos2.c
  • \LiteOS\kernel\base\core 所有.c 文件
  • \LiteOS\kernel\base\ipc所有.c 文件
  • \LiteOS\kernel\base\mem\bestfit_little所有.c 文件
  • \LiteOS\kernel\base\mem\common所有.c 文件
  • \LiteOS\kernel\base\mem\membox所有.c 文件
  • \LiteOS\kernel\base\misc所有.c 文件
  • \LiteOS\kernel\base\om所有.c 文件
  • \LiteOS\kernel\extended\tickless所有.c 文件
  • \LiteOS\kernel\los_init.c
  • \LiteOS\arch\arm\arm-m\src所有.c 文件
  • LiteOS\arch\arm\arm-m\cortex-m7\keil\los_dispatch_keil.S

添加完代码后,如下图所示


五 配置头文件路径

我在复制代码下来后,对某些文件夹做了重命名等修改

六 修改stm32f7xx_it.c文件

注释如下两个中断:

  • PendSV_Handler
  • SysTick_Handler

移植完成,可以编译通过。

七 修改target_config.h文件

  • 将#include "stm32f1xx.h" 修改为 #include "stm32f7xx.h"
  • 需改BOARD_SRAM_START_ADDR宏的值为0x20020000
  • BOARD_SRAM_SIZE_KB取值需小于0x60000byte,依据如下图所示.

八 LiteOS工程最好勾选Use Micro LIB

九  可以创建一个启动任务来进行简单的测试了

新建一个文件文件添加如下代码,然后在工程适当的位置调用os_init()函数就可以啦

#include "los_base.h"
#include "los_task.h"

UINT32 Start_Task_Handle;//定义任务句柄

UINT32 start_task(VOID)
{
    while(1)
    {
        HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);
        LOS_TaskDelay(1000);
    }
}

void os_init(void)
{
    LOS_KernelInit();//LiteOS初始化
    
    TSK_INIT_PARAM_S task_init_param;
    task_init_param.pcName = "start_task";
    task_init_param.usTaskPrio = 3;
    task_init_param.pfnTaskEntry = (TSK_ENTRY_FUNC)start_task;
    task_init_param.uwStackSize = 128;
    
    LOS_TaskCreate(&Start_Task_Handle, &task_init_param);/* 创建任务 */
    LOS_Start();//开启任务调度
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值