建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

老李子。

发帖: 4粉丝: 0

级别 : 新手上路

发消息 + 关注

发表于2020年08月23日 23:10:57 544 7
直达本楼层的链接
楼主
显示全部楼层
[干货分享] Huawei_LiteOS_Kernel在IAR7.7上的移植方法

经过半个多月的学习,终于让LITE OS和STM32F411跑起来了。

我的移植方法和别人不一样,都可能有点另类,但是成功的方法,至少我自己在IAR7.7测试通过了。

一,先去下载OS源文件,

网址:https://gitee.com/mirrors/HarmonyOS/tree/master/src/LiteOS

打开后就有信息描述:华为鸿蒙系统(HarmonyOS)是基于微内核的全场景分布式OS,可按需扩展,实现更广泛的系统安全,主要用于物联网,特点是低时延,甚至可到毫秒级乃至亚毫秒级,由华为技术有限公司开发。

这里面俩个文件,Huawei_LiteOSHuawei_LiteOS_Kernel,我是使用的Huawei_LiteOS_Kernel


二,再去下载IAR Embedded Workbench 7.7,这个在网下载并装安装好,

这个不多说了,网上信息也比较多,一般都能搞得定的,搞不定这个IAR的下载和安装可以留言联络我!


三,用IAR对OS进行编译

打开IAR,点File---->open---->workspace,然后直接找到\LiteOS\Huawei_LiteOS_Kernel\Projects\EWARM\cortex-m4\stm32f411目录下的例子,最后点Project---->Rebuild ALL进行编译,会发现编译成功的,如下:

Total number of errors: 0

Total number of warnings: 0


四, 找一块STM32F411开发板, 在线仿真测试、调试OS内核

我在*宝上收了一块开发板,是微雪电子的XNUCLEO-F411RE开发板,我有6年硬件工程师工作经验,一眼看过去,从用料和PCB工艺分析,就知道这个板子还可以,等拿到手后细看了一下,这个PCB板的贴片加工厂不行,跟本没把这个板做完美,还好不影响正常使用。

电脑USB接上开发板后,IAR利用ST-Link进行在线仿真,还是非常顺利的,指针光标停在了int main(void)处

image.png

其实走到现在,你就可以进内核测试了,这里提供一些测试代码地方:

第1个地方:\LiteOS\Huawei_LiteOS\demos\kernel\api所有的*.c,这是官方的例程模块,慢慢测试吧,结合在线仿真和OS的使用手册,去分析和理解这个OS原理,这是最有效的。

第2个地方:https://bbs.huaweicloud.com/forum/thread-67584-1-1.html    拯救小白专题,不要使用这个网址提供的lite OS,只参考和学习每个例子的User-->main.c就好了,

这些小小的测试例子,经过我全程测试后,发现全部都可以在我们现有的IAR工程中PASS通过,OS功能 和内核调度全是OK的。

第3个地方:没有了,如果有的话,也可以在网上查找例子,随便移过来在线测试吧,看执行流程呀,看变量值呀,看寄存器呀,看看看不完的信息


五, 用官方的固件库,在F411开发板实现裸机功能

因为芯片是STM32F411,找了好久都没有找到F411专用的固件库,都是用的STM32CubeF4 工具自动生成的代码,说老实话,我一点都不喜欢这样写代码,

就像不喜欢用LiteOS Studio IDE一样,我要用IAR,因为IAR效率高,编译快!操作MCU也是一样的,要效率高就直接操作寄存器,反正标准

固件库,从源码来看基本上是直接操作寄存器的,HAL为了通用和简单包装层太厚了,真心不喜欢,难阅读源码也没效率!


给出我用的固件库网址:https://github.com/UESTC404/Quadcopter     一个基于stm32f411re以及ST标准库的四轴飞行器实现,人家已经植 好F411的信息了,直接使用

有一个要注意的地方就是,启动文件是不能在IAR直接运行的,因为是裸机测试,所以你要在其他固件库里面,找到IAR的启动文件,

刚好手上有其他版本的固件库,找到了Stm32_Driver\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar,  取出里面的startup_stm32f40_41xxx.s放在我们工程就可以了,


