跳转至

8303开发环境搭建*

Windows下环境搭建*

1.1 SDK 获取*

apus-pico是托管在 GtiLab 私有仓库上,请阅读 注册 GitLab 账号 并将 GitLab 账号给我们的销售经理,由我司项目经理对该账号进行代码释放。

gitlab地址:https://gitlab.com/nationalchip/apus-pico

  • 进入GitLab项目,如图复制项目的 git 地址:

  • 获取代码:
$ git clone git@gitlab.com:nationalchip/apus-pico.git

1.2 编译和烧录*

工具链下载地址:http://yun.nationalchip.com:10000/l/OFidDc

串口烧录工具下载地址:http://yun.nationalchip.com:10000/l/9Frl3p

编译和烧录细节,参考gitlab上的说明文件: /docs/GX8303开发环境上手指南/GX8303开发环境上手指南.md

可以使用 /example/ble_peripheral/simple_ble_uart 例子作为入门参考。

1.3 配套开发板*

可以使用我们提供的 USB Dongle 开发板 GX8303A_USBDongle 进行开发调试:

1.4 GX8303 固件尺寸优化*

GX8303 共有 64KB ROM, 8KB SRAM 和 16KB OTP,没有 NOR Flash 或其他 RW 存储设备,烧录一次程序后就不能再烧了。

因此,调试时只能选择将程序全部链接到 SRAM 区域运行,使用 UART-RUN 方式来调试。 这需要开发尽量将程序做好模块化,调试某个模块时,关闭其他模块模块使能宏,并确保单一模块尺寸能够放进 SRAM 中。

完整程序集成,SRAM 放不下了,就要编译为 XIP 的方式,烧录到芯片调试验证,需要定制的socket板子来配合。

Memory Layout

/* ram.ld */ 
MEMORY 
{ 
    SRAM : ORIGIN = 0x1FFF06C0 , LENGTH = 0x1940   /* SRAM  8KB */ 
}
/* xip.ld */ 
MEMORY 
{ 
    SRAM : ORIGIN = 0x1FFF06C0 , LENGTH = 0x1940   /* SRAM  8KB */ 
    XIPROM : ORIGIN = 0x1FFF8100 , LENGTH = 0x3F00   /* XIPROM  16KB */ 
}

GX8303 SDK 中的链接脚本定义了 RAM 和 XIP 两种程序加载方式,SRAM 只有 8K,起始地址为 0x1FFF0000,其中 SDK 保留了 一部分,用户开发所能使用的区域为 0x1FFF06C0 ~ 0x1FFF2000,共 6464 字节。

如果需要将固件加载到 SRAM 运行,需要保证 代码段+常量+带初值变量+无初值变量 ≤ 6464 字节

ELF 分析

以 SDK 中 simple_ble_peripheral 为例,使用 readelf 或查看 map 文件,分析符号表;

D:\Program Files\CDKRepo\Toolchain\CKV2ElfMinilib\V3.10.31\R\cskyelfabiv2\bin>readelf.exe C:\Users\zhuhy\Desktop\sbp.elf -s > C:\Users\zhuhy\Desktop\sbp_sec.txt

将空格替换为,后修改为 csv 格式打开,对 Size 进行降序排序,方便针对较大占用的符号进行分析裁剪。