谷动谷力

 找回密码
 立即注册
查看: 2933|回复: 2
打印 上一主题 下一主题
收起左侧

在Windows下 rt-smart开发环境搭建 内核编译到应用开发 hello

[复制链接]
跳转到指定楼层
楼主
发表于 2022-5-2 00:13:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在Windows下,快速体验 rt-smart开发环境搭建 内核编译到应用开发 Say hello to ART-Pi-Smart


环境搭建(基于 Windows 环境)安装 Env 环境
(可以用命令git clone https://gitee.com/rtthread/ART-Pi-smart.git)

目录结构


如下图所示为 ART-Pi Smart SDK 软件包结构框图。其中内核的BSP是 imx6ull-artpi-smart。

rt-smart SDK 软件包结构框图

安装编译工具链

(前注:我第一次按旧文档的)
ART-Pi smart sdk本身并不携带工具链,所以在下载了sdk后需要自行安装工具链,不过安装工具链非常简单,只需要在sdk的tools目录下执行下python脚本即可:
  1. cd tools
  2. python get_toolchain.py
复制代码



代码编译设置环境变量(基于 Windows)

打开 Env 控制台终端窗口,然后切换到这个代码包根目录,运行 smart-env.bat  进行环境变量的设置,然后整体的 rt-smart 开发环境就可以使用了,具体操作如下所示:

  1. # 进入到 rt-smart 目录
  2. $ cd rt-smart

  3. # 设置对应的环境变量(rt-smart 工具链、编译器等)。和原 RT-Thread 相比,多了 RTT_CC_PREFIX 环境变量
  4. $ smart-env.bat

  5. # 查看环境变量是否生效,输入下面命令,即可查看 musl 工具链、RTT_CC_PREFIX 环境变量
  6. $ set RTT
  7. RTT_CC=gcc
  8. RTT_CC_PREFIX=arm-linux-musleabi-
  9. RTT_EXEC_PATH=F:\RT-Thread\ART-Pi-smart\tools\gnu_gcc\arm-linux-musleabi_for_i686-w64-mingw32\bin

  10. # [可选操作]确定工具链是否可以使用,输入下面命令,即可查看工具链相关版本信息
  11. $ arm-linux-musleabi-gcc -v
  12. Using built-in specs.
  13. COLLECT_GCC=arm-linux-musleabi-gcc
  14. 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
  15. Target: arm-linux-musleabi
  16. 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
  17. Thread model: posix
  18. gcc version 7.3.0 (GCC)
  19. build date: Mar 27 2022 15:07:07
  20. build sha: 718bab50a3b283939442fd3bbbf3d473deda1998
  21. build job: 299929
复制代码


编译 rt-smart 内核代码(基于 imx6ull-artpi-smart BSP)


可用menuconfig 配置
  1. $ menuconifg
复制代码


我未更改配置,直接退出
  1. # 进入到 rt-smart 的 imx6ull-artpi-smart BSP 内核目录
  2. $ cd rt-smart\kernel\bsp\imx6ull-artpi-smart\

  3. # 清除编译生成的临时文件和目标文件
  4. $ scons -c

  5. # 编译 rt-smart 内核
  6. $ scons
复制代码

(有一个插曲,第一次编译不通过,学习群里小伙伴@Rick Grimes 经验,感谢.重启env,再决编译通过)
  • 如果编译无误,会生成 rtthread.elf、rtthread.bin、rtthread.imx 内核的固件文件
    • 生成的 rtthread.imx 内核固件文件,用于 USB 方式加载内核固件至开发板运行
    • 生成的 rtthread.bin 内核固件文件,用于 Uboot + TFTP 方式加载内核固件至开发板运行
  • 如果编译代码时,想同时查看详细的编译 log,可以使用scons --verbose命令来编译构建

基于vscode的第一个应用程序Hello worldvscode RT-Samrt应用开发环境搭建安装RT-Thread-Smart vscode插件


在vscode 搜索RT-Thread-Smart->install


新建hello工程


在 VS Code 上使用 Ctrlt+Shift+P 快捷键,输入 RT-Thread 关键字,选择 “创建 RT-Thread Smart 工程”:
依据向导依次设置工程名\SDK 根目录\构建工具
编辑代码如下:
/* * 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 <stdio.h>int main(int argc, char **argv){    printf("hello world!\n");    printf("hello RT-smart!!!\n");    printf("Hello Sunshine Siliocn!\n");    return 0;}

编译hello出错:
  1. (venv) F:\RT-Thread\ART-Pi-smart\userapps\workspace\hello-rt-smart>scons'scons' 不是内部或外部命令,也不是可运行的程序或批处理文件。
复制代码

提示没有安装scons,那就安装一下:
  1. (venv) F:\RT-Thread\ART-Pi-smart\userapps\workspace\hello-rt-smart>pip install scons
  2. Collecting scons
  3.   Downloading SCons-4.3.0-py3-none-any.whl (4.2 MB)
  4.      ---------------------------------------- 4.2/4.2 MB 17.6 kB/s eta 0:00:00
  5. Requirement already satisfied: setuptools in c:\users\lojam\appdata\local\programs\python\python37\lib\site-packages (from scons) (40.8.0)
  6. Installing collected packages: scons
  7. Successfully installed scons-4.3.0
复制代码

(小插曲,第一次看https://art-pi.gitee.io/smart-website/docs/#/user_manual/user_manual在百度网盘下载的工具链接编译会出错)

几经波折,想在say hello 不容易,  编译成功后 在“userapps” 目录下的用户应用程序,将编译成一个个“.elf” 可执行文件,存放于 userapps/root/bin 目录
将 root 整个文件夹(包含了用户 APP 的 elf 固件文件)通过 USB 读卡器直接复制到 SD 卡,并将 SD 卡插到 ART-Pi Smart 开发板背面的 Micro SD 卡槽
(原可以方便用udb方法的,但多次体验不成功)

开发运行 hello.elf

  1. msh /sd>hello.elf
  2. msh /sd>hello world!
  3. hello RT-smart!!!
  4. Hello Sunshine Siliocn!
复制代码
Say Hello to ART-Pi smart 成功,不容易啊.

总结


虽然Say hello to ART-Pi smart 几经波折,总体来说,还是比较顺利的,相对OpenHarmony环境(太多工具,头疼)。总之,大道至简,越简单越好!!!
                        

回复

使用道具 举报

沙发
发表于 2022-5-18 14:15:19 | 只看该作者
新版vs插件 udb 可以成功,使用真方便
回复 支持 反对

使用道具 举报

板凳
发表于 2022-5-18 20:54:11 | 只看该作者
赞一个,学习了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-4-25 08:06 , Processed in 0.078575 second(s), 45 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表