下图是RK2108的芯片架构图,这个MCU内含400Mhz的ARM-M4F和600Mhz 的HiFi3 DSP,另外还有1MB的内部SRAM,和512KB的D-TCM.
系统:RT-Thread 3.1.2
UI 框架:LittlevGL
最新SDK版本:RK2108_RT-Thead_SDK_Release_V1.2.0_20210406
SDK 下载地址:
repo init --repo-url ssh://git@www.rockchip.com.cn/repo/rk/tools/repo -u
ssh://git@www.rockchip.com.cn/rtos/rt-thread/rk/platform/release/manifests -b
master -m rk2108_release.xml
.repo/repo/repo sync
通过RKDocs/RK2108_RT-Thread_Release_Note.txt 查看当前 SDK 的版本。
SDK主要目录:
├── applications # Rockchip应用demo源码
├── AUTHORS
├── bsp # 所有芯片相关代码
│ ├── rockchip
│ │ ├── common
│ │ │ ├── drivers # Rockchip OS适配层通用驱动
│ │ │ ├── hal # Rockchip HAL(硬件抽象层)实现
│ │ │ └── tests # Rockchip 驱动测试代码
│ │ ├── rk2108 # RK2108 主目录
│ │ │ ├── board # 板级配置
│ │ │ ├── build # 编译主目录,存放中间文件
│ │ │ ├── build.sh # RK2108 编译脚本
│ │ │ ├── drivers # RK2108 私有驱动目录
│ │ │ ├── dsp_fw # 存放 dsp 固件
│ │ │ ├── Image # 存放固件
│ │ │ ├── tests # RK2108 私有测试代码
│ │ │ ├── start # 启动相关代码
│ │ └── tools # Rockchip 通用工具
├── ChangeLog.md
├── components # 系统各个组件,包括文件系统,shell和框架层等驱动
│ ├── hifi3
│ │ └── rkdsp # DSP工程目录,使用方法请参考文档
<SDK>/RKDocs/develop/Rockchip_Developer_Guide_RTOS_DSP_CN.pdf
├── documentation # RT-Thread官方文档
├── examples # RT-Thread例子程序和测试代码
├── include # RT-Thread官方头文件目录
├── Kconfig
├── libcpu
├── LICENSE
├── README.md
├── README_zh.md
├── RKDocs # Rockchip 文档
├── src # RT-Thread内核源码
├── third_party # Rockchip增加的第三方代码的目录
└── tools # RT-Thread官方工具目录,包括menuconfig和编译脚本
编译环境搭建:
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get update
sudo apt-get install gcc-arm-embedded scons clang-format astyle libncurses5-
dev build-essential python-configparser
如果是ubuntu 20.04环境,现在还没有可用的源,这一步会出错 gcc-arm-embedded 会安装不上,除此之外其他几个工具都应该能正常安装。
改成手动下载toolchain,并设置环境变量
wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-
arm-none-eabi-7-2018-q2-update-linux.tar.bz2
tar xvf gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
export RTT_EXEC_PATH=/path/to/toolchain/gcc-arm-none-eabi-7-2018-q2-
update/bin
可以把export这句添加到bsp/rockchip/rk2108/build.sh 的开头位置,注意要修改为编译链的绝对地址。
编译方法:
cd bsp/rockchip/rk2108
cp board/开发板名称/defconfig .config
scons --menuconfig //修改参加编译的模块开关,保存并退出后会生成rtconfig.h文件,此文件参与最终的编译。
./build.sh
注意,这里的.config是给menuconfig用的,rtconfig.h才是最终参与编译的文件。要注意这2个文件是否有不一致的情况,scons --menuconfig 按保存,可以生成新的rtconfig.h文件。
生成的固件是:
bsp/rockchip/rk2108/Image/Firmware.img
这个文件集成了rk2108_psram.bin,rk2108_loader.bin和rtthread.img 这3个固件。rk2108_psram.bin中会探测和初始化PSRAM,接着会运行loader引导程序,最终把rtthread固件加载起来。
固件烧录:
打开 bsp/rockchip/tools 目录下的 Rockchip_Develop_Tool_v2.63,如首次使用此工具,需要安装它目录下的驱动:DriverAssitant_v4.91。
打开升级工具:
第1项“LoaderToDDR”选择 bsp/rockchip/rk2108/Image/rk2108_db_loader.bin。
第2项“Firmware”选择 bsp/rockchip/rk2108/Image/Firmware.img。
rk2108_db_loader.bin 这个文件是一个“临时”的loader文件,它只保存在sram中,机器掉电后会丢失,它的作用是与PC通讯,接收固件并写入到flash中。
Linux 系统下可以使用如下脚本完成固件烧录:bsp/rockchip/rk2108/update_fimeware.sh
它实际是调用以下命令完成烧录:
#!/bin/sh
../tools/upgrade_tool db Image/rk2108_db_loader.bin
../tools/upgrade_tool wl 0 Image/Firmware.img
../tools/upgrade_tool rd
如何进入到烧录模式
在 USB 口连着电脑的前提下,按住 MASROM 键不松开,短按 RESET 键,让板子进入到
MaskRom 模式后松开 MASROM 键。未烧录过的固件的设备,上电后会自动进入到 MaskRom 模
式。
如果板子能正常启动,可以通过敲命令:reboot loader进入到升级模式,需要打开config(RT_USING_RESET [=y])
RK2108 支持串口调试。不同的硬件设备,其串口配置也会有所不同。
串口通信配置信息如下:
波特率:115200
数据位:8
停止位:1
奇偶校验:none
流控:none