RK3562J 处理器 M 核启动实操:前期准备、烧写与验证步骤详解

原创 2025-01-22 09:36:00 RK3562 RK3562J 处理器 M 核
 飞凌嵌入式基于瑞芯微RK3562系列处理器打造的FET3562J-C全国产核心板,是一款专为工业自动化及消费类电子设备设计的产品,凭借其强大的功能和灵活性,自上市以来得到了各行业客户的广泛关注。本文将详细介绍如何启动并测试RK3562J处理器的MCU,通过实际操作步骤,帮助各位工程师朋友更好地了解这款芯片。

rk35562核心板

一、RK3562J处理器概述

RK3562J处理器是一款高性能、多核心的处理器,采用了独特的异构架构设计。它集成了4个Cortex-A53核心和1个Cortex-M0核心,其中4个Cortex-A53核心运行频率高达1.8GHz,凭借其强大的处理能力,主要负责运行复杂的操作系统任务和各种高性能应用程序,能够高效地处理多任务操作和数据密集型计算,为设备提供卓越的性能表现。而Cortex-M0核心则以200MHz的频率运行,作为一个辅助核心,它运行裸核系统,具有极高的响应速度和低延迟特性,能够快速响应实时性要求较高的任务,如传感器数据采集、电机控制等,确保设备在实时任务处理方面具备出色的稳定性和可靠性。这种独特的架构设计使得RK3562J处理器在兼顾高性能计算的同时,还能满足对实时性要求较高的应用场景,广泛适用于智能物联网设备、工业自动化控制以及嵌入式系统等多种领域,为用户带来高效、稳定且灵活的解决方案

rk3562j处理器

二、启动M0核固件的前期准备

目前,飞凌嵌入式OK3562J-C开发板上默认并没有启动M0核固件。因此,我们需要通过一系列步骤来配置和启动M0核。以下是具体的操作步骤:

1. U-Boot修改

理论上我们需要打开AMP(非对称多处理)编译宏,但由于飞凌嵌入式OK3562J-C开发板的U-Boot已默认配置AMP功能,因此用户无需进行任何U-Boot修改操作。

2. Kernel修改

(1)安装工具包

首先,我们需要安装SCons工具包,用于后续的编译工作。可以通过以下命令进行安装:

forlinx@ubuntu:~$ sudo apt-get install scons

(2)添加AMP设备树的调用

OK3562J-C开发板已经添加了AMP设备树的调用,我们可以查看相关配置文件以了解其内容。

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"

rk3562-amp.dtsi 主要内容包括:

/ {
/* 描述设备 */
    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";
    };
};

3. 生成配置文件

接下来,我们需要生成M0核固件的配置文件。在RTOS源码目录下,通过复制默认配置文件并运行SCons菜单配置界面来生成所需的配置文件。虽然在此示例中无需进行额外配置,但用户可以根据需求进行相应的配置。

forlinx@ubuntu:~/work/OK3562-linux-source$ cd rtos/bsp/rockchip/rk3562-32
forlinx@ubuntu:~/work/OK3562-linux-source/rtos/bsp/rockchip/rk3562-32$ cp board/rk3562_evb1_lp4x/defconfig .config
forlinx@ubuntu:~/work/OK3562-linux-source/rtos/bsp/rockchip/rk3562-32$ scons --menuconfig

打开图形化配置界面后,无需配置,直接退出即可。

若有其他功能需求,可进行相应配置后再退出并保存。

forlinx@ubuntu:~/work/OK3562-linux-source/rtos/bsp/rockchip/rk3562-32$ cp .config board/rk3562_evb1_lp4x/defconfig
forlinx@ubuntu:~/work/OK3562-linux-source/rtos/bsp/rockchip/rk3562-32$ cp rtconfig.h board/rk3562_evb1_lp4x/defconfig.h

4. 编译源码

完成配置文件的生成后,我们可以开始编译源码。通过运行构建脚本,选择相应的defconfig配置,并分别编译Linux系统和M0核固件。编译成功后,会在指定目录下生成 amp.img 镜像文件。

forlinx@ubuntu:~/work/OK3562-linux-source/rtos/bsp/rockchip/rk3562-32$ cd ../../../../
forlinx@ubuntu:~/work/OK3562-linux-source$ ./build.sh chip
Log colors: message notice warning error fatal

Log saved at /home/forlinx/work/3562/git/OK3562-linux-source/output/sessions/2024-08-27_15-48-21
Switching to chip: ok3562
Pick a defconfig:

1. forlinx_defconfig
2. forlinx_ok3562_linux_defconfig
3. forlinx_ok3562_linux_mcu_defconfig
4. forlinx_ok3562_linux_rtos_defconfig
Which would you like? [1]: 4   //选择第四个配置
forlinx@ubuntu:~/work/OK3562-linux-source$ ./build.sh rtos
forlinx@ubuntu:~/work/OK3562-linux-source$ ./build.sh mcu

编译后在rockdev目录下生成amp.img:

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

三、烧写镜像

将生成的 amp.img 镜像文件拷贝到电脑中,并将开发板切换到烧写模式。使用烧写工具配置 amp.img 的路径。

点击“设备分区表”,读取成功后点击“执行”。

四、验证启动

重新启动开发板时按下空格键进入U-Boot菜单。在U-Boot菜单中,输入 3 将 amp start 配置成 on。

然后输入 1 重启开发板。在启动过程中,观察U-Boot阶段的打印信息,如果看到与M0核固件启动相关的打印信息,则说明已成功使用U-Boot启动M0核固件。

五、总结

上述操作仅为简单启动M0核并打印信息。实际上,M0核的功能非常强大,支持UART、PWM、I2C、SPI等多种外设接口。(目前飞凌嵌入式暂无更多M0核接口的测试例程,您若有相关需求,可以联系技术支持获取瑞芯微官方资料进行深入学习和开发)

希望通过本文的介绍和实践操作,能让您对RK3562J处理器的M0核有更进一步的了解,并为后续的开发工作提供帮助。点击下图,即可了解有关FET3562J-C核心板的更多详情。



相关产品 >

  • OK3562J-C开发板

    RK3562开发板,采用核心板+底板分体式设计,CPU采用瑞芯微工业级芯片RK3562J设计,RK3562J是瑞芯微专为工业自动化及消费类电子设备打造的一款高性能、低功耗国产化应用处理器,集成了4个ARM Cortex-A53高性能核,主频高达1.8GHz。RK3562核心板采用3组80Pin板对板连接器,可插拔式设计便于产品的安装与维护。 了解详情
    OK3562J-C开发板
  • FET3562J-C核心板

    RK3562核心板,采用高性能低功耗工业级芯片RK3562J设计,RK3562J是瑞芯微专为工业自动化及消费类电子设备打造的一款高性能、低功耗国产化应用处理器,集成了4个ARM Cortex-A53高性能核,主频高达1.8GHz。RK3562核心板采用3组80Pin板对板连接器,可插拔式设计便于产品的安装与维护。 了解详情
    FET3562J-C核心板

推荐阅读 换一批 换一批