工程开发

本章节主要介绍基于 WQ SDK 的工程开发,包括工程创建、工程配置、代码编译、固件烧录等操作。

WQ SDK

WQ SDK 软件包代码目录如下所示:

WQSDK
   ├── application                              //样例应用目录结构(参考用)
   ├── target_a                                 //样例工程 targe_a
   │   ├── acore                                //acore 应用代码目录
   │   │   ├── app.c                            //acore 应用代码
   │   │   ├── app.h
   │   │   ├── components                       //acore 组件代码
   │   │   ├── Kconfig                          //acore 配置选项
   │   │   └── SConscript                       //acore 构建脚本
   │   ├── bcore                                //bcore 应用代码目录
   │   │   ├── app.c
   │   │   ├── app.h
   │   │   ├── Kconfig
   │   │   └── SConscript
   │   ├── dcore                                //dcore 应用代码目录
   │   │   ├── app.c
   │   │   ├── app.h
   │   │   └── SConscript
   │   ├── build                                //target_a 编译生成文件目录
   │   │   ├── acore                            //acore 编译生成文件目录
   │   │   ├── bcore                            //bcore 编译生成文件目录
   │   │   ├── dbglog_table.txt
   │   │   ├── dcore                            //dcore 编译生成文件目录
   │   │   ├── target_a.wpk                     //target_a 固件
   │   │   └── memory_config.json               //image 结构
   │   ├── flash_layout.h                       //flash 区域划分
   │   ├── SConstruct                           //构建文件
   │   └── defconfig                            //默认工程配置文件
   ├── build                                    //build 脚本
   ├── chipset                                  //芯片级代码
   ├── components                               //SDK 组件
   ├── docs                                     //说明文档
   ├── examples                                 //样例工程、测试代码
   ├── driver                                   //驱动代码
   ├── os                                       //操作系统代码
   ├── pre-project                              //配置文件
   └── tools                                    //工具

工程创建

为了帮助开发者迅速开发应用程序,WQ SDK 提供样例工程供用户直接用于编译。样例工程存放于路径 <SDK>/examples/

用户也可在 SDK 目录下创建应用工程文件夹。 工程创建步骤如下:

  1. SDK 根目录下创建 <application> 文件夹,用于存放应用代码。

  2. <application> 文件夹下创建 <target_a> 文件夹,用于存放工程代码。

说明

  • <>内文件夹名称为样例工程定义的名称,支持用户自定义。

  • 用户可以在 <application> 文件夹内,自行搭建应用框架,如创建 targetcomponentsdriver 等文件夹。

  1. 参考工程模板,在 <target_a> 文件夹内创建必要的文件。也可以将 SDK/example/ 路径下的工程文件拷贝到 <target_a> 文件夹,作为新建工程。

../_images/3-1_SDK_engineering_construction.png

图 3-1 SDK 目录下创建用户工程


工程配置

切换到工程的各个 core 的目录下,运行 scons --menuconfig 命令进行工程配置。

代码编译

  1. 切换命令行到 target 目录,如 target_a 工程。

cd <SDK>/application/target_a/
  1. target_a 文件夹下执行 scons 编译指令。编译结果示例如:doc:图 3-2 所示。

../_images/Compilation_succeed.png

图 3-2 编译成功

说明

Scons 为 SDK 构建工具,支持多核编译,如:scons -j32。

  1. 编译生成的固件存放于工程目录 target_a 下的 build 文件夹,如 <SDK>/application/target_a/build/<target_name>.wpk