本文基于HD-RK3568-IOT评估板进行验证。
1.RK3568AMPSDK获取
在虚拟机内创建rk356x-amp-sdk目录,后续在该目录下执行命令,在rockchipgit库下载AMPSDK。
2.AMP功能验证
目前在RK3568上分别验证了1linux+3hal、1linux+3rtt、3linux+1hal、3linux+1rtt一共4种模式;4种模式均在原始SDK的基础上进行的修改,然后针对修改分别生成了不同的patch,用户可以根据自己的需求来打上不同的patch
打上patch后,直接在SDK目录使用./build.sh命令编译sdk,编译成功后,将编译生成的img文件烧录到板卡内,可以分别在uart2&uart4上分别看到linux内核和hal或rtt的相关打印;
2.1 1Linux+3RTT串口打印信息
图2.1AMP1Linux+3RTTRTT串口打印
图2.2AMP1Linux+3RTTLinux串口打印
2.2 1Linux+3HAL串口打印信息
图2.3AMP1Linux+3HALLinux串口打印
图2.4AMP1Linux+3HALHAL串口打印
2.3 3Linux+1RTT串口打印信息
图2.53Linux+RTTLinux串口打印
图2.63Linux+1RTTRTT串口打印
2.4 3Linux+1HAL串口打印信息
图2.73Linux+1HALLinux串口打印
图2.83Linux+1HALHAL串口打印
3.SDK编译及AMP配置说明
3.1 HAL编译
在hal/project/rk3568/GCC路径下编译HAL固件,HAL编译命令如下:
cdhal/project/rk3568/GCC
./build.shcpu_id
编译完成后,在hal/project/rk3568/GCC/目录下分别生成hal0.bin、hal1.bin、hal2.bin、hal3.bin。
3.2 RT-Thread编译
在rt-thread/bsp/rockchip/rk3568-32路径下编译32位RT-Thread固件。固件运行的CPU可以通过menuconfig配
置RT_RUN_MEM_BASE指定,默认配置如下,运行在CPU0,请根据项目实际情况进行修改:
rt-thread/bsp/rockchip/rk3568-32/rtconfig.h
#defineRT_RUN_MEM_BASE0x12000000
编译完成后,在rt-thread/bsp/rockchip/rk3568-32目录下生成固件rtthread.bin。
3.3 Kernel编译
Kernel编译命令如下:
cdkernel
makeARCH=arm64rockchip_linux_defconfig
makeARCH=arm64rk3568-evb1-ddr4-v10-linux-amp.img-j16
编译完成后,会在kernel目录下生成boot.img
3.4 U-boot编译
在uboot工程中修改配置文件configs/rk3568_defconfig,增加配置打开AMP功能,打开AMP功能后,使用以下命令进行编译:
cdu-boot
./make.shrk3568
编译完成后,会在u-boot目录下生成rk356x_spl_loader***.bin、uboot.img。
3.5 AMP固件打包
以RK3568为例,在hal工程中修改用于AMP打包的its文件,project/rk3568/Image/路径下有amp_linux.its和amp.its两个文件,跑带有Linux的amp形式时建议使用amp_linux.its配置。每个CPU均可以单独配置所加载的固件、架构、指令集、运行地址、启动延时等参数。
3.6 SDK统一编译与打包
RK3568支持Linux+HAL的AMP混合架构设计,使得不同的CPU可以运行不同的系统,以满足灵活的产品设计需求。该SDK目前默认支持Linux+HAL+HAL+HAL的混合结构模型,其中运行Linux的CPU为主核,其余运行HAL的CPU为从核。具体配置如下:
系统 | CPU | 功能 | 说明 |
Linux | CPU0 | 主核 | 执行Linux系统 |
HAL | CPU1 | 从核 | 执行裸核系统 |
HAL | CPU2 | 从核 | 执行裸核系统 |
HAL | CPU3 | 从核 | 执行裸核系统 |
3.6.1 编译配置
SDK的统一编译配置脚本位于device/rockchip/rk3568/目录下,编译配置脚本内容包括U-Boot、Kernel、HAL、RT-Thread的配置,以及AMP相关的CPU分配,内存分配等配置。用户可以根据需求增加或者修改配置脚本文件,以满足自己的编译需求。目前支持的配置文件如下:
├──BoardConfig-rk3568-evb1-ddr4-v10.mk#EVB开发板对应配置脚本
├──parameter-rk3568-amp.txt#EVB开发板对应parameters文件
├──rk3568_amp.cfg#烧录工具对应的配置文件
└──rk3568_amp_linux.its#AMP打包ITS配置文件
3.6.2 统一编译
统一编译脚本工具支持一键编译及打包U-Boot、Kernel、HAL、RT-Thread、ROOTFS等,并生成对应的Image镜像。首次编译时,需要选择编译配置脚本,如下:
user@host:~/root$./build.shlunch
You'rebuildingonLinux
0.defaultBoardConfig.mk
1.BoardConfig-rk3568-evb1-ddr4-v10.mk
Whichwouldyoulike?[0]:1
配置完成后,执行一键编译指令,如下:
user@host:~/root$./build.sh
编译结果位于rockdev/目录下,如下
rockdev/
├──amp.img#AMP镜像
├──MiniLoaderAll.bin#Loader
├──parameter.txt#分区表信息
├──rootfs.img#根文件系统
├──misc.img#供recovery保存一些升级信息
├──uboot.img#U-boot镜像
└──update.img#完整固件镜像
统一编译脚本工具同时可以支持单独编译所有模块,如U-Boot、Kernel、RT-Thread、HAL等,具体使用方式可以通过help命令来查看:
user@host:~/root$./build.sh--help
-
ARM
+关注
关注
134文章
9087浏览量
367394 -
Linux
+关注
关注
87文章
11294浏览量
209343 -
Amp
+关注
关注
0文章
81浏览量
47155 -
RK3568
+关注
关注
4文章
514浏览量
5034
发布评论请先 登录
相关推荐
评论