在秉火STM32F429挑战者开发板上移植Huawei LiteOS指南
昨天在B站上突然看到了一个短视频,是在正点原子的战舰V3开发板上移植华为的Huawei LiteOS操作系统,就是这个视频:看完鸿蒙OS发布会,试用华为的物联网操作系统Lite OS(B站),于是呢,心血来潮,想在自己现有的开发板上移植Huawei LiteOS操作系统,在操作之前想要考清楚一些基本知识。 首先,什么是Huawei LiteOS,百度搜索Huawei LiteOS,可以搜到很多关于Huawei LiteOS的信息,并且还有官网,进入官网:华为Huawei LiteOS官网。稍微做一说明,Huawei LiteOS是一款针对物联网领域的轻量级操作系统,也就是说这是一种可以安装到单片机上的操作系统软件,并且是开源项目,用户可以从GitHub上获取该项目的源码:Huawei LiteOS源码,
除此之外,该项目支持ARM Cortex-M0、M3、M4、M7等芯片架构。这也就说明了在正点原子的战舰V3开发板上移植华为的Huawei LiteOS操作系统是可行的,战舰V3开发板是用的STM32F103ZET6,芯片内核架构是ARM Cortex-M3。
我手头上现有的板子是秉火的挑战者开发板,芯片是STM32F429IGT6,内核架构是ARM Cortex-M4,按说明是可以正常移植的。那么现在开始进行移植,参考资料:Huawei LiteOS移植指南,因为这个指南写的非常的详细,本帖子不会一步一步再重新写一篇,而是做一个总结型的归纳以及一些关键误区的提醒。
【第一步】做好相关的软件、驱动准备
准备的软件有:
(1)STM32CubeMX ST官方推出的图形化编程软件 下载链接:STM32CubeMX下载
(2)Keil uVision5 德国Keil公司开发的编译软件 下载链接:Keil uVision5下载
(3)串口驱动CH340 嵌入式开发必备驱动,网上有很多
(4)程序下载器驱动ST-Link或者J-Link等
(5)Git 用于克隆GitHub上边的源码 下载链接:Git forWindows
【第二步】构建裸机工程
下载好STM32CubeMX软件并安装好相应的库,然后就可以开始搭建相应的裸机工程。STM32CubeMX运行依赖Java1.7及以上的环境,所以如果主机上未安装Java1.7及以上环境的需要安装相应的环境。查看主机Java是否安装及查看Java版本号的DOS指令为:
java 查看是否安装java环境
java -version 查看java版本
需要注意的是:STM32CubeMX随着版本的更新,界面都有所改变,但是核心的东西是大体不变的。
最后的配置如图所示:
配置完成后点击生成源代码按钮:
最后生成的裸机工程如图所示:
【第三步】获取Huawei LiteOS源码
源码地址:Huawei LiteOS源码
教程里面要用到一个叫做Git的工具,这个工具可以从GitHub上Clone源码,如果不知道都是直接按如下图所示的步骤直接下载了。
我做了对比,按教程上下载方式和我们小白下载的方式下载文件还确实有点不太一样,对比如下:
LiteOS(Git下载) LiteOS-master(小白萌新直接下载)
其实发现,光从文件名上来看,其实差别并不是很大,但是时间关系,我没有用LiteOS-master这份源码文件做测试。
这一步中需要注意的是Git工具的使用,刚注册GitHub的账户是无法使用SSH下载的,需要填写秘钥。
(1)先下载Git这个软件:Git for Windows,并安装。
(2)然后在任意目录,右键选择Git Bash Here,它会打开一个黑框框,
(3)输入指令:ssh-keygen -t rsa -b 4096 -C "GitHub用户注册邮箱" 回车,需要正确填写我们注册的GitHub用户的注册邮箱,然后就会自动生成一对秘钥,一对是指两个,一个是公钥,一个是私钥。公钥用于开通GitHub的SSH服务。
输入这个指令之后会有三步是需要我们来填写和确认,如图所示:
这两个密钥都存放在C盘的的User目录下的Administrator下的.ssh里面。先去如该目录,指令为:
cd ~/.ssh
然后查看公钥和私钥的指令分别为:
cat id_rsa 查看私钥
cat id_rsa.pub 查看公钥
复制公钥指令为:
clip < id_rsa.pub
然后就可以在GitHub中开通SSH服务了。
下载源码指令为:
git clone -b develop git@github.comiteOS/LiteOS.git
等待下载完成即可
【第四步】Huawei LiteOS源码移植
这一步要细心,跟着教程一步一步来,需要注意的是我们下载的源码可能和教程的不太一样,我们用的OS_CONFIG文件是在LiteOS\targets\STM32F103VET6_NB_GCC这个目录下面,其它跟着教程该就可以了。
在秉火STM32F429挑战者开发板上移植Huawei LiteOS指南的更多相关文章
- zedboard开发板上移植opencv代码(立体匹配)
前言 公司要做立体匹配相关的项目,已有matlab和c++版本,可是不能做到实时显示立体信息,想要硬件实现实时,无奈本渣也是个硬件的新手,先按照实验室lyq同学的思路在zedboard开发板的纯ARM ...
- ZTE AD3812 3G模块在linux 2.6.34 内核的开发板上的支持方法
先说段废话,话说在linux 2.6.34 下,好多比较新的3G网卡及3G模块都没有很好的支持.如果想支持的这些3G网卡/3G模块呢,基本上有两种方式: 1.使用该3G模块的 linux 下的驱动,交 ...
- easycwmp在开发板上的配置
原创作品,转载请注明出处 copyright:weishusheng 2015.3.18 email:642613208@qq.com 平台: Linux version 2.6.32-279.e ...
- FS210开发板上Qt4.7.0移植过程
作者:冯老师,华清远见嵌入式学院讲师. 1. 搭建Qt开发环境平台 1.开发环境:ubuntu 12.04 2.交叉编译链:arm-cortex_a8-linux-gnueabi 3.开发板:FS21 ...
- 开发板上使用core文件调试
转载:http://www.nginx.cn/1521.html 如果开发板的操作系统也是linux,core调试方法依然适用.如果开发板上不支持gdb,可将开发板的环境(依赖库).可执行文件和cor ...
- [转载]在iTOP-4412开发板上调试helloworld应用
本文转自迅为论坛:http://www.topeetboard.com 1.安装ADB驱动 在开发板上调试 Android 应用,首先要安装 ADB 驱动. 通过“SDK Manager.exe”来安 ...
- DE1-SOC开发板上搭建NIOS II处理器运行UCOS II
DE1-SOC开发板上搭建NIOS II处理器运行UCOS II 今天在DE1-SOC的开发板上搭建NIOS II软核运行了UCOS II,整个开发过程比较繁琐,稍微有一步做的不对,就会导致整个过 ...
- 物联网操作系统HelloX已成功移植到MinnowBoard MAX开发板上
在HelloX开发团队的努力下,以及Winzent Tech公司(总部在瑞典斯德哥尔摩)的支持下,HelloX最新版本V1.78已成功移植到MinnowBoard MAX开发板上.相关源代码已经发布到 ...
- 运行在TQ2440开发板上以及X86平台上的linux内核编译
一.运行在TQ2440开发板上的linux内核编译 1.获取源码并解压 直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包. 解压(天嵌默认解压到/opt/E ...
随机推荐
- centOS服务器添加电脑ssh key以支持远程登陆
1,生成电脑的密钥对(在powershell或cmd命令行中) ssh-keygen -t rsa -C "自己的邮箱" 2.打开刚刚生成的电脑公钥(~即代表用户主目录,/则代表根 ...
- Feign整合Ribbon和Hystrix源码解析
在上篇文章Feign自动装配中,我们提到了Feign的自动装配的原理,以及Feign整合Ribbon和Hystrix的核心在类FeignClientFactoryBean中,那么本篇文章就来揭开这个类 ...
- 【tf.keras】tf.keras模型复现
keras 构建模型很简单,上手很方便,同时又是 tensorflow 的高级 API,所以学学也挺好. 模型复现在我们的实验中也挺重要的,跑出了一个模型,虽然我们可以将模型的 checkpoint ...
- 实例透彻分析CMS垃圾收集器执行过程
CMS收集器收集步骤: 在上一次[https://www.cnblogs.com/webor2006/p/11055468.html]中已经对CMS的垃圾收集器有了一定的理论上的了解,其中提到了CMS ...
- 201271050130-滕江南-《面向对象程序设计(java)》第十四周学习总结
201271050130-滕江南-<面向对象程序设计(java)>第十四周学习总结 项目 内容 这个作业属于哪个课程 <任课教师博客主页链接> https://www.cnbl ...
- Spring Boot 自定义Intercepter
在 SpringBoot2.X 中 ,WebMvcConfigurerAdapter 被deprecated , 更好的做法是 implements WebMvcConfigurer 一.自定义拦截器 ...
- arduino控制A9G发送短信
#include<SoftwareSerial.h> #define phonenum_call "18150561160" // 最好移动卡 联通卡支持度不是很好 S ...
- hasattr、getattr、setattr、delattr、反射
目录 hasattr getattr setattr delattr 反射的应用 __import__(了解) 思考: 在做程序开发中,我们常常会遇到这样的需求:需要执行对象里的某个方法,或需要调用对 ...
- vim跳到最后和最前
1.跳到尾部和首部 :0或:1跳到文件第一行 :$跳到文件最后一行
- 使用nexus搭建maven仓库(maven 本地私服)
我们在使用maven的时候,对于项目所依赖的jar包,maven默认会在中央仓库下载jar包,到本地的磁盘目录(如果没有配置则是用户目录下/.m2/repository文件夹下).如果公司内部搭了一个 ...