首页 > 其他分享 >RK3568 AMP测试验证说明

RK3568 AMP测试验证说明

时间:2023-12-12 10:35:16浏览次数:36  
标签:Linux HAL 验证 RK3568 串口 编译 rk3568 AMP

本文基于HD-RK3568-IOT评估板进行验证。

RK3568评估板

1. RK3568 AMP SDK获取

在虚拟机内创建rk356x-amp-sdk目录,后续在该目录下执行命令,在rockchip git库下载AMP SDK。

 

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.png

图2.1 AMP 1Linux+3RTT RTT串口打印

3.png

图2.2 AMP 1Linux+3RTT Linux串口打印

 

 

2.2       1Linux+3HAL串口打印信息

4.png

 

图2.3 AMP 1Linux+3HAL Linux串口打印

 

 

5.png

图2.4 AMP 1Linux+3HAL HAL串口打印

2.3       3Linux+1RTT串口打印信息

6.png

 

 

图2.5 3Linux+RTT Linux串口打印

 

7.png

 

图2.6 3Linux+1RTT RTT串口打印

2.4       3Linux+1HAL串口打印信息

 

8.png

图2.7 3Linux+1HAL Linux串口打印

9.png

图2.8 3Linux+1HAL HAL串口打印

 

3. SDK编译及AMP配置说明

3.1       HAL 编译

在hal/project/rk3568/GCC路径下编译HAL固件,HAL编译命令如下:

cdhal/project/rk3568/GCC

./build.shcpu_id <cpu_id: 0~3 or all>

编译完成后,在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_BASE 0x12000000

编译完成后,在rt-thread/bsp/rockchip/rk3568-32目录下生成固件rtthread.bin。

3.3       Kernel编译

Kernel编译命令如下:

cdkernel

makeARCH=arm64 rockchip_linux_defconfig

makeARCH=arm64 rk3568-evb1-ddr4-v10-linux-amp.img -j16

编译完成后,会在kernel目录下生成boot.img

3.4       U-boot编译

在uboot工程中修改配置文件configs/rk3568_defconfig,增加配置打开AMP功能,打开AMP功能后,使用以下命令进行编译:

cd u-boot

./make.sh rk3568

编译完成后,会在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.sh lunch

You're building on Linux

Lunchmenu...pick a combo:

0.default BoardConfig.mk

1. BoardConfig-rk3568-evb1-ddr4-v10.mk

Whichwould you like? [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

 

标签:Linux,HAL,验证,RK3568,串口,编译,rk3568,AMP
From: https://www.cnblogs.com/vanxoak/p/17896220.html

相关文章

  • JWT Bearer Token 验证
      ASP.NETCoreWebAPI之Token验证:https://blog.csdn.net/fengershishe/article/details/131388577设置token有效时间:1.在生成token时用IMemoryCache缓存,以token值为key,value为空,添加相对缓存时间。2.添加TokenExtractorMiddleware,在Program添加启动中间件:app.UseMiddlewa......
  • 利用率夹紧(Utilization Clamping) 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/scheduler/sched-util-clamp.html利用率夹紧1.简介利用率夹紧,也称为utilclamp或uclamp,是一种调度器功能,允许用户空间帮助管理任务的性能需求。它是在v5.3版本中引入的。CGroup支持在v5.4中合并。Uclamp是一种提示机制,允许调度器了解......
  • 验证数据输入的合法性
    我们软件开发过程中,很多时候都需要用户进行数据录入。录入以后,我们需要对数据的合法性进行判断,每一个需要判断的字段都需要一个判断条件,冗余代码较多。一直觉得这块比较繁琐,特别是需要输入和验证的字段比较多的时候。之前尝试用过FluentValidation和Validation,貌似都跟期望的有......
  • 什么是LAMP
    LAMPLamp是一种互联网开发架构,全称为LAMPStack(Linux、Apache、MySQL、PHP)。它是一种流行的Web开发环境,用于构建动态网站和Web应用程序。LAMPStack由四个开源软件组成:Linux操作系统、ApacheWeb服务器、MySQL数据库管理系统和PHP编程语言。Linux:作为操作系统,Linux提供了一个稳......
  • Dependency injection framework -- Decoupled packages example (multiple container
    Dependencyinjectionframeworkhttps://python-dependency-injector.ets-labs.org/index.htmlDependencyInjectorisadependencyinjectionframeworkforPython.Ithelpsimplementingthedependencyinjectionprinciple.KeyfeaturesoftheDependencyInjecto......
  • bbs 注册登录 验证
    注册页面 -用户名-密码-确认密码-邮箱-手机号-头像#form组件可以帮助我们 1快速生成前端页面2数据校验3错误处理#如何使用 -1写一个类,继承forms.Form-2在类中写属性和方法 -属性:要跟咱们要校验或自动生成页面的字段一一对应......
  • 运行时锁定正确性验证器 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/locking/lockdep-design.html锁类该验证器操作的基本对象是“锁”的“类”。“锁”的“类”是一组逻辑上相同的锁,即使这些锁可能有多个(可能有成千上万个)实例化。例如,inode结构中的锁是一个类,而每个inode都有自己的该锁类的实例化。验......
  • 宝塔面板申请ssl证书验证失败,域名解析错误或验证URL无法被访
    一、问题描述使用宝塔面板建立站点,申请let‘sEncrypt免费ssl证书时提示验证失败,域名解析错误或验证URL无法被访!网上找了各种方案检查防火墙配置,安全组配置,域名解析,nginx代理等等乱七八糟的配置检查来检查去发现都没问题,后来我注意到,这个错误提示是去访问本站点内的一个文......
  • A sample of JSON RPC service
    ThisisasampleserviceprogramwhichshowhowtoimplementaJSONRPC.TheRPCserviceincludedtwofunctionswhichusedforRSAsignandverify.Ifyouwanttobuildthesourcecode,youneedinstallorbuildthreeopensorucelibraries:Libevent,cJSON......
  • SpringBoot项目之Kaptcha实现登录验证码
    一、pom.xml加载该依赖<dependency><groupId>com.github.axet</groupId><artifactId>kaptcha</artifactId><version>0.0.9</version></dependency>二、RestFul风格,在这里写一个调用验证码的接口:@GetMapping(value="/captcha.......