2.4. 编译
ZX-RTT SDK 采用 scons 命令编译
2.4.1. 编译选项介绍
常用选项 |
说明 |
---|---|
–list-def |
列举所有板卡配置 |
–apply-def=APPLY_DEFCONFIG |
应用某个板卡配置 |
–save-def |
保存当前板卡默认配置 |
–info |
显示当前工程信息 |
–distclean |
清除工具链和输出目录 |
–target=TARGET |
生成目标工程,例如: eclipse/eclipse_sdk |
–genconfig |
通过 rtconfig.h 生成 .config |
–useconfig=USECONFIG |
通过配置文件生成 rtconfig.h |
–verbose |
编译过程中打印详细信息 |
–menuconfig |
进入 menuconfig 菜单,对 SDK 进行配置 |
2.4.2. 编译操作
查看 SDK 支持板卡
解压 SDK 之后,输入 scons --list-def
查看当前版本支持的板卡配置, 效果如下:
> scons --list-def
scons: Reading SConscript files ...
Built-in configs:
0. ZX6D75_bootloader_defconfig - Build for ZX6D75_bootloader
1. ZX6D75_rt-thread_defconfig - Build for ZX6D75_rt-thread
2. ZXM3C7D00_bootloader_defconfig - Build for ZXM3C7D00_bootloader
3. ZXM3C7D00_rt-thread_defconfig - Build for ZXM3C7D00_rt-thread
4. ZXM3C7D00_bootloader_defconfig - Build for ZXM3C7D00_bootloader
5. ZXM3C7D00_rt-thread_defconfig - Build for ZXM3C7D00_rt-thread
6. ZX9D35N_bootloader_defconfig - Build for ZX9D35N_bootloader
7. ZX9D35N_rt-thread_defconfig - Build for ZX9D35N_rt-thread
8. ZX9D35_bootloader_defconfig - Build for ZX9D35_bootloader
9. ZX9D35_rt-thread_defconfig - Build for ZX9D35_rt-thread
选择板卡配置
> scons --apply-def=2
scons: Reading SConscript files ...
Load config from target\configs\ZXM3C7D00_bootloader_defconfig
或
> scons --apply-def=ZXM3C7D00_bootloader_defconfig
scons: Reading SConscript files ...
Load config from target\configs\ZXM3C7D00_bootloader_defconfig
配置参数
执行 scons --menuconfig
,进入配置界面,可根据实际需求进行配置修改
编译
执行 scons
,编译成功后生成镜像文件,打印信息如下:
Creating D:\pro\zx-rtt\output/ZXM3C7D00_rt-thread/images/m3_os.itb ...
Creating D:\pro\zx-rtt\output/ZXM3C7D00_rt-thread/images/bootloader.aic ...
Image header is generated.
Meta data for image components:
Meta for image.updater.spl offset 0x1200 size 0x17b10 (97040)
Meta for image.info offset 0x0 size 0x800 (2048)
Meta for image.target.spl offset 0x19200 size 0x17b10 (97040)
Meta for image.target.os offset 0x31200 size 0xbd24c (774732)
Meta for image.target.rodata offset 0xeea00 size 0xa62000 (10887168)
Packing file data:
bootloader.aic
bootloader.aic
m3_os.itb
data.fatfs
Image file is generated: D:\pro\zx-rtt\output/ZXM3C7D00_rt-thread/images/m3_ZXM3C7D00_v1.0.0.img
ZX-RTT is built successfully
scons: done building targets.
2.4.3. 生成目录
output 目录是编译后生成在 SDK 根目录下的文件,包含各个配置编译生成的目录,
例如上文编译后生成的 ZXM3C7D00_rt-thread
目录,其内部结构如下:
zx-rtt/output$ tree -L 2
.
├── ZXM3C7D00_rt-thread
│ ├── application
│ ├── bsp
│ ├── images
│ ├── kernel
│ ├── libs
│ ├── packages
│ └── target
application:存放编译过程中,
$SDK/application
源码目录生成的*.o
文件;bsp: 存放编译过程中,
$SDK/bsp
源码目录生成的*.o
文件,包括驱动模块、外设驱动等;images: 编译生成的镜像文件、函数符号表等文件;
kernel: 存放 zx-rtt 操作系统内核模块编译生成的
*.o
文件;libs:
$SDK/application
目录里或用户自定义生成的库文件存放于此目录;packages: 编译后
$SDK/packages
目录后,生成的*.o
文件;主要包括zx
和third-party
两部分;target: 针对选择的板卡,生成的
board.o
、pinmux.o
和sys_clk.o
;