曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RZT2H CR52雙核BOOT流程和例程代碼分析

RA生態(tài)工作室 ? 2025-04-03 17:14 ? 次閱讀

RZT2H是多核處理器,啟動時,需要一個“主核”先啟動,然后主核根據(jù)規(guī)則,加載和啟動其他內(nèi)核。本文以T2H內(nèi)部的CR52雙核為例,說明T2H多核啟動流程。

RZ T2H 簡介

https://www.ramcu.cn/product/rz/t/t2h/

RZ/T2H具有工業(yè)機(jī)器人、運動控制器和可編程邏輯控制器 (PLC) 等控制器所需的處理能力和外設(shè)功能。

LSI reset release時,其內(nèi)置的BOOTROM總是從CR52_0開始執(zhí)行,即我們可以把CR52_0定義為主核。如果系統(tǒng)配置為程序從External XSPI_FLASH 啟動,BOOTROM首先根據(jù)存放在external Flash起始位置的Parameter中的定義,從Flash中加載Loader程序。

Parameters for the Loader:

存放在External Memory區(qū)域的起始位置,存放著與程序加載相關(guān)的關(guān)鍵信息,如例如在各個啟動模式下,啟動期間的CPU緩存設(shè)置,用于與外部存儲器通信的引導(dǎo)外設(shè)(xSPI或SDHI)的配置以及加載程序的size等等。

Parameters for Loader的結(jié)構(gòu)如下:

wKgZO2fsk0qAZr5UAAFMtnI_9vk404.png

除了上述信息,其中DSET_ADDR_NML是跟多核啟動相關(guān)的關(guān)鍵參數(shù);該參數(shù)決定Loader Program的加載地址,而BOOTROM根據(jù)這個地址決定接下來在哪個核上,從哪個地址開始執(zhí)行LOADER程序。

這里補充一下T2H程序結(jié)構(gòu)和基本加載啟動流程:

T2H平臺,燒錄到External Flash上的內(nèi)容邏輯上分成3部分:

  1. 上述的Parameter for Loader;
  2. Loader program;
  3. Application program;

啟動時,BOOTROM根據(jù)Parameter for Loader從Flash加載Loader program到指定位置開始執(zhí)行,然后Loader program再加載Application program并跳轉(zhuǎn)執(zhí)行。

在T2H多核架構(gòu)下(4xCA55+2xCR52)Loader parameter中的:DEST_ADDR_NML有2個可能的地址范圍,即BTCM7或者7System SRAM:

wKgZPGfsk0qAdzn6AAEPsQBTjY4802.png

如果BOOTROM判斷到加載地址是在BTCM中,那CR52_0繼續(xù)執(zhí)行(second boot CPU仍然是CR52_0),從加載地址開始執(zhí)行LOADER PROGRAM,并完成整個啟動流程。

如果BOOTROM判斷到加載地址是SYSTEM,系統(tǒng)會認(rèn)為second boot CPU是CA55_0,BOOTROM 就會Reset release CA55_0,并把CR52_0轉(zhuǎn)換到WFI狀態(tài),然后讓CA55_0執(zhí)行Loader program。

以上介紹了在T2H多核系統(tǒng)中的主核First boot CPU和Second boot CPU的啟動過程,但是其他的Core此時都還是在Reset 狀態(tài),等待 Second boot CPU為其加載程序和釋放。

接下來以52雙核為例,說明CR52_0如何完成自身程序加載和加載并啟動CR52_1的過程;

在這個示例中,CR52_0用作Second boot CP-U,以下步驟是CR52_0的Loader Program需要完成的工作:

根據(jù)FSP時鐘樹,配置LSI的各個Clock;

初始化Loader Program的Data段和BSS段;

配置ADDRESS_EXPANDER_INIT:

Address EXPANDER的作用是:通過映射的方法,使能32 bit Master訪問4G area之外的地址空間,詳見UM 13.4.5;

