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核心板

推薦閱讀 換一批 換一批