|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Heaven_1 于 2025-2-28 17:47 编辑
6 i/ _8 f0 V+ q% U. ^6 ~1 j
) t) L& s4 h; I4 S' W: R6 }0 _6 D; n一、RK3562J处理器概述
5 ]9 ]1 ]6 g8 G) FRK3562J处理器是一款高性能、多核心的处理器,采用了独特的异构架构设计。它集成了4个Cortex-A53核心和1个Cortex-M0核心,其中4个Cortex-A53核心运行频率高达1.8GHz,凭借其强大的处理能力,主要负责运行复杂的操作系统任务和各种高性能应用程序,能够高效地处理多任务操作和数据密集型计算,为设备提供卓越的性能表现。而Cortex-M0核心则以200MHz的频率运行,作为一个辅助核心,它运行裸核系统,具有极高的响应速度和低延迟特性,能够快速响应实时性要求较高的任务,如传感器数据采集、电机控制等,确保设备在实时任务处理方面具备出色的稳定性和可靠性。这种独特的架构设计使得RK3562J处理器在兼顾高性能计算的同时,还能满足对实时性要求较高的应用场景,广泛适用于智能物联网设备、工业自动化控制以及嵌入式系统等多种领域,为用户带来高效、稳定且灵活的解决方案。) t: l# ` w' O2 ]6 w- @; c
( Z. B/ w; K9 r$ l- \
L* I. x) s+ f7 u# U0 F* L' Q4 k
# b' n+ Y6 u ]5 Y* F: k% d. Z
, K( M/ m" ~% M; e0 Z
[backcolor=rgba(0, 0, 0, 0.1)]
5 J, l% z D9 c. c& l3 V! G[backcolor=rgba(0, 0, 0, 0.1)]
4 i& {' g% l6 Q* x1 v% C" k! M0 M9 l+ w/ T% x
6 L) ]; w+ c4 `
) w' F3 r1 s- Z6 [4 S# }# S
, ?7 d: a7 L" e+ C9 v$ C! @9 g5 P% y
& i3 C8 d4 a- H/ p$ ^
0 q7 u/ h, \) x: ?: B: @/ u( t2 [添加图片注释,不超过 140 字(可选)
" ?3 h3 ^/ O5 D" o7 R- G: k
3 h& u6 O* s2 M" o6 J. g8 p: {& b5 j! C5 i2 b, }1 v
j; H6 w' v4 J* D9 e% ?* N( `( d& T7 w( d: I
二、启动M0核固件的前期准备
; G, E( H( V1 X& O" f% C目前,飞凌嵌入式OK3562J-C开发板上默认并没有启动M0核固件。因此,我们需要通过一系列步骤来配置和启动M0核。以下是具体的操作步骤:' [4 \5 S2 K2 M4 D, ~" m! O
8 b+ Y, j; X s$ _7 G1. U-Boot修改3 N3 N- [" k8 D( g. `( U
理论上我们需要打开AMP(非对称多处理)编译宏,但由于飞凌嵌入式OK3562J-C开发板的U-Boot已默认配置AMP功能,因此用户无需进行任何U-Boot修改操作。. D0 j/ ^; {& P/ B" J
& q8 ?$ Q" u* I- V) _3 t
2. Kernel修改
2 J3 R+ F. e9 O0 n2 g8 X(1)安装工具包
" Y x3 v9 e/ ?; k9 K, K# h4 N9 N* R- U7 B7 _) g. r5 F/ A
首先,我们需要安装SCons工具包,用于后续的编译工作。可以通过以下命令进行安装:- m$ {% w3 J0 o
2 b& ~. O0 t, g
forlinx@ubuntu:~$ sudo apt-get install scons n: Q$ @ t1 x& R8 z! h# r
(2)添加AMP设备树的调用1 G: {6 c* S$ ?* j, B5 G! y& h
- d* Q& S- x2 L3 aOK3562J-C开发板已经添加了AMP设备树的调用,我们可以查看相关配置文件以了解其内容。
7 g$ Z% W: T! }( X2 j7 ?3 }) l& L" @6 I% b
forlinx@ubuntu:~$ cd /home/forlinx/work/OK3562-linux-source/forlinx@ubuntu:~/work/OK3562-linux-source$ vi kernel-5.10/arch/ARM64/boot/dts/rockchip/OK3562-C-common.dtsi+include"rk3562-amp.dtsi"
" ^7 M8 {8 t9 ?2 O+ N' [# c rk3562-amp.dtsi 主要内容包括:
# h, S' N$ T y7 G* O4 q s4 A3 q* @ D0 ^7 X, N; @5 z& X; A
/ {/* 描述设备 */ rockchip_amp: rockchip-amp { compatible = "rockchip,amp"; clocks = <&cru FCLK_BUS_CM0_CORE>, <&cru CLK_BUS_CM0_RTC>, <&cru PCLK_MAILBOX>, <&cru PCLK_INTC>, // <&cru SCLK_UART7>, <&cru PCLK_UART7>, <&cru PCLK_TIMER>, <&cru CLK_TIMER4>, <&cru CLK_TIMER5>; //pinctrl-names = "default"; //pinctrl-0 = <&uart7m1_xfer>; amp-cpu-aff-maskbits = /bits/ 64 <0x0 0x1 0x1 0x2 0x2 0x4 0x3 0x8>; amp-irqs = /bits/ 64 <GIC_AMP_IRQ_CFG_ROUTE(147, 0xd0, CPU_GET_AFFINITY(3, 0))>; status = "okay"; };/* 定义了一些保留内存区域 */ reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; /* remote amp core address */ amp_shmem_reserved: amp-shmem@7800000 { reg = <0x0 0x7800000 0x0 0x400000>; no-map; }; rpmsg_reserved: rpmsg@7c00000 { reg = <0x0 0x07c00000 0x0 0x400000>; no-map; }; rpmsg_dma_reserved: rpmsg-dma@8000000 { compatible = "shared-dma-pool"; reg = <0x0 0x08000000 0x0 0x100000>; no-map; }; /* mcu address */ mcu_reserved: mcu@8200000 { reg = <0x0 0x8200000 0x0 0x100000>; no-map; };};/* 实现Rockchip RPMsg功能 */ rpmsg: rpmsg@7c00000 { compatible = "rockchip,rpmsg"; mbox-names = "rpmsg-rx", "rpmsg-tx"; mboxes = <&mailbox 0 &mailbox 3>; rockchip,vdev-nums = <1>; /* CPU3: link-id 0x03; MCU: link-id 0x04; */ rockchip,link-id = <0x03>; reg = <0x0 0x7c00000 0x0 0x20000>; memory-region = <&rpmsg_dma_reserved>; status = "okay"; };};
, V& a8 m7 t% e4 N( c6 [+ J; p' } 3. 生成配置文件+ R8 K1 w: v9 }6 s
接下来,我们需要生成M0核固件的配置文件。在RTOS源码目录下,通过复制默认配置文件并运行SCons菜单配置界面来生成所需的配置文件。虽然在此示例中无需进行额外配置,但用户可以根据需求进行相应的配置。
+ d4 }6 p; Q% V- l- B b* b: ~4 {6 Y- T# U s! M
forlinx@ubuntu:~/work/OK3562-linux-source$ cd rtos/bsp/rockchip/rk3562-32forlinx@ubuntu:~/work/OK3562-linux-source/rtos/bsp/rockchip/rk3562-32$ cp board/rk3562_evb1_lp4x/defconfig .configforlinx@ubuntu:~/work/OK3562-linux-source/rtos/bsp/rockchip/rk3562-32$ scons --menuconfig4 Z* K3 Y0 \4 h( V- o
打开图形化配置界面后,无需配置,直接退出即可。* d, ^1 H% b) D: l) e6 I ?
/ \- P- Q8 M$ F3 J% f
/ I0 f3 `6 Z5 C7 Y( V$ o2 T7 g! q" x0 \
1 O+ V: v) N* c( F$ T
[backcolor=rgba(0, 0, 0, 0.1)] 1 n1 Z9 f [. L; F! L
[backcolor=rgba(0, 0, 0, 0.1)] ! X8 r6 `4 H8 d* e2 N: M% S7 Y
- M" W' V1 o$ w6 [' F5 r0 l - l* a3 M5 ?) S7 f* L! b) ^
. h/ }# U' W% d6 {
! L r! c# S9 A
) a3 D& P5 L' O$ [# r& ?
$ v; i# d% _( O添加图片注释,不超过 140 字(可选)7 {! y" Z1 g( M7 u1 z4 Y! y7 o2 v
9 n# e3 z' j/ w, {2 Z: r' \3 m" v# t1 B4 L
% ]; s! |2 U/ C9 t6 n: S; `, F/ n$ K. o: q: J
若有其他功能需求,可进行相应配置后再退出并保存。
) A+ F: v7 _! O" L- K: Y# n- L/ x" D7 M# z
forlinx@ubuntu:~/work/OK3562-linux-source/rtos/bsp/rockchip/rk3562-32$ cp .config board/rk3562_evb1_lp4x/defconfigforlinx@ubuntu:~/work/OK3562-linux-source/rtos/bsp/rockchip/rk3562-32$ cp rtconfig.h board/rk3562_evb1_lp4x/defconfig.h
6 F( F7 r: @ g. b: U 4. 编译源码
( e, D; M# J6 t! _4 S2 M: u完成配置文件的生成后,我们可以开始编译源码。通过运行构建脚本,选择相应的defconfig配置,并分别编译Linux系统和M0核固件。编译成功后,会在指定目录下生成 amp.img 镜像文件。, f4 q7 L0 |1 Y0 a' `3 A$ c
$ ^, S5 z: j2 a- V" t
forlinx@ubuntu:~/work/OK3562-linux-source/rtos/bsp/rockchip/rk3562-32$ cd ../../../../forlinx@ubuntu:~/work/OK3562-linux-source$ ./build.sh chipLog colors: message notice warning error fatalLog saved at /home/forlinx/work/3562/git/OK3562-linux-source/output/sessions/2024-08-27_15-48-21Switching to chip: ok3562Pick a defconfig:1. forlinx_defconfig2. forlinx_ok3562_linux_defconfig3. forlinx_ok3562_linux_mcu_defconfig4. forlinx_ok3562_linux_rtos_defconfigWhich would you like? [1]: 4 //选择第四个配置forlinx@ubuntu:~/work/OK3562-linux-source$ ./build.sh rtosforlinx@ubuntu:~/work/OK3562-linux-source$ ./build.sh mcu
/ Z0 H" a7 ?: m! q' J 编译后在rockdev目录下生成amp.img:
2 {, i! t; S8 L% h5 m: p) E. C6 @. ^- F o
forlinx@ubuntu:~/work/OK3562-linux-source$ ls rockdev/amp.img boot.img linux-headers.tar MiniLoaderAll.bin misc.img oem.img parameter.txt recovery.img rootfs.img uboot.img update.img userdata.img
% t* @2 R, A7 h9 Y6 v) P 三、烧写镜像: b6 _8 X3 N# @/ `+ P
将生成的 amp.img 镜像文件拷贝到电脑中,并将开发板切换到烧写模式。使用烧写工具配置 amp.img 的路径。
! ?8 `6 S9 U+ n6 Z& t5 }" U+ A; ~' p0 K" J/ Q+ g! l1 Q
[backcolor=rgba(0, 0, 0, 0.1)]
* m4 Q* }7 }0 ~" ][backcolor=rgba(0, 0, 0, 0.1)] ! s/ M8 ^5 K; j8 t4 ?
( c, j( O. a( s, [9 F, _
+ {1 z' @' K3 @0 m, D
2 C- T: h! o7 P/ b" ?4 I
, l! b6 e9 Q- z3 d* _, M$ c
0 f- u/ W! C" ?$ P3 p6 o, d g; D4 `4 g# U* k# a% v
添加图片注释,不超过 140 字(可选)9 P: C, ~3 q3 z, S% B3 B1 W3 A* z2 g
8 _1 s8 j7 c. C: O* B. s% i
点击“设备分区表”,读取成功后点击“执行”。
R6 G- ^$ S0 a
: V* b/ l9 v+ Y+ q) Y. }! `: e( v8 Y6 u. `
) v0 f. n$ D2 E& n; G7 T
I5 v5 A9 f9 }0 g1 K* ~
[backcolor%3保魑患抑档眯爬档墓┯ι蹋鹑缱佑涤惺甑腗CU设计经验,并以双源生产模式、业界先进的MCU工艺技术,以及由250多家生态系统合作伙伴组成的庞大体系为后盾。 : } ], x! o( x3 D
. h& d g2 E0 L$ q" S+ H$ ^2 w# N) d& Z5 c* t
! J1 m% }1 n9 e' F& o9 z* u+ L
|
|