华为Liteos和物联网设备侧sdk移植到stm32F03ZE霸道板子上

啥是LIteos

“开源免费”的实时操作系统,集成了 LwM2M、CoAP、mbed TLS、LwIP 全套 IoT 互联协议栈,且在 LwM2M 的基础上,提供了 AgentTiny 模块,用户只需关注自身的应用,而不必关注 LwM2M 实现细节,直接使用 AgentTiny 封装的接口即可简单快速实现与云平台安全可靠的连接。属于国产的实时操作系统(RTOS)

基于标准库移植

往裸机工程添加 LiteOS 源码

打开 LiteOS 源码文件,可以看见里面有 8 个文件夹,下面先来了解一下主要的文件夹及其子文件夹的作用,然后将 LiteOS 源码的核心文件提取出来,添加到工程根目录下的文件夹中,因为工程只需要有用的源码文件,而不是整个 LiteOS 源码,

添加LiteOS 系统的一些配置文件,含原厂芯片驱动

将 OS_CONFIG 文件夹下面的一些配置文件拷贝到刚刚提取的 LiteOS 核心文件夹下面,等下在移植工程的时候大家是需要对这个文件夹下的某些文件进行修改,以适配不同的工程配置,并且可以通过修改这个文件夹下的内核配置头文件来裁剪 LiteOS 的功能。

添加 CMSIS的库,可以打开工程在mdk里面添加,也可以新建\Libraries\CMSIS\include,include文件夹从 keil 安装目录下C:\Keil_v5\ARM\Pack\ARM\CMSIS\5.3.0\CMSIS\Include,将其包含进来可以避免其它电脑 在移植过程中没有相关头文件而引起的编译错误

打开工程,添加 LiteOS 核心源码到工程组文件夹

需 要 在 开 发 环 境 里 面 新 建 LiteOS/cmsis 、 LiteOS/kernel 、 LiteOS/arch 和LiteOS/config 四个文件分组,其中 LiteOS/cmsis 用于存放 LiteOS 文件夹下 cmsis 文件夹的内容,LiteOS/kernel 用于存放 LiteOS 文件夹下 kernel 文件夹的内容,LiteOS/arch 用于存放LiteOS 文件夹下 arch 文件夹的内容。而 LiteOS/config 用于存放 LiteOS 文件夹下的OS_CONFIG 文件夹的内容。

指定 LiteOS 头文件的路径

修改liteos/config文件下的target_config.h,修改自己板子对应的头文件

修改LOSCFG_PLATFORM_HWI,如果是YES代表接管中断,否则不被接管

非接管中断版本的 target_config.h 文件就需要在 LiteOS 提供的 demo 中移植过来 , 比 如 : LiteOS\targets\STM32F103RB_NUCLEO\OS_CONFIG,启动文件不变,保留stm32f10_it.c但需要注释 void PendSV_Handler(void)与 SysTick_Handler(void)这两个函数

接管中断版本的target_config.h文件就需要从 LiteOS 官方写的工程文件夹下面拷贝过来的,路径为\LiteOS\targets\ STM32F429IGTx_FIRE\OS_CONFIG

启动文件内容修改(接管中断,非接管不用管)

因为 LiteOS 接管中断版本的中断向量表是由系统管理的,所以裸机的启动文件是要不得的,必须替换掉,

分散加载文件修改(接管中断方式,非接管不用管)

在 LiteOS 中,中断向量表被放在运行内存里,避免影响分配内存,那么就需要将代码分散加载到不同的区域中,华为官方提供的分散加载文件就在每个具体的工程文件目录下,如 : LiteOS \targets\ STM32F429IGTx_FIRE\MDK-ARM 文 件 夹 下 的 STM32F429IGTx-LiteOS.sct 文件。首先将它拷贝到我们自己的工程中去,并且将其名字修改为“Fire-F103-LiteOS.sct”,放在工程的 user 文件夹中,然后在工程中把 “Fire-F103-LiteOS.sct”文件到工程配置中

