您好, 登录| 注册|
论坛导航
您好, 登录| 注册|
子站:
论坛首页    单片机MCU/嵌入式
  •  发帖
  • 收藏

【Rt-thread学习记】工具介绍及移植篇
阅读: 2230 |  回复: 19 楼层直达

2019/02/11 15:27:52
1
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长

QQ截图20160321155901 【有奖试用】英飞凌40W准谐振反激电源有奖试用招募

QQ截图20160321155901 【精选内容】管理员用心整理的有含金量的帖子 请速来围观


此篇开始讲如何将rtt移植到我们的目标开发板上,移植的过程实际是一个适配的过程,这个过程可以很简单,也可以很复杂,这里讲下这两者的区别,先说下最传统的os的移植:基本上拷贝核心C文件到你的工程内部,然后再指定的位置编写代码进行调整,然后编译工程进行仿真验证是否移植成,这种方式很原始,优点是节省内存开销,你要啥就打开啥,不要的全部都注释掉,或者是删掉,缺点也是很明显,移植过程很麻烦,相对繁琐,可以能要花费很长的时间反复调整,最终等你移植成功了,感觉太麻烦了,反而失去了进一步了解的兴趣。

所以这里我推荐官方给出的一种移植方法,不需要你直接操作底层C文件,也不需要你手动进行代码调整,就可以轻松的创建一个已经加入RTT的项目工程,所需要做的就是打开它,编译它,烧录它,至此整个移植的过程就结束了,移植的目的是让你能尽快的上手,尽快的开始玩耍这款操作系统,这样能保持持续学习的动力,等你把它撩的差不多了,反过来,你可以不依靠工具,进行手工改和移植,想怎么玩就怎么玩。这样做的代价就是内存开销,不论rom还是ram,既然是体验和学习阶段就先不要考虑成本因素了,先搞定它才是我们的目标。

实际在应用的时候,你只需要两个工具和rtt的源码库就ok了,所有这些都可以直接在RTT官网免费down。like下图:



标签 STM32 MCU C语言

电源网-璐璐在2019-02-18打赏该贴 +5 电源币 打赏理由:

2019/02/13 15:08:55
2
lingyan
电源币:1235 | 积分:36 主题帖:19 | 回复帖:1044
LV8
师长
等着学习
2019/02/16 13:26:13
3
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长

具体的如何安装GIT ENV工具就不介绍了,官网的文档介绍的很详细,这里还是谈一些理解,关于GIT ENV 和RTT源码,有了这三部分就可以量体定做自己需要的项目,举个不太恰当的例子来阐述下三者之间的关系,打个比方,今天是2019年2月16日,刚过完情人节,兜里毛爷爷有限,今天想去吃点好吃的,找了家不错的小店,进去看了一下菜谱,发现兜里钱连个宫保鸡丁都吃不起,没办法,还是决定去找事买肉菜调味料回家自己做,这里的肉菜调味料就是我们的RTT源码,接下来回到家,用刀把肉切好,然后刷干净锅碗瓢盆,准备开始烹饪时候发现家里的没有花生油,怎么办就要找个小商店去买咯,这里的锅碗瓢盆刀叉枪棒就是我们的ENV工具,小商店可以理解为GIT仓库,缺啥就去那里下载,准备好,就展现厨艺,一到丰盛的RTT工程盛宴或许很快就可以端上桌面了(比喻不太恰当)。

这里强调下此篇移植的重点,不谈如何挑肉买菜,也不讲怎么去小商店买油,而是把重点放在当你准备好肉菜,买好油回来以后怎么做出一道菜,这是此篇的核心,这里就是我们所说的ENV工具的使用,在继续深入介绍使用ENV之前,还是看下肉菜长什么模样,省的拿错了材料(rt-thread V3.0.4):



2019/02/16 14:18:04
4
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长

继续,在开始ENV之前,先找到适合你的板子的类型的bsp目录,RTT给你准备了很多BSP类型:

在这里针对我的MCU平台,我选择stmf10x-HAL,于是乎找到她,点击进入,然后空白处右键鼠标,准备ENV:

ComEmu Here  ~!!!

2019/02/16 15:16:34
5
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长

基于3.0.4存在一些问题,改用master版本,进行ENV学习(说实话,RTT相对还是年轻,有许多不足需要完善,但是这不耽误我们的学习和使用):

先看下3.0.4存在的问题(目前无法解决,):


2019/02/17 20:25:52
6
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长

在介绍命令之前,先简单熟悉下env的操作,这个非图形化的软件,看着还是比较高端大气上档次,命令式的操作对于第二次接触这种类型,感觉有些怀念,想起了小上学时候用的dos命令,很快便爱上了这种方式,linux从未离去,想要玩的高端还是要学习,接下里看下env一个很重要的设置,帮助筒子们快速进行裁剪。

