参考链接
官方文档
资料下载
env-windows-v1.3.5.7z
userapps
注意事项
通过QEMU
仿真不同的平台,使用到的交叉编译工具也不一样,需要将相应工具的路径添加到系统PATH
里;或者通过CMD
定位到userapps
,运行smart-env.bat xxx
(arm
或者riscv64
)指定交叉编译工具的路径(只在当前CMD环境有效)
操作步骤
注意:
- 以下的
CMD
命令不能用powershell
代替;- 通过
QEMU
仿真arm
平台可以运行成功,但是仿真riscv64
时运行不起来,原因不明;
- 打开
CMD
,定位到userapps/tools
目录,运行python get_toolchain.py arm
命令安装arm
平台的交叉编译工具链,如下图:
注意:如果要仿真riscv64平台,通过
python get_toolchain.py riscv64
命令安装riscv64
平台的交叉编译工具链
等待命令执行完成后,在userapps/tools/gnu_gcc
目录下就能看到交叉编译工具链了:
2. 在CMD
中定位到userapps
目录,执行命令smart-env.bat arm
,如下图:
注意:如果要仿真
riscv64
平台,需要执行smart-env.bat riscv64
3. 在CMD中定位到userapps目录,执行scons命令,如下图:
说明:如果没有找到
scons
命令,需要在CMD
中通过python -m pip install scons
命令安装scons
。
如果scons
命令执行成功,可以在userapps/root/bin
目录下看到一些elf
可执行文件,如下图:
4. 将 userapps
下的 root
目录复制到 env\tools\fatdisk
目录下,如下图:
5. 修改 env\tools\fatdisk
目录下 fatdisk.xml
文件为下面的内容:
<?xml version="1.0" encoding="UTF-8"?>
<fatdisk>
<disk_size>65536</disk_size>
<sector_size>512</sector_size>
<root_dir>root</root_dir>
<output>sd.bin</output>
<strip>0</strip>
</fatdisk>
- 在
env
目录下双击运行env.exe
,然后定位到env\tools\fatdisk
目录,输入命令fatdisk
运行,就会在当前目录下生成sd.bin
文件:
- 将新生成的
sd.bin
剪切到userapps\prebuilt\qemu-vexpress-a9
目录:
注意:如果是仿真
riscv64
平台,需要将新生成的sd.bin
剪切到userapps\prebuilt\qemu-virt64-riscv
目录
8. 将env
工具定位到userapps\prebuilt\qemu-vexpress-a9
目录,然后执行./qemu-nographic.bat
运行arm
虚拟机,然后在arm
虚拟机内运行hello.elf
程序,如图:
注意:如果是仿真
riscv64
平台,需要将env
工具定位到userapps\prebuilt\qemu-virt64-riscv
目录
编译rt-thread smart
- 打开
env
定位到usarapps
,运行smart-env.bat arm
配置arm
平台的交叉编译工具路径:
注意:如果需要编译riscv64架构的内核,运行
smart-env.bat riscv64
2. 将env
定位到rt-thread\bsp\qemu-vexpress-a9
,然后执行menuconfig
命令配置rt-thread
开启smart
内核。
注意:如果需要编译riscv64架构的内核,需要将
env
定位到rt-thread\bsp\qemu-virt64-riscv
3. 在env
中执行scons
编译rt-thread
内核,编译完成后将产生rtthread.bin,如下图:
4. 将上面的rtthread.bin
剪切到userapps\prebuilt\qemu-vexpress-a9
,并将env定位到userapps\prebuilt\qemu-vexpress-a9
,然后运行qemu-nographic.bat
,如下图:
注意:如果需要编译riscv64架构的内核,将以上路径换成
userapps\prebuilt\qemu-virt64-riscv