TrustedZone 400初始化;

COPY應(yīng)用程序的PRG段/DATA段/BSS段,到相應(yīng)的運行RAM空間。如果需要啟動其他內(nèi)核,則把其他內(nèi)核的PRG/DATA,也COPY到對應(yīng)RAM區(qū)域,然后Release目標(biāo)內(nèi)核;

核間通信用到的信號量初始化;

Master MPU初始化;

GIC初始化和系統(tǒng)定義的中斷的初始化配置;

TFU初始化;

Main()跳轉(zhuǎn)應(yīng)用;

其中步驟5中啟動目標(biāo)CPU(CR52_1)

的步驟如下圖:

wKgZPGfsk0uAfiIzAAK8JTsGLJs484.png

上述步驟中需要特別強(qiáng)調(diào)的地方:

啟動過程,需要從CR52_0訪問CR52_1的ATCM空間。根據(jù)T2H的架構(gòu),這個訪問只能通過AXI總線,且必須把CR52_1的ATCM region通過MPU配置為Device屬性,并且只能使用LD和ST指令;

wKgZO2fsk0uASJqXAAIz3ixvGPk055.png

對應(yīng)到代碼中,上面的7個步驟在函數(shù)SystemInit()文件startup.c中都能找到對應(yīng)的實現(xiàn);

重點說明函數(shù)bsp_cpu_reset_release()該函數(shù)實現(xiàn)上述步驟的2,3,4,6,7;

重點分析步驟6:

代碼段如下:

wKgZO2fsk0uAOftCAAGxVYrykPU559.png

這段代碼完成的動作:

把1st分支指令[inst]經(jīng)AXIS接口復(fù)制到CR52_1 ATCM的起始地址(dst_cpu1:0x2100_000);

復(fù)制跳轉(zhuǎn)指令要用到的目標(biāo)地址(addr);

操作到的存儲地址如圖示:

wKgZO2fsk0yATkjgAAE1as_PNXY961.png

最后步驟7:

wKgZPGfsk0yANoXSAAAkM9n_lG4759.png

CR52_1跳轉(zhuǎn)到入口函數(shù)system_init,開始執(zhí)行:

wKgZPGfsk0yAbBpvAAFA_7le4Ms386.png

