Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ART-Pi Smart
在Windows下 rt-smart开发环境搭建 内核编译到应用开发 hello
发布于 2022-05-02 00:07:25 浏览:1278
订阅该版
[tocm] # 在Windows下,快速体验 rt-smart开发环境搭建 内核编译到应用开发 Say hello to ART-Pi-Smart ## 环境搭建(基于 Windows 环境) ### 安装 Env 环境 - Windows 下,从 RT-Thread 官网下载 Env 工具:https://www.rt-thread.org/page/download.html - Env 用户手册(准备工具、使用方法): https://www.rt-thread.org/document/site/#/development-tools/env/env - Env 工具集成了编译构建环境(scons)、图形化系统配置(menuconfig)及软件包管理功能等工具 - 通过 [ART-Pi-Smart SDK 仓库](https://gitee.com/rtthread/ART-Pi-smart) (Gitee)下载最新的 ART-Pi Smart SDK 软件包 (可以用命令git clone https://gitee.com/rtthread/ART-Pi-smart.git) ### 目录结构 如下图所示为 ART-Pi Smart SDK 软件包结构框图。其中内核的BSP是 imx6ull-artpi-smart。 ![rt-smart_SDK_软件包结构框图.drawio.png](https://oss-club.rt-thread.org/uploads/20220501/3750df8b72bf2ef58b7984471e1edfd8.png.webp) rt-smart SDK 软件包结构框图 ### 安装编译工具链 (前注:我第一次按旧文档的,https://art-pi.gitee.io/smart-website/docs/#/user_manual/user_manual在百度网盘下载的工具链接编译会出错,大家提前避坑。具体的错误内容看后面) ART-Pi smart sdk本身并不携带工具链,所以在下载了sdk后需要自行安装工具链,不过安装工具链非常简单,只需要在sdk的tools目录下执行下python脚本即可: ```shell cd tools python get_toolchain.py ``` ## 代码编译 ### 设置环境变量(基于 Windows) 打开 Env 控制台终端窗口,然后切换到这个代码包根目录,**运行 smart-env.bat** 进行环境变量的设置,然后整体的 rt-smart 开发环境就可以使用了,具体操作如下所示: ```bash # 进入到 rt-smart 目录 $ cd rt-smart # 设置对应的环境变量(rt-smart 工具链、编译器等)。和原 RT-Thread 相比,多了 RTT_CC_PREFIX 环境变量 $ smart-env.bat # 查看环境变量是否生效,输入下面命令,即可查看 musl 工具链、RTT_CC_PREFIX 环境变量 $ set RTT RTT_CC=gcc RTT_CC_PREFIX=arm-linux-musleabi- RTT_EXEC_PATH=F:\RT-Thread\ART-Pi-smart\tools\gnu_gcc\arm-linux-musleabi_for_i686-w64-mingw32\bin # [可选操作]确定工具链是否可以使用,输入下面命令,即可查看工具链相关版本信息 $ arm-linux-musleabi-gcc -v Using built-in specs. COLLECT_GCC=arm-linux-musleabi-gcc COLLECT_LTO_WRAPPER=f:/rt-thread/art-pi-smart/tools/gnu_gcc/arm-linux-musleabi_for_i686-w64-mingw32/bin/../libexec/gcc/arm-linux-musleabi/7.3.0/lto-wrapper.exe Target: arm-linux-musleabi Configured 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 Thread model: posix gcc version 7.3.0 (GCC) build date: Mar 27 2022 15:07:07 build sha: 718bab50a3b283939442fd3bbbf3d473deda1998 build job: 299929 ``` ### 编译 rt-smart 内核代码(基于 imx6ull-artpi-smart BSP) 可用menuconfig 配置 ``` $ menuconifg ``` ![RTmenuconfig.png](https://oss-club.rt-thread.org/uploads/20220501/e95e786dd67b6377998bb5b4af7ebecf.png) 我未更改配置,直接退出 ```bash # 进入到 rt-smart 的 imx6ull-artpi-smart BSP 内核目录 $ cd rt-smart\kernel\bsp\imx6ull-artpi-smart\ # 清除编译生成的临时文件和目标文件 $ scons -c # 编译 rt-smart 内核 $ scons ``` # (有一个插曲,第一次编译不通过,学习群里小伙伴@Rick Grimes 经验,感谢.重启env,再决编译通过) - 如果编译无误,会生成 rtthread.elf、rtthread.bin、rtthread.imx 内核的固件文件 - 生成的 rtthread.imx 内核固件文件,用于 USB 方式加载内核固件至开发板运行 - 生成的 rtthread.bin 内核固件文件,用于 Uboot + TFTP 方式加载内核固件至开发板运行 - 如果编译代码时,想同时查看详细的编译 log,可以使用`scons --verbose`命令来编译构建 ## 基于vscode的第一个应用程序Hello world ### vscode RT-Samrt应用开发环境搭建 #### 安装RT-Thread-Smart vscode插件 在vscode 搜索RT-Thread-Smart->install ![rtvs7.png](https://oss-club.rt-thread.org/uploads/20220501/c414556efe983bb8ae106865aa3c8181.png.webp) #### 新建hello工程 在 VS Code 上使用 Ctrlt+Shift+P 快捷键,输入 RT-Thread 关键字,选择 “创建 RT-Thread Smart 工程”: 依据向导依次设置工程名\SDK 根目录\构建工具 编辑代码如下: ```C /* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: GPL-2.0 * * Change Logs: * Date Author Notes * 2022-5-1 lojam The first version */ #include
int main(int argc, char **argv) { printf("hello world!\n"); printf("hello RT-smart!!!\n"); printf("Hello Sunshine Siliocn!\n"); return 0; } ``` #### 编译hello 出错: ``` (venv) F:\RT-Thread\ART-Pi-smart\userapps\workspace\hello-rt-smart>scons 'scons' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 ``` 提示没有安装scons,那就安装一下: ``` (venv) F:\RT-Thread\ART-Pi-smart\userapps\workspace\hello-rt-smart>pip install scons Collecting scons Downloading SCons-4.3.0-py3-none-any.whl (4.2 MB) ---------------------------------------- 4.2/4.2 MB 17.6 kB/s eta 0:00:00 Requirement already satisfied: setuptools in c:\users\lojam\appdata\local\programs\python\python37\lib\site-packages (from scons) (40.8.0) Installing collected packages: scons Successfully installed scons-4.3.0 ``` (小插曲,第一次看https://art-pi.gitee.io/smart-website/docs/#/user_manual/user_manual在百度网盘下载的工具链接编译会出错) ![scons--err.png](https://oss-club.rt-thread.org/uploads/20220501/a12e0586626603ecd74429efc493fc0a.png.webp) 几经波折,想在say hello 不容易, 编译成功后 在“userapps” 目录下的用户应用程序,将编译成一个个“.elf” 可执行文件,存放于 userapps/root/bin 目录 将 root 整个文件夹(包含了用户 APP 的 elf 固件文件)通过 USB 读卡器直接复制到 SD 卡,并将 SD 卡插到 ART-Pi Smart 开发板背面的 Micro SD 卡槽 (原可以方便用udb方法的,但多次体验不成功) ### 开发运行 hello.elf ``` msh /sd>hello.elf msh /sd>hello world! hello RT-smart!!! Hello Sunshine Siliocn! ``` Say Hello to ART-Pi smart 成功,不容易啊. ## 总结 虽然Say hello to ART-Pi smart 几经波折,总体来说,还是比较顺利的,相对OpenHarmony环境(太多工具,头疼)。总之,大道至简,越简单越好!!!
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
fannifu
我是谷动谷力的大树,欢迎大家来访http://bbs.sunsili.com
文章
5
回答
3
被采纳
0
关注TA
发私信
相关文章
1
求助vscode开发art-pi smart开发板的问题
2
vscode下载rt-smart用户态代码时udb有问题
3
RGB565 显示图片异常
4
浮点数打印,从内核态直接打印和从用户态访问设备再触发打印,效果不一致
5
csi 开启 DMA_REQ_EN_RFF 前提下,开启 CSI 就卡住无打印
6
求助如何移植rt-thread到野火imx6ull开发板上
7
RT-thread smart 用户态程序运行出错
8
art-pi-smart 编译报错
9
ART-PI Smart User 运行LED 程序崩溃
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
xiaorui
1
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部