探索新升级!在 ART-Pi Smart 体验 RT-Thread Smart v5.1.0
1.引言
RT-Thread Smart v5.1.0 已经正式发布。这一版本在内核和功能上做了大量的改进与增强。我们可以在ART-Pi Smart开发板尽情探索这一新版更完善更强大的RT-Thread Smart操作系统。ART-Pi Smart开发板搭载了米尔科技的i.MX6ULL核心板,硬件设计和制作由韦东山团队完成,整体的BSP板级支持包由社区完成。这是首个运行 RT-Thread Smart 的 ARM Cortex-A7 开发板,具有强大的硬件性能和丰富的外设接口,非常适合学习,开发和调试RT-Thread Smart系统。
硬件规格情况
🔗开发板购买链接:https://m.tb.cn/h.gUlY2J1?tk=7ah8Wy7fME1
在ART-Pi Smart的板卡上包括了百兆以太网,TF卡插槽,USB device,USB host接口,以及RW007 WiFi模块,Type-C的USB UART,RGB888 FPC座,Camera FPC座等资源。核心板上板载i.MX6ULL 800MHz ARM Cortex-A7单核32位处理器,512MB DDR3内存,4GB eMMC。
2. RT-Thread Smart v5.1.0 新体验
RT-Thread v5.1.0 版本的 Smart 中带来了诸多改进和新功能,以下是一些和Smart系统密切相关的主要新增特性和增强点:
● 更完善的libc支持:高性能互斥锁 futex 和原生 libc 动态链接功能,使系统在多任务处理和内存管理上更高效。新增或修复了 setitimer、setaffinity 等API,提升了系统的灵活性和稳定性。
● 更完善的 POSIX 终端支持:
○ 完整的终端设备及伪终端设备支持
○ 可嵌套,支持作业控制,支持系统调用重启的 POSIX 信号支持
○ 进程组和会话管理
○ 新的IPC方法 `rt_condvar`
○ dfsv2 devfs 支持符号链接等功能。
○ ……
这些特性不仅使 RT-Thread Smart 在功能上更加完善,同时也提升了系统的稳定性和性能,为开发者提供了更强大的工具和更多的可能性。
3. 快速上手
下面介绍如何在ART-Pi Smart开发板上运行v5.1.0版本RT-Thread Smart操作系统。
○ 搭建xmake编译环境
对于RT-Thread Smart的开发,推荐使用Linux Ubuntu环境,也可以远程使用Linux环境,在Windows桌面上使用VSCode登陆到Linux Ubuntu环境上使用。
在Linux Ubuntu下需要先安装xmake环境
1sudo add-apt-repository ppa:xmake-io/xmake
2sudo apt update
3sudo apt install xmake
更多安装方式,请参考
https://xmake.io/#/zh-cn/guide/installation
○ 应用编译
拉取用户态应用仓库 https://github.com/RT-Thread/userapps.git 可以获得一些示例程序工程。我们通过 xmake f 命令配置构建的目标平台,使用 xmake 命令编译构建工程,最后通过 xmake smart-rootfs -f fat 命令将构建完成的产物制作为 fat 格式的根文件系统镜像。这个镜像会在后面被烧录到 sd 卡中使用。
1source env.sh//设置环境变量
2//编译app
3cd apps
4// 配置为 arm平台
5xmake f -a arm
6xmake -j8
7//生成rootfs
8xmake samrt-image -f fat
○ 内核编译
前面xmake已经下载了工具链,工具链具体位置在这里(arm-smart-musleabi 路径后的数字可能因为版本更新而不同)
1~/.xmake/packages/a/arm-smart-musleabi/211536-3de435f234/f5d0c3febbd2497fa950eb569871a3c0
下载内核主线最新代码 https://github.com/RT-Thread/rt-thread.git
进入bsp目录 rt-thread/bsp/nxp/imx/imx6ull-smart
1# 更新在线软件包 (主要涉及wifi软件包)
2source ~/.env/env.sh
3pkgs --update
4# 编译内核
5scons -j8
○ eMMC镜像制作
ART-Pi Smart 支持 eMMC,SD,tftp 等方式启动内核。我们以 eMMC 为例子说明。在 bsp 目录下,可以看到 ./emmc/boot.fat文件。这是一个预先制作的 fat 文件系统镜像,其中已经包含一些文件。我们创建 tmp 目录,将 boot.fat 临时本地挂载到 tmp 目录下,使用tree命令可以看到如下的文件目录结构。
1.
2├── boot.fat
3├── image
4│ ├── genimage
5│ ├── genimage.cfg
6│ ├── images
7│ │ └── art-pi.img
8│ ├── input
9│ │ ├── boot.fat
10│ │ └── u-boot-dtb.imx
11│ ├── root
12│ └── tmp
13│ └── root
14└── tmp
15 ├── bin
16 │ └── ash
17 ├── etc
18 │ └── inittab
19 ├── kernel
20 │ ├── rtthread.bin
21 │ ├── rtthread.elf
22 │ ├── rtthread.img
23 │ └── rtthread.imx
24 ├── root
25 │ └── bin
26 │ └── hello.elf
27 └── sbin
28 └── init
● tmp/kernel下是内核相关文件
● tmp/sbin/init和tmp/bin/ash用来开机启动ash
● tmp/root/bin是应用文件夹,可以放置一些自定义应用
每次更新内核/应用,可以参考以下脚本内容生成新的art-pi.img映像文件
1sudo mount ./boot.fat ./tmp/
2sudo rm -rf tmp/kernel/*
3sudo cp -r ../rtthread.bin tmp/kernel/
4sudo cp -r ../rtthread.elf tmp/kernel/
5sudo cp -r ../rtthread.img tmp/kernel/
6sudo cp -r ../rtthread.imx tmp/kernel/
7sudo sync
8sudo umount ./tmp
9sudo cp boot.fat image/input/
10cd image
11mkdir root
12rm -rf tmp
13./genimage
art-pi.img位置在 rt-thread/bsp/nxp/imx/imx6ull-smart/emmc/image/images 目录下
○ 镜像烧写
1. 首先准备一台 Windows 测试电脑,下载 100ask_imx6ull 烧写工具(由百问网提供)
a. 工具下载地址:
https://github.com/100askTeam/gui_for_nxp_uuu/blob/master/100ask_imx6ull%E7%83%A7%E5%86%99%E5%B7%A5%E5%85%B7/100ask_imx6ull_flashing_tool.exe
b. ⚠️100ask_imx6ull 烧写工具需要到 GitHub 去下载,网络不稳定。如果出现无法访问或无法下载,请多刷新网页多尝试几次
2. 将用于烧录的 USB Type-C(上方口) 先连接到 Windows 测试电脑
3. 将另外一个 USB Type-C(下方口)也连接上 Windows 测试电脑,给开发板供电
4. 在测试电脑上,打开串口调试终端:115200 波特率、8位数据位、1位停止位、无奇偶校验、无流控
5. 先拔掉 ART-Pi Smart 开发板上的 SD 卡(⚠️必须先拔掉 SD 卡)
6. 配置 ART-Pi Smart 开发板进入到 USB 固件下载模式
操作方法:开发板上电之后,先按下 "BOOT 启动按键" 不松开,再按下 “RST 复位键”,即可切换到 USB 固件下载模式。
7. Windows 主机电脑上,打开烧录工具 100ask_imx6ull_flashing_tool.exe,查看烧录工具是否与ART-Pi Smart USB 连接成功
在烧写软件的专业版,烧写制作的镜像文件art-pi.img
○ 运行系统和应用
在运行系统之前,还有一件必不可少的工作 —— 准备根文件系统镜像。根文件系统提供了应用程序运行的必要环境。前文提到,我们在 userapp 仓库已经构建好了根文件系统。在前面我们以 eMMC 为例介绍了内核烧录的方式。这里换一种方式,我们以 SD/TF 卡为例子介绍根文件系统。
首先准备一张SD/TF卡,在Linux下为其创建一个大于1GB的分区作为第一分区,在userapp/apps/build下使用sudo dd if=fat.img of=/dev/sdb1命令将根文件系统烧入SD/TF卡中(这里的sd*根据自己SD/TF卡所在位置来设置):
系统上电后我们进入 uboot 并将 bootcmd 修改如下。
1bootcmd=fatload mmc 1:1 0x80001000 /kernel/rtthread.bin; dcache flush; go 0x80001000
将SD卡插入再重新启动开发板后使用mount sd01 /mnt 将SD卡挂载到处我们的mnt目录下,进入mnt目录即可看到我们刚刚用userapp制作好的文件系统。
进入/mnt/bin目录下可以看到该目录下已经包含了一些可执行程序。以 hello 程序为例子,输入命令执行程序,将得到如下输出。
👇 RT-Thread Smart官方开发板助你开启RT-Thread Smart v5.1.0之旅
🔗开发板购买链接:
https://m.tb.cn/h.gUlY2J1?tk=7ah8Wy7fME1
——————End——————
本文分享自微信公众号 - RTThread物联网操作系统(RTThread)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
将强化学习重新引入 RLHF
我们很高兴在 TRL 中介绍 RLOO (REINFORCE Leave One-Out) 训练器。作为一种替代 PPO 的方法,RLOO 是一种新的在线 RLHF 训练算法,旨在使其更易于访问和实施。特别是, RLOO 需要的 GPU 内存更少,并且达到收敛所需的挂钟时间也更短。如下面的图表所示: 🤑根据模型大小,RLOO 使用的 vRAM 比 PPO 少大约 50-70%; 🚀对于 1B 参数模型,RLOO 的运行速度比 PPO 快 2 倍,对于 6.9B 参数模型,RLOO 的运行速度比 PPO 快 3 倍。 🔥在响应胜率 (由 GPT4 判断) 方面,RLOO 与 PPO 相当,并且始终优于 DPO 等流行的离线方法。 通过 RLOO,我们将强化学习重新引入 RLHF,使社区能够更轻松地探索在线 RL 方法。这令人兴奋,因为越来越多的研究表明,在线 RL 比 DPO 等离线方法更有效 ( https://arxiv.org/abs/2402.04792 , https://arxiv.org/abs/2405.08448 )。 这篇博客将解释 RLOO 训练器的背后的动机...
- 下一篇
海量数据处理利器 Roaring BitMap 原理介绍
作者:来自 vivo 互联网服务器团队- Zheng Rui 本文结合个人理解梳理了BitMap及Roaring BitMap的原理及使用,分别主要介绍了Roaring BitMap的存储方式及三种container类型及Java中Roaring BitMap相关API使用。 一、引言 在进行大数据开发时,我们可以使用布隆过滤器和Redis中的HyperLogLog来进行大数据的判重和数量统计,虽然这两种方法节省内存空间并且效率很高,但是也存在一些误差。如果需要100%准确的话,我们可以使用BitMap来存储数据。 BitMap 位图索引数据结构被广泛地应用于数据存储和数据搜索中,但是对于存储较为分散的数据时,BitMap会占用比较大的内存空间,因此我们更偏向于使用 Roaring BitMap稀疏位图索引进行存储。同时,Roaring BitMap广泛应用于数据库存储和大数据引擎中,例如Hive,Spark,Doris,Kylin等。 下文将分别介绍 BitMap 和 Roaring BitMap 的原理及其相关应用。 二、BitMap原理 BitMap的基本思想就是用bit位来标记...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器