当你打开env时,它是在你目前打开的根目录,like this:

在工具界面打开:

如何进入响应的BSP目录,如何使用cd命令,对于第一次接触env的筒子们要不小的难度:

like this:

这时候可以设置一下ENV工具,然后单击右键就可以在相应的目录下进行裁剪编译工程了,不需要繁琐的cd(当然如果你能爱上这种方式,或许会诞生另一个大神):

2019/02/17 20:34:26
7
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长

接下来介绍一下:如何设置ENV,通过右击菜单进入相应目录进行操作:

one step:

two step:

==》Register   ==》Save setting,到这里软件的设置就结束了,剩下来讲一下如何使用,这里分两步,多余的命令一概不讲:

想要了解可以参考文档:

接下来先看一下这个编译功能该怎么用:

2019/02/17 20:43:36
8
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长

编译的第一个命令:scons

找到对应MCU系列的bsp,右击ENV here:

这时候默认你看到的目录like this:

因为我们电脑装了MDK,所以你能看到目标工程的图标,一个是MDK4 一个是MDK5:说明目前存在一个工程模板:这时候你可以点击MDK打开,并进行编译工程,还可以直接输入scons命令:

like this:不需要打开MDK 编译工程:

请直接忽略 warning: 

done building targets. 完成工程编译。


2019/02/17 20:51:16
9
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长
接下来我们试一下创建工程的命令,先把已经存在的工程删除:

这时候输入命令:scons --target=mdk5

点击回车,gogogo:

输出:done building targets. 再次打开根目录,这时:


2019/02/17 20:52:32
10
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长
先到这里,先哄娃睡觉,筒子们晚安,希望明天继续,生命不息,like不止。。。
2019/02/19 17:08:02
11
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长

继续学习,接下来看一下ENV 图形化的功能,这里才是重点,是否还记得用u盘装系统时候,进的PE, 打开ENV,输入:menuconfig

神奇开始

1111


2019/02/19 17:12:58
12
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长

这里展开看下讲一下每一项:

                            1》Rt-Thread Kernel:这一项是rtt  os内核的相关参数配置,主要是应用一个标准os需要根据硬件资源和自己的需求进行相应的配置。通用os 的内核在这里

                            

2019/02/19 17:17:51
13
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长

2》Rt-thread components:组件层:你需要使用哪种组件在这里面可以选,也可以配置,例如comand shell组件,这里进行使能或者关闭。

2019/02/19 17:34:11
14
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长

3》RT-thread online packages :RTT软件包:基于应用层软件封装,以包的形式进行管理,因为rtt是一个面向物联网的os,所以这里着重看一下 iot底下都有些什么好玩的东东:

2019/02/25 15:00:23
15
sabrina9988
电源币:34 | 积分:0 主题帖:122 | 回复帖:298
LV7
旅长
 学习一下
2019/02/27 08:39:56
16
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长
谢谢支持
2019/02/27 09:00:29
17
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长

在这里,当你选中软件包以后会基于当前的软件包进行编译,在这里还需要介绍一个命令功能,就是软件包的更新,我们之前安装git实际上就是为本项功能做准备的,因为软件包实际是在不停的更新的,所以有时候需要获取最新的软件包,或者选中的软件包,当前的工具中没有,这时候需要你下载软件包,就需要用到,下面的命令了:

pkgs --update

我这里已经下载了最新的软件包,所以,使用此命令时,如下:

2019/02/27 09:38:15
18
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长

还有一个命令差点拉下:有关于ENV软件更新的,目前ENV的最新版本为V1.1.0,这个软件是个命令式的处理软件,当然也支持本地更新,不需要去下载最新的软件,只需要通过命令,在本地进行更新就可以,这里涉及的命令如下:

pkgs --upgrade,具体操作如下:

2019/02/27 09:47:59
19
s453208[版主]
电源币:438 | 积分:106 主题帖:46 | 回复帖:130
LV7
旅长

到这里,基本上工具介绍和移植篇就讲完了,其实更多的是针对工具讲下RTT的裁剪 移植  编译等操作,这些在以后的开发中,可能会经常用得到,虽然帖子篇幅略长,但大部分都是废话吧,主要还有些自己的感想感触加里面了,希望对大家有所帮助。

最后来一张大神做的经典图来结束此篇学习吧,等到以后可能真的不需要看帖子了,翻开看一下这张图片就够了:


2019/03/12 15:45:01
20
sabrina9988
电源币:34 | 积分:0 主题帖:122 | 回复帖:298
LV7
旅长
顶一下
客服热线
服务时间:周一至周五9:00-18:00
微信关注
免费技术研讨会
获取一手干货分享

互联网违法不良信息举报

Reporting Internet Illegal and Bad Information
editor@netbroad.com
022-58392381