网易首页 > 网易数码 > 正文

RT-Thread实时操作系统在龙芯1C智龙主板上移植成功

0
分享至
摘要:首个基于国产龙芯的开源硬件智龙主板已经完成了首发版的发货,有用户已经将一款国人的 开源实时操作系统RT-Thread RTOS成功移植到基于龙芯1C 的智龙主板上。同时智龙主板V2.0板增加了新功能,正在众筹中。

RT-Thread RTOS是一款来自中国的开源实时操作系统,由国内一些专业开发人员开发、维护。它不仅仅是一款高效、稳定的实时核心,也是一套面向嵌入式系统的软件平台,覆盖了全抢占的实时操作系统内核,小巧而与底层具体实现无关的文件系统,轻型的TCP/IP协议栈以及轻型的多窗口多线程图形用户界面。

开源龙芯智龙开发板用的是loongson 1C主控芯片,该芯片一共有12个串口,其中uart2是智龙的调试串口。 我大概将移植分为3个级别: CPU级、板级(BSP,board support package )、应用级(移植应用程序)。本次移植主要是uart2 配置成调试串口,通过串口进入RTT(RT-Thread)内部,属于BSP。BSP移植一般是找一个类似的开发板(同一款CPU更好)的代码,进行修改来达到移植的目的。龙芯的CPU是比较小众的,很少有系统愿意支持它。庆幸的是在此前,有人移植过loongson 1B的RTT,1B跟1C几乎一样,所以我们可以通过简单修改1B的RTT来在 1C上运行。

RTT原码的下载连接:https://github.com/RT-Thread/rt-thread

step1.配置RTT的shell。

RTT的shell是finsh,这也是用户与系统的交互的工具。finsh是RTT的组件,需要在bsp/ls1bdev/rtconfig.h定义相应的宏才能在编译的时候将finsh加到系统包中。

step2.认识RTT驱动架构.

简单说一下RTT驱动架构。一般系统的设备分为字符设备、网络设备等。串口设备属于字符设备。RTT提供IO管理层用来管理这些设备的初始化、读、写、开、关。

这些函数具体的内容需要自己实现,把地址赋给结构体rt_device中的函数指针。通过函数 rt_device_register()将设备驱动(结构体rt_device中的各个函数纳入驱动管理层)注册IO管理层,这样RTT通过查找设备名称(比如“uart2”)找到相应的rt_device结构体,并得到了操作设备所需要的具体函数(开关读写等)。

step3.配置调试串口uart2.

串口配置主要是关于串口的几个寄存器的配置,包括波特率、RX中断、全局中断号。配置波特率和RX中断使能在bsp/ls1bdev/drivers/uart.c。函数rt_uart_init()初始化串口寄存器,此函数的地址将会赋给rt_device结构体中的init函数指针。

3.1在初始化工作开始之前,需要清除该设备的中断。

3.2设置线路控制寄存器,这个寄存器中bit7是用来控制是否设置波特率寄存器的。

3.3设置波特率寄存器,波特率寄存器。DEV_CLK= 252000000 (即252MHz,1C的主频), UART_BUADRATE = 115200(波特率115200Hz)。波特率寄存器有两个,MSB和LSB。为什么要两个寄存器,因为波特率配置数有时候很大,需要这两个寄存器(2个8bits)的存储。

3.4设置完波特率,需要回复线路控制寄存器LCR的bit7的赋值(0)。并且将LCR的末了的两位(bit1和bit0)设置为1,这是设置串口数据的帧格式,即1个开始位+8个数据位+1个停止位。帧格式如下:

3.5打开RX的中断使能。即设置IER寄存器。

step4.在RTT的BSP包中配置调试串口uart2.

在文件bsp/ls1bdev/drivers/board.c中修改。在关键的地方(红框)改成串口2

step5.在应用层初始化的过程中,初始化finsh,配置finsh的输入输出设备uart2。

在bsp/ls1bdev/applications/startup.c的rtthread_startup()函数中修改。

在libcpu/mips/loongson_1b/ls1b.h中修改uart2的irq(中断号)4 to 5。

step6.编译RTT。

