代码结构
目录总览
luban-lite $ tree -L 2
├── application // 存放 APP 入口,helloword 应用的 main 函数
│ ├── baremetal
│ ├── freertos
│ ├── Kconfig
│ └── rt-thread
├── bsp // 存放 BSP 代码,和 RT-Thread 原生的 bsp 目录功能相同
│ ├── artinchip // ArtInChip SoC 内部的 driver、hal 以及最小系统 sys 代码
│ ├── common // 公共头文件
│ ├── peripheral // 一些外设模块的驱动
│ ├── examples_bare // 各模块在裸机环境的示例代码
│ └── examples // 各模块在 RTOS 环境的示例代码
│ ├── test-alarm
│ ├── test-audio
│ ├── test-can
│ ├── test-dma
│ ├── test-qspi
│ ├── test-touch
│ └── test-uart
├── doc // Luban-Lite SDK 的介绍文档
│ ├── luban-lite_driver_development_guid.md // 设备驱动开发指南
│ ├── luban-lite_sdk_design.md // SDK 设计说明
│ ├── luban-lite_user_guid_linux.md // Linux 环境的用户使用说明
│ └── luban-lite_user_guid_windows.md // Windows 环境的用户使用说明
├── win_env.bat // 启动 RT-Thread 的 env 工具,用于 Windows 环境的开发
├── win_cmd.bat // 启动 CMD.exe,用于 Windows 环境的开发
├── kernel // 存放各种 RTOS 内核
│ ├── baremetal
│ ├── common
│ ├── freertos
│ └── rt-thread
├── output // SDK 的编译输出
├── packages // 组件包
│ ├── artinchip // ArtInChip 开发的组件包
│ └── third-party // 第三方的组件包
├── target // 方案(板)级的代码和配置
│ ├── configs // 整个方案的 SDK 配置文件
│ ├── d12x //D12x 开发板配置
│ │ ├── common
│ │ ├── demo68-nand
│ │ ├── demo68-nor
│ │ └── hmi-nor
│ ├── d13x //D13x 开发板配置
│ │ ├── common
│ │ ├── demo88-nand
│ │ ├── demo88-nor
│ │ └── kunlunpi88-nor
│ ├── d12x //D21x 开发板配置
│ │ ├── common
│ │ └── demo128-nand
│ └── g73x //G73x 开发板配置
│ ├── common
│ └── demo100-nor
├── toolchain // 解压后的工具链存放目录
└── tools // 一些工具
├── onestep.sh // ArtInChip 开发的 OneStep 命令行增强工具
└── toolchain // 工具链的压缩包
application
存放应用和各种示例:
├── baremetal //baremetal 裸机
│ ├── bootloader //系统的引导加载程序
│ └── helloworld //系统示例
└── rt-thread
└── helloworld //系统示例
bsp
bsp 目录是 SoC 的核心,封装了该 SoC 的所有接口和驱动:
├── artinchip
│ ├── drv //驱动
│ ├── drv_nare //裸机驱动
│ ├── hal //硬件抽象
│ ├── include
│ ├── SConscript
│ └── sys //最小系统
├── common
│ ├── crc32
│ ├── include
│ ├── partition
│ ├── private_param
│ ├── SConscript
│ └── utils
├── Kconfig
├── examples //模块示例
│ ├── SConscript
│ ├── test-adc
│ ├── test-alarm
│ ├── test-audio
├── peripheral //三方外设驱动封装
│ ├── Kconfig
│ ├── SConscript
│ ├── camera
│ ├── codec
│ ├── touch //触控
│ └── wireless //无线
└── SConscript
doc
遵从 RT-Thread 原始建议使用 Markdown 编写的 SDK 的简单设计和使用文档。
kernel
- baremetal
裸机系统的接口封装
- freertos
FreeRTOS 内核的实现
- rt-thread
RT-Thread 内核的实现
- common
AIC 公共接口的封装
package
组件包,包括 ArtInChip 开发的组件和 三方组件,支持从 RT-Thread 在线下载:
├── artinchip //ArtInChip 开发
│ ├── Kconfig
│ ├── aic-dm-apps
| ├── lvgl-ui
| ├── ota
│ ├── mpp
│ └── SConscript
├── Kconfig
├── SConscript
└── third-party //三方组件
├── bonnie
├── cherryusb
├── cpu_usage
├── Kconfig
├── littlefs
├── lvgl
├── lwip
├── mklittlefs
├── ramdisk
├── SConscript
└── uffs
target
存储方案(开发板)的配置信息:
-
configs
存放某一个方案(开发板)的功能配置信息:
d12x_demo128-nand_baremetal_bootloader_defconfig //bootlaoder 的配置 d12x_demo128-nand_rt-thread_helloworld_defconfig //rt-thread 的配置
config 文件的内容示例:
cat d12x_demo88-nor_rt-thread_helloworld_defconfig CONFIG_SOC_THEAD_SMART=y # CONFIG_QEMU_RUN is not set CONFIG_PRJ_CUSTOM_LDS="" CONFIG_AIC_CHIP_D21X=y CONFIG_CACHE_LINE_SIZE=64 CONFIG_AIC_CMU_DRV=y CONFIG_AIC_CMU_DRV_V10=y CONFIG_AIC_CMU_DRV_VER="10"
-
d12x
存放某一个方案(开发板)的参数配置信息,以代码的方式存在。
├── demo128-nand │ ├── board.c │ ├── include │ ├── Kconfig.board │ ├── pack │ ├── pinmux.c │ ├── SConscript │ └── sys_clk.c
-
Kconfig.board:提供方案的外设选择项
-
pinmux.c:该方案的 pinmux 配置
-
SConscript:该方案目录的编译配置
-
sys_clk.c:该方案的 clk 配置
-
include:该方案特殊的 include 文件,主要是 board.c 的接口
-
pack:该方案在打包固件时的配置,如 ddr,分区等配置信息
-
board.c:该方案的初始化运行接口
-
toolchain
原始为空目录,用于存放解压后的工具链。
tools
该目录用于存放一些常用工具
-
onestep.sh: Linux 上使用的 OneStep 脚本
-
env: 环境搭建和运行需要的三方工具
-
script: 编译和打包固件需要的脚本
-
toolchain: 工具链包
-
Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1-20220906.tar.gz: Linux 工具链
-
Xuantie-900-gcc-elf-newlib-mingw-V2.6.1-20220906.tar.gz: Windows 工具链
-
ReleaseNote.md
该文件记录当前 SDK 版本号及主要更新内容
# V1.0.5 #
## 新增 ##
- 调屏:支持和 AiPQ V1.1.1 工具配合使用
- 新增 LVGL Demo:
- 支持 VSCode 模拟器的工程导入
- 增加压力测试、独立控件、Gif、slide、lv_ffmpeg、DVP 回显等参考实现
...