修改中断相关文件(非接管中断,接管中断不用管)

由于 LiteOS 已经处理好 PendSV 与 SysTick 中断了,就不需要用户自己处理,所以要在中断相关的源文件(stm32fxxx_it.c)中注释(删除)掉 void PendSV_Handler(void)与 SysTick_Handler(void)这两个函数。

更新core_m3.h版本到4.3,复制粘住就可以了

打开keil安装目录,把版本新的cmsis的include替换工程下的cmsis的include,防止你的工程的cmsis的include版本低于4,同时

修改工程配置

在 LiteOS 中,需要 C99 标准的支持,并且忽略相关的警告,选择“target”→ “C/C++”,在“Misc Controls”选项中输入--diag_suppress=1,47,177,186,223,1295,意思是忽略这些编号的警号,

经初步完成工程的移植了,LiteOS 的接管中断比非接管中断方式要麻烦很多,所以推荐在 cortex-m 系列处理器中采用非接管中断方式移植工程,

在main文件添加led任务

#include "sys.h"

#include "delay.h"

#include "usart.h"

#include "led.h"

#include "stm32f10x.h"

#include "los_sys.h"

#include "los_task.ph"

UINT32 LED_Task_Handle;

static UINT32 AppTaskCreate(void);

static UINT32 Creat_LED_Task(void);

static void LED_Task(void)

int main(void)

{

UINT32 uwRet = LOS_OK;

delay_init();

LED_Init();

/* LiteOS Äں˳õʼ»¯ */

uwRet = LOS_KernelInit();

if (uwRet != LOS_OK)

{

printf("LiteOS ºËÐijõʼ»¯Ê§°Ü£¡Ê§°Ü´úÂë0x%X\n",uwRet);

return LOS_NOK;

}

uwRet = AppTaskCreate();

if (uwRet != LOS_OK)

{

printf("AppTaskCreate´´½¨ÈÎÎñʧ°Ü£¡Ê§°Ü´úÂë0x%X\n",uwRet);

return LOS_NOK;

}

LOS_Start();

while(1);

}

//其余见下载附件

运行测试Liteos是否移植成功

工程见网盘:

非接管中断:

链接:https://pan.baidu.com/s/1UQ2L6nZfoqFaa3DL2l20TA

提取码:ikrv

复制这段内容后打开百度网盘手机App,操作更方便哦

接管中断:

链接:https://pan.baidu.com/s/1UbFJy7wRztPnQWQhLrjavg

提取码:95pf

复制这段内容后打开百度网盘手机App,操作更方便哦

