IC:

概述

在 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.txtREADME.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 上。运行步骤如下:

  1. 阅读示例目录下的 README.md 文件,确认软硬件配置要求,如果用户需要对项目进行配置,可执行 ./menuconfig.py -f /.../prj.conf 进行配置,prj.conf 介绍见 conf 文件介绍。在终端中执行:

    ./menuconfig.py -f ../component/example/.../prj.conf
    
  2. 在编译时添加编译选项 ./build.py -a {示例文件夹名},将 {示例文件夹名} 替换为对应的示例名称, {示例文件夹名} 的路径包含到 CMakeLists.txt 的上一级目录。

应用示例

例如:如果想编译 XML 示例并启动 XML 示例线程,步骤如下:

  1. 根据 {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
    
  2. 在终端中执行:

    ./build.py -a xml
    

外设示例

例如:如果想编译 peripheral/raw/I2C/raw_i2c_dma_mode 示例并启动 raw_i2c_dma_mode 示例线程,步骤如下:

  1. 根据 {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
    
  2. 在终端中执行:

    ./build.py -a raw_i2c_dma_mode