以上,以雙CR52 Core為例,說明了T2H多核系統(tǒng)的BOOT流程。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19761

    瀏覽量

    233025
  • Boot
    +關(guān)注

    關(guān)注

    0

    文章

    153

    瀏覽量

    36476
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    瑞薩RZT2H CR52BOOT流程例程代碼分析

    CR52 Core為例,說明了T2H多核系統(tǒng)的BOOT流程。
    的頭像 發(fā)表于 04-02 09:28 ?930次閱讀
    瑞薩<b class='flag-5'>RZT2H</b> <b class='flag-5'>CR52</b><b class='flag-5'>雙</b><b class='flag-5'>核</b><b class='flag-5'>BOOT</b><b class='flag-5'>流程</b>和<b class='flag-5'>例程</b><b class='flag-5'>代碼</b><b class='flag-5'>分析</b>

    u-boot啟動流程分析

    今天給大家全面的分析一下u-boot啟動流程。整理這篇文章花費時間較長,中間很長時間未更新,希望這篇文章對大家有所幫助。
    發(fā)表于 07-12 15:16 ?1109次閱讀
    u-<b class='flag-5'>boot</b>啟動<b class='flag-5'>流程</b><b class='flag-5'>分析</b>

    使用STM32CUBEMX生成 H745代碼,利用cubeide debug時發(fā)現(xiàn)M7阻塞進(jìn)入error_handler是為什么?

    使用STM32CUBEMX 生成 H745代碼,利用cubeide debug時發(fā)現(xiàn)M7因為以下
    發(fā)表于 05-20 07:16

    STM32H7間如何通信?

    STM32H7間通信的方法,主要是CM7和CM4之間如何進(jìn)行數(shù)據(jù)傳遞
    發(fā)表于 03-12 07:34

    如何在F28M35H52C1中調(diào)試程序?

    求助: 我用的是F28M35H52C1,C28和M3中都有程序,不知道怎樣下載調(diào)試。已經(jīng)看過controlSUITE,沒有找到相關(guān)的教程,希望可以得到專業(yè)的幫助。 非常感謝??!
    發(fā)表于 08-28 08:41

    請問28377例程是如何運行的?

    麻煩各位能不能指導(dǎo)下如何在ccs6中運行例程的,例程選擇的是lab1_led_cpu1和lab1_led_cpu2。我的想法是首先點擊紅
    發(fā)表于 09-12 11:02

    請問如何使用embedded studio調(diào)試 6750evk 的例程?

    如何使用embedded studio調(diào)試 6750evk 的例程? 在HPM_SDK中, 我只看到了腳本的調(diào)試, 請問在embed
    發(fā)表于 05-26 06:47

    STM32H747I-DISCO為啥需要?

    我正在使用STM32H747I-Disco的開發(fā)板, 發(fā)現(xiàn)有許多AI相關(guān)的例程,但都只用了Cortex-M7,沒有Cortex-M4的相關(guān)代碼
    發(fā)表于 08-05 07:56

    U-Boot代碼分析

    U-Boot代碼分析for (;;) {len = readline (CFG_PROMPT);flag = 0; /* assume no special flags for now
    發(fā)表于 02-10 14:57 ?28次下載

    F28M35H52C原理圖

    TI的芯片,F(xiàn)28M35H52C原理圖
    發(fā)表于 11-02 10:58 ?9次下載

    STC89C52_51單片機(jī)_例程4_交通燈_C語言代碼

    STC89C52_51單片機(jī)_例程3_交通燈_C語言代碼代碼及文件下載鏈接審核通過后掛上交通燈需要設(shè)置一個flag標(biāo)志位,當(dāng)?shù)竭_(dá)1s時調(diào)用display()函數(shù)更新顯示主要就是disp
    發(fā)表于 11-23 17:06 ?22次下載
    STC89C<b class='flag-5'>52</b>_51單片機(jī)_<b class='flag-5'>例程</b>4_交通燈_C語言<b class='flag-5'>代碼</b>

    AN5557 STM32H745/755和STM32H747/757系列架構(gòu)

    AN5557 STM32H745/755和STM32H747/757系列架構(gòu)
    發(fā)表于 11-21 17:06 ?1次下載
    AN5557 STM32<b class='flag-5'>H</b>745/755和STM32<b class='flag-5'>H</b>747/757系列<b class='flag-5'>雙</b><b class='flag-5'>核</b>架構(gòu)

    UM2840_STM32H7安全手冊

    UM2840_STM32H7安全手冊
    發(fā)表于 11-22 08:21 ?0次下載
    UM2840_STM32<b class='flag-5'>H</b>7<b class='flag-5'>雙</b><b class='flag-5'>核</b>安全手冊

    Spring Boot啟動 Eureka流程

    (String[] args) { SpringApplication .run (EurekaServer.class, args); }} 上面的代碼是最最平常的 Spring Boot 啟動類
    的頭像 發(fā)表于 10-10 11:40 ?1084次閱讀
    Spring <b class='flag-5'>Boot</b>啟動 Eureka<b class='flag-5'>流程</b>

    安全啟動Secure Boot流程

    安全啟動-Secure Boot 除了NSPE和SPE兩個環(huán)境的溝通流程之外,secure boot也是Trusted Firmware很重要的設(shè)計環(huán)節(jié)。 Secure boot最主要
    的頭像 發(fā)表于 11-02 16:45 ?1785次閱讀
    安全啟動Secure <b class='flag-5'>Boot</b><b class='flag-5'>流程</b>