arm armcm33 pack包_华为Liteos移植到stm32F03ZE相关推荐

  1. win ce车载系统刷机包_华为EMUI系统手机密码忘记了怎么办,

    手机早就成为了人名日常生活中的不可或缺的一部分.有时候有些粗心大意,脑瓜子不够用,容易忘事的朋友,往往前一天晚上刚设置的密码,到第二天早上想要用手机的时候突然忘了手机密码 手机早就成为了人名日常生活中 ...

  2. 华为麦芒5云空间升级_华为麦芒5原版系统rom刷机包_华为麦芒5最新升级包更新下载...

    下面也是咱们的这个华为麦芒5手机的刷机操作了,这个刷机也是大家经常要用到的,因为这个固件包也是原版的rom包了,因为大家的手机在进行系统升级的时候会用到的,有的机友不知道如何给手机升级,而有的机友在找 ...

  3. arm mali 天梯图_华为麒麟980处理器天梯图性能排行榜

    在8月31日晚间消息,华为在德国正式发布了全新的移动平台---麒麟980.这款处理器是目前麒麟平台规格最高的一款旗舰Soc,拥有非常强悍的性能,更好的功耗控制和更强的相机模组支持,还有更好的AI性能. ...

  4. 华为nova3e能升级鸿蒙系统吗,华为nova 3e原版固件系统刷机包_华为nova3e最新升级包更新...

    这个华为nova 3e手机的固件包也是更新了多个版本的,不知道有没有机友在找的,因为在这里说的固件包也是大家常用的官方的完整版的系统rom升级包了,这个也是很实用的,这个固件包也是可以采用强刷的方式刷 ...

  5. 基于STM32F103移植华为LiteOS物联网系统

    基于STM32F103移植华为LiteOS物联网系统 本实验是通过学习野火的<物联网操作系统 LiteOS开发实战指南>参考学习的. 1.移植前的准备 LiteOS 的源码可从 LiteO ...

  6. 操作系统实验读者写者程序源码_SAST Weekly | STM32F103系列开发板移植华为LiteOS操作系统...

    SAST weekly 是由电子工程系学生科协推出的科技系列推送,内容涵盖信息领域技术科普.研究前沿热点介绍.科技新闻跟进探索等多个方面,帮助同学们增长姿势,开拓眼界,每周更新,欢迎关注!欢迎愿意分享 ...

  7. 移植华为LiteOS

    利用华为LiteOS 创建两个任务.任务A 使用PA7引脚点亮LED,每500毫秒交替闪烁.任务B 使用PA8引脚点亮LED,每1000毫秒交替闪烁. 1.STM32CubeMX 创建裸机工程 关于如 ...

  8. 将目录专为源码html,LiteOS移植笔记

    操作系统是用来管理系统硬件.软件及数据资源,控制程序运行,并为其它应用软件提供支持的一种系统软件.根据不同的种类,又可分为实时操作系统.桌面操作系统.服务器操作系统等.对于一些小型的应用,对系统实时性 ...

  9. 【LiteOS】LiteOS移植教程(STM32F103C8+MDK)

    总览 本文基于STM32F103C8T6,详细讲述华为LiteOS的移植过程.开发工具是MDK5.LiteOS官方已经适配过cortex M系列内核的单片机,因此移植过程非常简单.     LiteO ...

最新文章

  1. c++ Lambda
  2. vue.js中请求数据v-for循环使用数据
  3. 矿大计算机专硕和学硕,本硕矿大,考研期间我收获了什么?
  4. Android 源码解析之AsyncTask
  5. python 可变参数 关键字参数_Python之 可变参数和关键字参数
  6. SQL Server中删除重复数据的2个方法
  7. A1078. 逆序对个数
  8. 前端 datatable 居中_Midway Serverless 如何让阿里前端提效 50%?
  9. ArnetMiner – A Review
  10. SQL数据库不用SQL语句能显示全表的内容_详解mysql数据库sql优化技巧总结
  11. java文件操作_Java文件操作大全
  12. Node.js之图片上传
  13. jmeter获取毫秒时间戳
  14. iOS中控制器的实践和学习(3)-简易5图之A2
  15. 把一个web项目改名后复制,再把改名后的web项目发布到tomcat,访问出现404错误的解决办法
  16. android pickerview 多行,Android PickerView实现三级联动效果
  17. C++——二维vector初始化
  18. 【笔记】逻辑门图解—与门、或门、非门、与非门、或非门、异或门、同或门
  19. ANSYS入门例程笔记
  20. 跟读 播放器 android,安卓手机英语学习利器 android 英语复读 跟读 练听力 练口语...

热门文章

  1. 计算机操作系统的教学目标,《操作系统》课程教学大纲.doc.doc
  2. 安德普泰靠什么跻身“毕马威新国货50”榜单?
  3. 微信小程序添加搜索功能
  4. 《Python自然语言处理-雅兰·萨纳卡(Jalaj Thanaki)》学习笔记:12 安装指导
  5. 你的计算机usb管理策略,Win2008 R2管理二:组策略之控管USB
  6. 大枣补血又补气 四类人吃了帮倒忙
  7. 大数据与我们的生活怎样息息相关!
  8. 06、Vue-Header组件(商家信息)《饿了吗》
  9. 安信可lora模块测试 程序
  10. 把腾讯搬上云:云服务器 CVM 的半部进化史