基于瑞芯微RK3562 四核 ARM Cortex-A53 + 单核 ARM Cortex-M0工业评估板——Linux应用开发手册
发布时间:2025-4-16 16:16
发布者:Tronlong--
前 言 本文主要介绍TL3562-MiniEVM评估板的AMP(Asymmetric Multi-processing)开发案例,适用开发环境如下: Windows开发环境:Windows 7 64bit、Windows 10 64bit Linux开发环境:VMware16.2.5、Ubuntu20.04.6 64bit U-Boot:U-Boot-2017.09 Kernel:Linux-5.10.209 LinuxSDK:rk3562-ubuntu20.04-sdk-[版本号](基于rk3562_linux_release_v1.2.0) 工程调试工具:OpenOCD、Eclipse 评估板支持Linux(Kernel-5.10.209)、Baremetal(HAL)、RTOS(RT-Thread)组合的AMP混合架构设计,满足如电力物联网、电网继电保护、电力系统安全控制、工业自动化的需求。 我司提供的AMP-SDK开发包基于官方的rk3562_linux_release_v1.2.0进行拆解。AMP-SDK开发包与AMP案例位于“4-软件资料\Demo\amp-demos\”目录下,具体说明如下所示。 备注: (1) a53-3_baremetal为Cortex-A53(CPU3)核心Baremetal工程文件; (2) a53-3_rtos为Cortex-A53(CPU3)核心RT-Thread(RTOS)工程文件; (3) m0_baremetal为Cortex-M0(MCU)核心Baremetal工程文件; (4) m0_rtos为Cortex-M0(MCU)核心RT-Thread(RTOS)工程文件; (5) a53-3_baremetal、a53-3_rtos、m0_baremetal、m0_rtos工程均可单独与Linux端通信。 ![]() ![]() HAL(Hardware Abstraction Layer,硬件抽象层)是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。瑞芯微的Standalone系统是一个简单的、low-level的软件层,内部实现基于HAL,提供对基本处理器特性(如Cache、Interrupts和Exceptions)的访问,以及对基础外设(如标准输入和输出、UART、CAN、GMAC、I2C等)的驱动支持。 RT-Thread(Real Time-Thread)是一款国产嵌入式开源实时多线程操作系统,由RT-Thread工作室的专业开发人员开发、维护。RT-Thread不仅仅是一款高效、稳定的实时核心,也是一套面向嵌入式系统的软件平台,覆盖了全抢占的实时操作系统内核。 评估板简介 创龙科技 TL3562-MiniEVM 是一款基于瑞芯微 RK3562J/RK3562 处理器设计的四核 ARM Cortex-A53 + 单核 ARM Cortex-M0 国产工业评估板,主频高达 2.0GHz。评估板由核心板和评估底板组成,核心板 CPU、ROM、RAM、电源、晶振等所有元器件均采用国产工业级方案,国产化率 100%,评估底板大部分元器件亦采用国产工业级方案,国产化率约 99%(按元器件数量占比,数据仅供参考)。核心板经过专业的 PCB Layout 和高低温测试验证,支持选配屏蔽罩,质量稳定可靠,可满足各种工业应用环境要求。 评估板引出 2 路 Ethernet、2 路 USB、Micro SD、UART 等通信接口,同时引出 2 路 M IPI CSI、LVDS LCD、MIPI LCD、HDMI OUT、MIC IN、SPK OUT、HP OUT 多媒体接口,支 持 1080P@60fps H.264 视频编码、4K@30fps H.265 视频解码。 评估板体积小巧,尺寸为 85x130mm,可作为卡片式电脑使用,且便于产品集成,方便用户快速进行产品方案评估与技术预研。 ![]() 评估板硬件资源图解 1 ![]() 评估板硬件资源图解 2 开发环境搭建 本章节主要介绍基于Linux + RT-Thread(RTOS)、Baremetal的AMP案例的开发环境搭建。 打开Ubuntu,在任意目录下执行如下命令,安装AMP案例编译所需的相关工具。 Host# sudo apt update ![]() 图 1 Host# sudo apt install scons![]() 图 2 请将位于产品资料“4-软件资料\Demo\amp-demos\AMP-SDK\”目录下的AMP-SDK开发包AMP-SDK-[版本号].tar.gz拷贝至Ubuntu的RK3562工作目录下,版本号请以实际情况为准。执行如下命令,将AMP-SDK开发包解压至RK3562工作目录。hal目录用于存放裸机代码,rt-thread目录用于存放rt-thread代码。 Host# tar -zxf amp-sdk-v1.0.tar.gz ![]() 图 3 至此,AMP开发环境搭建完成。 工程编译与固化 评估板支持Cortex-M0(MCU)、Cortex-A53(CPU3)核心运行Baremetal(HAL)、RTOS(RT-Thread)程序。本章节以led_flash案例为例,演示基于Linux + RT-Thread(RTOS)、Baremetal的AMP开发案例导入和编译方法。 工程导入 Baremetal工程导入 (1) Cortex-M0(MCU)核心Baremetal工程导入 请将产品资料“4-软件资料\Demo\amp-demos\led_flash\m0_baremetal\project\”目录下的整个工程源码文件夹led_flash拷贝至AMP-SDK源码目录"hal/project/"下,如下图所示。 ![]() 图 4 m0_baremetal (2) Cortex-A53(CPU3)核心Baremetal工程导入 请将产品资料“4-软件资料\Demo\amp-demos\led_flash\a53-3_baremetal\project\”目录下的整个工程源码文件夹led_flash拷贝至AMP-SDK源码目录"hal/project/"下,如下图所示。 ![]() 图 5 a53-3_baremetal RT-Thread(RTOS)工程导入 (1) Cortex-M0(MCU)核心RT-Thread(RTOS)工程导入 请将产品资料“4-软件资料\Demo\amp-demos\led_flash\m0_rtos\project\”目录下的整个工程源码文件夹led_flash拷贝至AMP-SDK源码目录"rtos/bsp/rockchip/"下,如下图所示。 ![]() 图 6 m0_rtos (2) Cortex-A53(CPU3)核心RT-Thread(RTOS)工程导入 请将产品资料“4-软件资料\Demo\amp-demos\led_flash\a53-3_rtos\project\”目录下的整个工程源码文件夹led_flash拷贝至AMP-SDK源码目录"rtos/bsp/rockchip/"下,如下图所示。 ![]() 图 7 a53-3_rtos 工程编译 Baremetal工程编译 (1) Cortex-M0(MCU)核心Baremetal工程编译 在AMP-SDK目录下,执行如下命令,进入"hal/project/led_flash/GCC/"目录,对Baremetal工程进行编译。 Host# cd hal/project/led_flash/GCC/ Host# make clean Host# make ![]() 图 8 ![]() 图 9 ![]() 图 10 编译完成后,在"hal/project/led_flash/GCC/"目录下生成程序镜像文件TestDemo.bin。 ![]() 图 11 执行如下命令进入led_flash源码目录,将Baremetal程序镜像文件TestDemo.bin制作生成amp.img镜像文件。 备注:不同案例打印信息可能会有所差异,请以实际为准。 Host# cd /home/tronlong/RK3562/amp-sdk-v1.0/hal/project/led_flash/ Host# ./mkimage.sh ![]() 图 12 制作完成后,将会在Image目录下生成Baremetal工程的amp.img镜像文件。 ![]() 图 13 (2) Cortex-A53(CPU3)核心Baremetal工程编译 在AMP-SDK的目录下,执行如下命令,进入"hal/project/led_flash/GCC/"目录,对Baremetal工程进行编译。 Host# cd hal/project/led_flash/GCC/ Host# make clean Host# ./build.sh 3 //编译在Cortex-A53(CPU3)上运行的程序 ![]() 图 14 ![]() 图 15 ![]() 图 16 编译完成后,在"hal/project/led_flash/GCC/"目录下生成程序镜像文件hal3.bin。 ![]() 图 17 执行如下命令进入led_flash源码目录,将Baremetal程序镜像文件hal3.bin制作生成amp.img镜像文件。 备注:不同案例打印信息可能会有所差异,请以实际为准。 Host# cd /home/tronlong/RK3562/amp-sdk-v1.0/hal/project/led_flash Host# ./mkimage.sh ![]() 图 18 制作完成后,将会在Image目录下生成Baremetal工程的amp.img镜像文件。 ![]() 图 19 RT-Thread(RTOS)工程编译 (1) Cortex-M0(MCU)核心RT-Thread(RTOS)工程编译 执行如下命令,进入AMP-SDK下的"rtos/bsp/rockchip/led_flash/"目录,配置交叉编译工具链环境。 Host# cd /home/tronlong/RK3562/amp-sdk-v1.0/rtos/bsp/rockchip/led_flash/ Host# export RTT_EXEC_PATH=/home/tronlong/RK3562/amp-sdk-v1.0/prebuilts/gcc/linux-x86/arm/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux/bin ![]() 图 20 执行如下命令,对RT-Thread(RTOS)工程进行编译。Host# scons -c Host# scons ![]() 图 21 ![]() 图 22 制作完成后,将会在当前目录下生成RT-Thread(RTOS)工程的rtthread.bin程序镜像文件。 ![]() 图 23 执行如下命令,将RT-Thread(RTOS)程序镜像文件rtthread.bin制作生成amp.img镜像文件。 Host# ./mkimage.sh ![]() 图 24 制作完成后,将会在Image目录下生成RT-Thread(RTOS)工程的amp.img镜像文件。 ![]() 图 25 (2) Cortex-A53(CPU3)核心RT-Thread(RTOS)工程编译 执行如下命令,进入AMP-SDK下的"rtos/bsp/rockchip/led_flash/"目录,对RT-Thread(RTOS)工程进行编译。 Host# cd /home/tronlong/RK3562/amp-sdk-v1.0/rtos/bsp/rockchip/led_flash Host# ./build.sh 3 ![]() 图 26 ![]() 图 27 编译完成后,将会在当前目录下生成RT-Thread(RTOS)工程的rtt3.bin程序镜像文件。 ![]() 图 28 执行如下命令,将RT-Thread程序镜像文件rtt3.bin制作生成amp.img镜像文件。 Host# ./mkimage.sh ![]() 图 29 制作完成后,将会在Image目录下生成RT-Thread(RTOS)工程的amp.img镜像文件。 ![]() 图 30 配置文件说明 Cortex-M0(MCU)核心Baremetal/RT-Thread(RTOS)案例的配置文件为amp.its,Cortex-A53(CPU3)核心Baremetal/RT-Thread(RTOS)案例的配置文件为amp_linux.its,此文件均位于Baremetal/RT-Thread(RTOS)案例Image目录下,负责描述打包生成amp.img镜像的配置信息。在U-Boot启动后,读取amp.img并解析amp.img中的配置信息,然后根据配置信息加载Baremetal、RT-Thread(RTOS)程序到指定内存地址,并启动Cortex-M0/Cortex-A53核心运行程序。 (1) amp.its ![]() 图 31 Baremetal/RT-Thread(RTOS)程序配置文件amp.its (2) amp_linux.its ![]() 图 32 Baremetal/RT-Thread(RTOS)程序配置文件amp_linux.its Baremetal/RT-Thread(RTOS)程序配置文件中的参数说明如下表所示: ![]() 本小节以“4-软件资料\Demo\amp-demos\led_flash\m0_baremetal\bin\”目录下的amp.img镜像文件为例,演示将amp.img镜像固化至系统启动卡或eMMC的加载运行方法。案例"m0_rtos\bin\"、"a53-3_baremetal\bin\"、"a53-3_rtos\bin\"目录下的amp.img镜像操作方法类似。 评估板重新上电启动,在U-Boot启动阶段将读取amp.img镜像文件,解析amp.img中的配置信息(配置信息由amp配置文件保存在amp.img),并根据配置信息加载Baremetal、RT-Thread工程至指定内存地址,然后启动指定CPU运行程序。 通过Linux命令行固化 请将待固化的amp.img镜像拷贝至评估板文件系统,执行如下命令将其固化至系统启动卡对应分区。 备注:如需固化至eMMC,请将设备节点修改为"/dev/mmcblk0p8"。 Target# dd if=amp.img of=/dev/mmcblk1p8 conv=fsync Target# sync Target# reboot ![]() 图 33 通过瑞芯微开发工具RKDevTool固化 请确保评估板Micro SD卡槽未插入Micro SD卡,并使用Type-C线将评估板USB2.0 OTG接口连接至PC机USB接口。 备注:本小节操作方法仅支持固化amp.img镜像文件至eMMC,不支持固化至系统启动卡。 (1) 请参考《系统启动卡制作及系统固化》文档安装瑞芯微开发工具RKDevTool。将待固化的amp.img镜像文件拷贝至Windows非中文工作目录下。 (2) 打开瑞芯微开发工具,amp选项选择待固化的amp.img镜像文件存放路径,并勾选对应选项,具体如下图所示。 ![]() 图 34 (3) 将评估板断电,长按USER1(KEY3)按键,再将评估板上电,此时瑞芯微开发工具界面将会出现提示信息“发现一个LOADER设备”,然后松开USER1(KEY3)按键。 ![]() 图 35 (4) 点击“执行”选项,将程序镜像文件amp.img固化至eMMC。 ![]() 图 36 (5) 直至出现如下界面,提示“下载完成”的信息,表示将amp.img镜像文件固化至eMMC成功,此时评估板将自动重启。 ![]() 图 37 通过系统镜像固化 请参考《Ubuntu系统使用手册》拆解update.img系统镜像,将“4-软件资料\Demo\amp-demos\led_flash\m0_baremetal\bin\”目录下的amp.img镜像文件拷贝至Mkimage的"output/Image/"目录下。 ![]() 图 38 执行如下命令,即可在"output/update"目录合成新的update.img镜像。 Host# ./mkimage.sh pack ![]() 图 39 ![]() 图 40 请参考《系统启动卡制作及系统固化》文档,将系统镜像文件固化至Micro SD卡或eMMC。 备注:Linux内核已预留Cortex-M0/Cortex-A53内存,评估板固化amp.img镜像后,在U-Boot启动时Cortex-M0/Cortex-A53将识别此部分内存已被占用,打印以下警告信息,忽略即可。 ![]() 图 41 ![]() 图 42 想了解更多不同案例,可前往创龙科技官网或微信公众号。 |
网友评论