6.1打开装有ubuntu14.2的虚拟机,默认诸君已经下载龙芯的GCC包,并且如何用编译工具已经谙熟于胸。实在不了解,移步开源龙芯论坛: http://www.openloongson.org/foru ... d=67&extra=page%3D1

6.2下载RTT for smart loong原码包。百度云盘:http://pan.baidu.com/s/1gdq4QPl

6.3用firefox下载rtt2.zip,将其copy到”~/app”下。

$ cd ~/app

$ ls

$ unzip rtt2.zip

6.4 安装python和scons,这是因为RTT的编译依赖scons,类似makefile之类的。

$sudo apt-get install python

$sudo apt-get install scons

6.5修改编译器路径。在~/app/rtt2/bsp/ls1bdev/rtconfig.py中修改。 我的编译器路径: /opt/opt/gcc-4.3-ls232/bin。编译器命令是一堆bin文件。可以vi,或者直接点击文件,ubuntu会自动调用gedit打开。

6.5编译RTT。很快生成rtthread.elf,这就是我们要的RTT的包,可以直接在smart loong上直接运行。

$cd ~/app/rtt2/bsp/ls1bdev/

$sudo scons

step7.在smart loong上运行RTT系统。

step7.1安装tftp服务器。百度云盘:http://pan.baidu.com/s/1eQvqBkQ。下载到windows下,随便建一个文件夹,把解压tfp32.zip,将tftpd32.exe和rtthread.elf放在同一个文件夹。

step7.2在龙芯的pmon中修改autoload的文件。打开tftpd32.exe。

可以看出我的tftp服务器的地址是192.168.3.10。

运行中的智龙主板

进入pmon。加电后狂按空格键。

PMON> set al tftp://192.168.3.10/rtthread.elf

PMON> reboot

step7.3运行RTT。

step7.4按tab键。可以echo出几个RTT内置的系统命令。关于finsh的命令可以认为的添加,当然函数需要自己实现。

step7.5执行hello()命令。echo:Hello RT-Thread!

step8.谈谈关于RTT的感受。

优点:硬实时,免费开源,支持平台多(龙芯这么小众都支持),模块化,高度可裁剪,图形界面,shell,社区活跃。

缺点:finsh不够power。

以上RT-Thread在智龙主板上的移植原文已开源龙芯技术社区www.openloongson.org发布。

据介绍,“智龙”主板是首个龙芯用户社区-龙芯俱乐部和龙芯发起的一款以完全开源方式推广的龙芯嵌入式主板,采用了国产龙芯1C处理器,在较小尺寸的电路板上集成了龙芯1C SOC ,网口、USB口、电源,SD卡插槽和RTC时钟等主要部件,可以运行嵌入式 Linux、RT-Thread等操作系统。也是目前最便宜的龙芯嵌入式学习主板。目前“智龙”主板首版已经销售一空,龙芯俱乐部已经启动了第二版智龙主板的众筹,价格还是199元。众筹网址www.loongsonclub.com/gw。据悉智龙V2.0与V1.0相比有部分的改进,如增加了自定义按钮和自定义LED灯,排母间距增加,增加复位键等等,会更稳定和方便使用。

智龙主板V2.0 PCB设计图

相关推荐
热点推荐
47岁大姐在澳门当保姆14年,辞职时雇主给红包,回家一看不是钱

47岁大姐在澳门当保姆14年,辞职时雇主给红包,回家一看不是钱

卡西莫多的故事
2025-12-07 10:45:33
朝阳这一区域正式腾退!边签约边交房,期限20天!

朝阳这一区域正式腾退!边签约边交房,期限20天!

家住朝阳
2025-12-17 17:56:21
中国共产党中央军事委员会副主席张升民简历

中国共产党中央军事委员会副主席张升民简历

上观新闻
2025-10-23 18:17:07
欧拉弄大庭广众效仿苏提达,惊人相似,鱼目混珠差点被当成王后

欧拉弄大庭广众效仿苏提达,惊人相似,鱼目混珠差点被当成王后

夜深爱杂谈
2025-12-17 22:24:42
蜜雪冰城暴打美国人,28块钱一杯,还能双倍糖,给肥胖之国上强度

蜜雪冰城暴打美国人,28块钱一杯,还能双倍糖,给肥胖之国上强度

