概述
在 SDK 中,有两种类型的示例:
应用示例
外设示例
本章介绍两种 SDK 示例的内容,以及如何编译它们。
类型 |
路径 |
描述 |
---|---|---|
应用示例 |
{SDK}\component\example |
xml, ssl, … |
外设示例 |
{SDK}\component\example\peripheral |
ADC, UART, I2C, SPI, Timer, … |
外设示例为外设功能演示程序。大部分外设示例包含以下两种类型,开发者可根据项目需求自由选择。
类型 |
路径 |
描述 |
---|---|---|
mbed |
{SDK}\component\example\peripheral\{peripheral}\mbed |
使用mbed框架API |
raw |
{SDK}\component\example\peripheral\{peripheral}\raw |
使用底层驱动API |
每个示例的文件夹中,包含 c 代码源文件、头文件、 CMakeLists.txt
和 README.md
。请根据 README.md
确认每个示例的详细配置。
备注
所有 Realtek Ameba SoC 共用同一份示例,请参照 README.md
来获取不同 Ameba SoC 的详细配置信息。
README.md
:技术说明文档,包括:示例描述
硬件配置
软件配置
预期行为
支持的 IC
示例的入口函数是 app_example()
,每个示例都有自己的 app_example()
。
位于 {SDK}\amebaxxx_gcc_project\project_xxx\src
路径下的 main.c
文件中的 app_example()
,是被 _WEAK
修饰的,当编译示例时,示例文件中的 app_example()
被标记为强符号, main.c
文件中的 app_example()
会被忽略。
_WEAK void app_example(void)
{
}
// default main
int main(void)
{
...
app_example();
...
/* enable schedule, start kernel */
vTaskStartSchedule();
}
示例默认运行在 AP 上。运行步骤如下:
阅读示例目录下的
README.md
文件,确认软硬件配置要求,如果用户需要对项目进行配置,可执行./menuconfig.py -f /.../prj.conf
进行配置,prj.conf 介绍见 conf 文件介绍。在终端中执行:./menuconfig.py -f ../component/example/.../prj.conf
在编译时添加编译选项
./build.py -a {示例文件夹名}
,将{示例文件夹名}
替换为对应的示例名称,{示例文件夹名}
的路径包含到CMakeLists.txt
的上一级目录。
应用示例
例如:如果想编译 XML 示例并启动 XML 示例线程,步骤如下:
根据
{SDK}\component\example\xml
目录下的README.md
文件,确认软硬件配置。SDK └── component FreeRTOS、SoC、mbed API、Wi-Fi、network 等组件 ├── ... └── example 应用示例 ├── peripheral 应用使用的所有外设驱动和模块代码 ├── ssl ├── storage ├── ... └── xml ├── app_example.c ├── CMakeLists.txt ├── example_xml.c ├── example_xml.h └── README.md
在终端中执行:
./build.py -a xml
外设示例
例如:如果想编译 peripheral/raw/I2C/raw_i2c_dma_mode 示例并启动 raw_i2c_dma_mode 示例线程,步骤如下:
根据
{SDK}\component\example\xml\peripheral\raw\I2C\raw_i2c_dma_mode
目录下的README.md
文件,确认软硬件配置。SDK └── component FreeRTOS、SoC、mbed API、Wi-Fi、network 等组件 ├── ... └── example 应用示例 ├── ... ├── peripheral 应用使用的所有外设驱动和模块代码 │ ├── mbed │ └── raw │ ├── ... │ └── I2C │ ├── ... │ └── raw_i2c_dma_mode │ ├── app_example.c │ ├── CMakeLists.txt │ ├── example_raw_i2c_dma_mode.c │ ├── example_i2c_ext.h │ └── README.md ├── ssl ├── storage └── xml
在终端中执行:
./build.py -a raw_i2c_dma_mode