Ameba SDK

GitHub

finger_icon IoT SDK

概述

SDK由以下四部分组成:

  • project

  • component

  • tools

  • doc

SDK
 ├── amebaxxx_gcc_project        用于配置、编译生成固件,包含Makefile、ld、utils、library等
 ├── component                   FreeRTOS、SoC、mbed API、Wi-Fi、network等组件
 ├── tools                       工具
 └── doc                         文档

project

项目名为 amebadplus_gcc_project,包含以下内容:

条目

描述

Makefile

自动编译的脚本工具

menuconfig

用于对项目进行配置

project_km4

KM4 项目文件

project_km0

KM0 项目文件

utils

J-Link 脚本,用于连接CPU并调试

备注

  • project_xx/inc/FreeRTOSConfig.h:用于配置 FreeRTOS

  • project_xx/inc/platform_autoconf.h:为 make menuconfig 自动生成

  • project_xx/inc/build_info.h:一些编译信息,如版本信息等

component

条目

描述

at_cmd

AT 命令

audio

audio codec 驱动,包含:alc5616/alc5640/alc5651/alc5660/alc5679/alc5680/sgtl5000

bluetooth

BT 相关的源代码和 library

example

应用示例,包含:audio/network/ota/usb/…

file_system

文件系统,包含:fatfs/littlefs/ftl/kv/vfs…

lwip

LWIP APIs 和源代码

network

  • cJSON

  • coap

  • dhcp

  • http2

  • httpc

  • httpd

  • mDNS

  • mqtt

  • ping

  • iperf

  • sntp

  • websocket

  • xml

os

FreeRTOS 源代码

soc

  • app:monitor 和 shell

  • bootloader

  • cmsis:Arm 头文件,包含 Arm CPU 寄存器以及相关操作API

  • cmsis-dsp:Arm CMSIS-DSP 源代码

  • fwlib:底层驱动程序,比如:Audio Codec/SPORTS/UART/I2C/SPI/Timer/PWM …

  • img3:image3(可能没有)

  • hal:mbed APIs 源代码及头文件

  • misc:misc 文件,比如 crashdump/ota/pmu …

  • swlib:被ROM支持的standard software 库函数,比如:_memcpy/_memcmp …

ssl

mbed TLS

utils

IPC:多核之间通信

wifi

  • Wi-Fi API

  • Wi-Fi promisc API

  • Wi-Fi 快速连线(重置后)

tools

条目

描述

TraceTool

用于打印日志和发送指令

ImageTool

用于下载固件

DownloadServer

基于socket的 OTA server 程序

DownloadServer (HTTP)

基于HTTP的 OTA server 程序

iperf

用于Wi-Fi吞吐量测试

littlefs

littlefs 文件系统生成

关键头文件

条目

描述

位置

basic_types.h

  • SUCCESS/FAIL

  • TRUE/FALSE

  • ENABLE/DISABLE

  • ON/OFF

  • NULL

  • u8/u16/u32/u64

  • BOOL

  • BIT x

component/soc/amebaxxx/fwlib/include

section_config.h

链接脚本中各种Section的定义:

  • BOOT_RAM_DATA_SECTION

  • IMAGE2_RAM_TEXT_SECTION

ameba_soc.h

提供底层驱动的Raw API(推荐使用)

相对于mbed API,Raw API提供更灵活丰富和高效的硬件配置接口

mbed API headers

基于Raw API的高级封装接口,提供的功能相对单一

component/soc/amebaxxx/hal