揽星河的笔记
2025-12-16 19:17:02
柿子立大功?武大研究发现:柿子可在32小时清除20%有害菌群?

柿子立大功?武大研究发现:柿子可在32小时清除20%有害菌群?

看世界的人
2025-11-29 13:55:27
国防部新闻发言人蒋斌就菲律宾国防部炒作仙宾礁水炮事件答记者问

国防部新闻发言人蒋斌就菲律宾国防部炒作仙宾礁水炮事件答记者问

界面新闻
2025-12-17 17:14:27
卷走53亿!又一大佬带全家跑路,欠中国银行20亿,投资者血本无归

卷走53亿!又一大佬带全家跑路,欠中国银行20亿,投资者血本无归

以茶带书
2025-12-09 23:33:58
10万不到的哈弗大狗,能平替坦克300吗?

10万不到的哈弗大狗,能平替坦克300吗?

百车全说
2025-12-17 18:25:37
许亚军疑似为何晴付10年抗癌费用和生活费 下7次病危通知仍不放弃

许亚军疑似为何晴付10年抗癌费用和生活费 下7次病危通知仍不放弃

深析古今
2025-12-17 09:23:03
乌情报局斩获情报:俄罗斯向中国让渡领土主权,有史以来第一次

乌情报局斩获情报:俄罗斯向中国让渡领土主权,有史以来第一次

王裕庆
2025-12-14 17:41:17
80后已经有1100万人提前下车了。

80后已经有1100万人提前下车了。

爱吃糖的猫cat
2025-11-16 18:27:38
高市早苗当局:2026年起将取消中国留学生在日打工收入的免税政策

高市早苗当局:2026年起将取消中国留学生在日打工收入的免税政策

达文西看世界
2025-12-15 18:51:59
张国强:被前妻嫌穷,40岁二婚带子娶郭京飞旧爱,如今苦尽甘来

张国强:被前妻嫌穷,40岁二婚带子娶郭京飞旧爱,如今苦尽甘来

白面书誏
2025-12-15 14:11:04
中美军方高层见面,在华盛顿密谈2天,特朗普干脆,对中方交了底

中美军方高层见面,在华盛顿密谈2天,特朗普干脆,对中方交了底

谛听骨语本尊
2025-12-17 16:30:44
人民财评:提振消费,招招硬核!

人民财评:提振消费,招招硬核!

人民资讯
2025-12-16 09:17:07
甘肃女博士张明玉刚生完孩子,被丈夫提刀割喉,丈夫:你真脏

甘肃女博士张明玉刚生完孩子,被丈夫提刀割喉,丈夫:你真脏

天字号野史
2024-11-18 23:49:45
“过去两年没收到过消息,她可能已经去世了”

“过去两年没收到过消息,她可能已经去世了”

观察者网
2025-12-15 21:17:04
澳门赌场“潜规则”:赌场没有表,美女发牌,有人一场牌输7个亿

澳门赌场“潜规则”:赌场没有表,美女发牌,有人一场牌输7个亿

105度的世界
2024-03-11 21:30:25
傅作义亲自护送5位敌将登机南逃,几十年后才知他保住的是什么

傅作义亲自护送5位敌将登机南逃,几十年后才知他保住的是什么

小哥很OK
2025-12-16 09:24:47
2025-12-18 02:40:49

头条要闻

坠亡女教师有已婚哥哥和未婚弟弟 父母被指不愿退彩礼

头条要闻

坠亡女教师有已婚哥哥和未婚弟弟 父母被指不愿退彩礼

体育要闻

短短一年,从争冠到0胜垫底...

娱乐要闻

狗仔曝热播剧姐弟恋真谈了???

财经要闻

重磅信号!收入分配制度或迎重大突破

科技要闻

特斯拉值1.6万亿靠画饼 Waymo值千亿靠跑单

汽车要闻

一车多动力+双姿态 长城欧拉5上市 限时9.18万元起

态度原创

健康
亲子
教育
数码
公开课

这些新疗法,让化疗不再那么痛苦

亲子要闻

撒泼打滚的娃妈妈只有一早就制服了

教育要闻

孩子沉迷屏幕?3大类趣味实践活动玩中学!

数码要闻

RGB-Mini LED迎来“跨年夜”,“光色同控”从电视走向桌面

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版
×