这样可以了建个裸机工程,进行测试了。首先关掉我们之前的OS工程,用IAR建一个裸机工程用的芯片为STM32F411RET6,使用四轴飞行器里面的固件和startup_stm32f40_41xxx.s启动文件。这个不会的话,自己在网上查找教程吧,太基础了很简单的,下面给我的裸机测试代码,当然是取反一个LED灯了。

  /* 开发板上的C5,C8,C9外接了个LED ,我测试RC5*/
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);//启用RC口外设时钟  
  GPIO_InitTypeDef GPIO_Init_Cx;//定义结构体,
  GPIO_Init_Cx.GPIO_Mode = GPIO_Mode_OUT;           //结构体参数:输出模式
  GPIO_Init_Cx.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9;    //PIN
  GPIO_Init_Cx.GPIO_PuPd = GPIO_PuPd_NOPULL;        //没有上拉
  GPIO_Init_Cx.GPIO_Speed = GPIO_Speed_25MHz;       //速度
  GPIO_Init_Cx.GPIO_OType = GPIO_OType_PP;          //推挽
  GPIO_Init(GPIOC,&GPIO_Init_Cx);//载入参数到硬件

  GPIO_WriteBit(GPIOC,GPIO_Pin_5,Bit_RESET);//C测试灯了!  
  GPIO_WriteBit(GPIOC,GPIO_Pin_5,Bit_SET);

进行在线仿真时,就可以看到RC5一亮一灭了,

想要全速运行时,看见RC5灯闪动的话,改成这样就可以了,哈哈

  /* Infinite loop */
  long aaa=6000000;//计数器
  while (1)
  {
    GPIO_ToggleBits(GPIOC,GPIO_Pin_5);
    while(aaa--);//无聊的计数器
    aaa=6000000;
  }

恭喜你,裸机工程测试成功了!!


五, 固件库的裸机程序和华为LITE OS完美结合,接近尾声了,也太晚了,上几张图吧,不打字了

图11.jpg


图22.jpg


图33.jpg

希望大家,都能实现在IAR平台LITE OS的移植,有问题可以留言,共同分析问题,共同进步!

加油!!!

举报
分享

分享文章到朋友圈

分享文章到微博

Da Vinci

发帖: 111粉丝: 10

级别 : 外部版主

发消息 + 关注

发表于2020年08月23日 23:20:36
直达本楼层的链接
沙发
显示全部楼层

不错的分享!

点赞 评论 引用 举报

Da Vinci

发帖: 111粉丝: 10

级别 : 外部版主

发消息 + 关注

发表于2020年08月23日 23:22:10
直达本楼层的链接
板凳
显示全部楼层

有一点,我也没看懂的是   Huawei LiteOS不是物联网操作系统   吗?

怎么是鸿蒙,让我有点好奇!

评论
老李子。 2020-8-24 08:22 评论

华为鸿蒙系统(HarmonyOS)是在2019年8月,招开发布会公布出来的,还有一些基于这个OS的产品!!应该很多人都知道呀,和各种版本的LITE OS,我也分不清,好乱,lite OS可能在2018年之前都存在了吧???但是我只认HarmonyOS,哈哈!!

... 查看全部
点赞 评论 引用 举报

极客潇

发帖: 357粉丝: 25

级别 : 实习版主

发消息 + 关注

发表于2020年08月24日 10:47:33
直达本楼层的链接
地板
显示全部楼层

感谢分享

点赞 评论 引用 举报

樊心昊

发帖: 172粉丝: 45

级别 : 高级会员

发消息 + 关注

发表于2020年08月24日 22:00:22
直达本楼层的链接
5#
显示全部楼层

不错哟,感谢分享!

点赞 评论 引用 举报

W--wangzhiqiang

发帖: 74粉丝: 4

级别 : 外部版主

发消息 + 关注

发表于2020年08月25日 09:51:51
直达本楼层的链接
6#
显示全部楼层

点赞

点赞 评论 引用 举报

andyleung

发帖: 764粉丝: 57

级别 : 外部版主

发消息 + 关注

发表于2020年08月25日 11:02:21
直达本楼层的链接
7#
显示全部楼层

谢谢分享

点赞 评论 引用 举报

andyleung

发帖: 764粉丝: 57

级别 : 外部版主

发消息 + 关注

发表于2020年08月25日 11:02:54
直达本楼层的链接
8#
显示全部楼层

谢谢分享

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册