art-pi smart 是rt-thread公司推出的一款基于NXP公司imx6ull处理器的开发板,主要用来测试评估RT公司去年新发布的混合微内核操作系统RT-Smart。
RT-Thread Smart(简称 rt-smart)嵌入式实时操作系统是基于 RT-Thread 操作系统衍生的新分支,面向带 MMU,中高端应用的芯片,例如 ARM Cortex-A 系列芯片,MIPS 芯片,带 MMU 的 RISC-V 芯片等。rt-smart 在 RT-Thread 操作系统的基础上启用独立、完整的进程方式,同时以混合微内核模式执行。
rt-smart 是一款高性能混合微内核操作系统,在传统嵌入式操作系统划分中,rt-smart 能够填补传统 RTOS 和大型操作系统 Linux 之间的空白,在实时性、成本、安全性、启动速度等方面可以取得最佳的平衡。
https://gitee.com/rtthread/ART-Pi-smart
2.ART-Pi-Smart 用户手册
https://art-pi.gitee.io/smart-website/docs/#/user_manual/user_manual?id=windows-%e4%b8%8b%ef%bc%8c%e5%bf%ab%e9%80%9f%e4%bd%93%e9%aa%8c-rt-smart
如下图所示,是ART-PI Smart的SDK目录结构:
如下图所示,是开发板控制台界面下smart系统目录结构,具体开发板上电链接流程请参考官方文档,此处不赘述。需要注意的是,电脑上要提前安装cp210x的驱动。
RT官方ENV用户手册
https://www.rt-thread.org/document/site/#/development-tools/env/env
RT官方SCONS用户手册
https://www.rt-thread.org/document/site/#/development-tools/scons/scons
1python get_toolchain.py
在主机保证联网的前提下,该脚本会自动识别用户当前的开发环境,自动安装相匹配的编译工具链安装完毕之后,在ENV命令行界面,输入如下指令,查看工具链是否安装正确:
1arm-linux-musleabi-gcc -v
出现如下内容代表工具链已经自动安装好:
1Using built-in specs.
2COLLECT_GCC=arm-linux-musleabi-gcc
3COLLECT_LTO_WRAPPER=e:/test/rt-smart/tools/gnu_gcc/arm-linux-musleabi_for_i686-w64-mingw32/bin/../libexec/gcc/arm-linux-musleabi/7.3.0/lto-wrapper.exe
4Target: arm-linux-musleabi
5Configured with: ../src_gcc/configure --disable-werror --prefix= --target=arm-linux-musleabi --with-sysroot=/arm-linux-musleabi --with-build-sysroot=/builds/research/musl-toolchain/build/arm-linux-musleabi_for_i686-w64-mingw32/sysroot/ --enable-languages=c,c++ --disable-multilib --enable-tls --disable-libmudflap --disable-libsanitizer --disable-gnu-indirect-function --disable-libmpx --enable-libstdcxx-time --host=i686-w64-mingw32 --disable-bootstrap AR_FOR_TARGET=arm-linux-musleabi-ar AS_FOR_TARGET=arm-linux-musleabi-as LD_FOR_TARGET=arm-linux-musleabi-ld NM_FOR_TARGET=arm-linux-musleabi-nm OBJCOPY_FOR_TARGET=arm-linux-musleabi-objcopy OBJDUMP_FOR_TARGET=arm-linux-musleabi-objdump RANLIB_FOR_TARGET=arm-linux-musleabi-ranlib READELF_FOR_TARGET=arm-linux-musleabi-readelf STRIP_FOR_TARGET=arm-linux-musleabi-strip
6Thread model: posix
7gcc version 7.3.0 (GCC)
8build date: Sep 30 2021 13:47:19
9build sha: b998444eb32a74bdeb55fd70963187255ae6efe0
10build job: 173019
接着,打开ENV工具,然后输入执行:
1smart-env.bat
该操作是在进一步开发前先设置好环境变量(rt-smart 工具链、编译器等),输入如下指令,查看环境变量是否生效:
1set RTT
如果生效,则会显示如下信息,否则请检sdk相关查路径是否有中文,或者工具链没有安装等。
1RTT_CC=gcc
2RTT_CC_PREFIX=arm-linux-musleabi-
3RTT_EXEC_PATH=E: est
t-smart oolsgnu_gccarm-linux-musleabi_for_i686-w64- mingw32
4in
(注意:后续每次打开ENV工具进行scons之类的操作,都必须线设置该环境变量,否则后续编译构建将会报错!)
进入到SDK根目录下,然后依次进入到ART-PI Smart BSP所在的目录下,例如:
1盘符:..ART-Pi-smart-masterkernelspimx6ull-artpi-smart
在该目录下,打开ENV命令行窗口,输入指令:
1menuconfig
则ENV窗口会自动弹出内核的图形配置界面,如下图所示:
1scons
该编译指令其实还可以配合其他参数一起使用,具体细节请参考前文提到的官方SCONS用户手册。
在bsp目录下,scons成功之后,将会生成内核的可执行文件,分别是:
1rtthread.bin
2rtthread.elf
3rtthread.imx
4rtthread.img
运行新的内核,本文只用到了以上两种文件格式,分别是imx和bin格式的内核文件。
1python -m http.server 8080
方法二:通过sd传输除了web下载内核bin文件到emmc上的文件系统中,还可以更简单粗暴的通过sd卡把bin文件传输到文件系统中。该过程较为简单,在系统控制台界面,进入sd卡的bin文件所在路径,直接cp操作就ok。
1盘符:...ART-Pi-smart-masteruserapps
该路径下apps文件夹下,存放的是用户app的源文件,例如HELLO文件夹下,存放的就是输出“hello world”的历程源码,在root/bin路径下,存放的是用户app对应编译生成的系统elf格式的可执行文件。用户APP程序构建使用的是SCONS工具,该工具采用的python语言编写,类似于Liunx下常用的的Cmake之类的工具,我们以官方hello程序为例,默认scons构建脚本已经写好,具体scons的操作方法,请参考前文提到的官网文档,此处不赘述。此时在ENV界面下,输入如下指令即可完成编辑和生成elf文件:
1scons --app=hello
编译成功之后,会看到相应的信息和生成的elf文件名称,如果程序有语法错误,那么此处会有详细的报错。这里再本人测试使用中发现一个问题,当前编译检查较为严格,移植之前自己写的小例程,发现一些没有调用的变量和函数,统统会被视为错误,或者一些不是那么匹配的数据类型(如char到int之类的),也是直接全部报错,而不是警告,这一点是可以修改编译规则的,但是本人太熟悉对应的脚本文件,所以暂时没有处理,在次提出该问题,供后来朋友避坑。
https://github.com/ideawu/tftpx/blob/master/client.c
它在开发板上运行之后,配合电脑端tftp服务器,即可下载对应路径下的elf文件到板子系统中去。电脑端推荐使用tftp64.exe这个软件,按照要求建立好TFTP服务器,设置好IP和文件所在路径,即可。然后通过SD卡,把tftpx.elf文件拷贝到板子系统root/bin路径下,并且执行,执行格式如下:
1tftpx.elf 192.168.1.100 8080
此时只要网络畅通,就会提示相应的操作说明,我们可以输入如下指令,来下载刚刚编译好的hello.elf
用户app。
1get hello.elf
下载完毕后退出,即可。本人把编译好的tftpx.elf文件放在附件中,供有需要的朋友下载使用。如果您有更方便更高效的elf传输加载方式,也可回帖分享介绍哦。(●'◡'●)
“如果海洋注定要决堤,
就让所有的苦水都注入我心中,
如果陆地注定要上升,
就让人类重新选择生存的峰顶。
新的转机和闪闪星斗,
正在缀满没有遮拦的天空。
那是五千年的象形文字,
那是未来人们凝视的眼睛。”
---北岛《回答》节选
原文标题:RickFlying
文章出处:【微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !