91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

瑞薩RZ/T2H平臺多核異構(gòu)的應(yīng)用場景分析

瑞薩嵌入式小百科 ? 來源:瑞薩嵌入式小百科 ? 2025-12-15 11:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文以RZ/T2H多軸控制/驅(qū)動的實例,介紹RZ/T2H平臺的多核異構(gòu)應(yīng)用場景。分為:

示例軟件基本框架;

使用RemoteProc啟動R核;

程序啟動后,R核之間通過數(shù)據(jù)共享來傳遞數(shù)據(jù);

RZ/T2H的啟動流程。

該例程運行于RZ/T2H平臺,該平臺由兩個CR52核和四個CA55核構(gòu)成。其中,CA55核跑Linux OS+EtherCAT主站軟件;CR52_1運行EtherCAT從站,與主站實現(xiàn)9軸的控制/狀態(tài)數(shù)據(jù)實時交互;CR52_2運行9軸的電機驅(qū)動程序。

01基本框架

947a6156-d3eb-11f0-8c8f-92fbcf53809c.png

圖一 多核異構(gòu)的軟硬件框架

EtherCAT Controller(CiA402)位于CA55 Linux 側(cè),負責(zé)上位通信控制。包括EtherCAT主站通信、電機控制指令下發(fā)和現(xiàn)場數(shù)據(jù)收集等等。

EtherCAT Slave device(CiA402)位于CR52_1上,運行EtherCAT從站協(xié)議棧,執(zhí)行EtherCAT數(shù)據(jù)幀處理與設(shè)備對象管理,運行在裸機環(huán)境中,保證實時性。

CA55端的ECAT主站和CR52_1端的ECAT從站,通過內(nèi)部端口連接,EtherCAT數(shù)據(jù)流直接在2個域之間流動,不需要從外部端口回環(huán);

9-axis motor drive位于CR52_0,負責(zé)伺服電機驅(qū)動(多軸機器人控制)。功能包括:PWM計算和輸出,編碼器反饋數(shù)據(jù)采集,電流環(huán)/速度環(huán)/位置環(huán)計算和數(shù)據(jù)反饋,運行在裸機環(huán)境。

運行于CA55的CODESYS RUNTIME(EtherCAT Master),通過EtherCAT協(xié)議向CR52_1發(fā)送控制數(shù)據(jù),CR52_1通過共享內(nèi)存向CR52_0轉(zhuǎn)發(fā)解析后的數(shù)據(jù),CR52_0控制外設(shè)來控制電機。

同理,電機的實時狀態(tài)數(shù)據(jù)由CR52_0采集,通過共享內(nèi)存機制傳遞到CR52_1,CR52_1再通過EtherCAT協(xié)議把數(shù)據(jù)傳回主站。

02CA55端采用OpenAMP的RemoteProc來啟動CR52_0和CR52_1

94d5fd36-d3eb-11f0-8c8f-92fbcf53809c.png

圖二 remoteProc啟動CR52_0和CR52_1

Remoteproc代碼位于/sources/linux-renesas/drivers/remoteproc/rz_rproc.c

2.1 操作結(jié)構(gòu)體

952f334c-d3eb-11f0-8c8f-92fbcf53809c.png

rz_rproc_ops是一個struct rproc_ops類型的結(jié)構(gòu)體,它定義了遠程處理器(remoteproc)的操作函數(shù)集。這個結(jié)構(gòu)體在`rz_rproc_probe`函數(shù)中被使用,具體是在創(chuàng)建新的remoteproc實例時作為參數(shù)傳遞給devm_rproc_alloc函數(shù):

左右滑動查看完整內(nèi)容

rproc= devm_rproc_alloc(dev, np->name, &rz_rproc_ops, NULL, sizeof(*pdata));

該操作包含以下操作函數(shù):

prepare:準(zhǔn)備遠程處理器的資源

start:啟動遠程處理器,當(dāng)系統(tǒng)需要啟動遠程處理器時會調(diào)用

stop:停止遠程處理器,當(dāng)需要停止遠程處理器時會調(diào)用

da_to_va:設(shè)備地址到虛擬地址的轉(zhuǎn)換,見源碼中的A55核和R52核之間的地址訪問轉(zhuǎn)換關(guān)系

parse_fw:解析固件,當(dāng)需要加載固件時,會調(diào)用 parse_fw 和相關(guān)的 ELF 操作函數(shù)

2.2 probe的驅(qū)動框架層次:

左右滑動查看完整內(nèi)容

module_platform_driver(rz_rproc_driver)
 |-- 設(shè)備樹匹配 "renesas,rz-cr52"
 |-- rz_rproc_probe()
   |-- devm_kzalloc() 分配私有數(shù)據(jù)
   |-- devm_rproc_alloc() 分配 remoteproc 結(jié)構(gòu)
   | |-- 關(guān)聯(lián) rz_rproc_ops 操作函數(shù)集
   |-- 讀取設(shè)備樹屬性
   | |-- renesas,rz-core
   | |-- renesas,rz-swint
   | |-- renesas,rz-start_address
   | |-- renesas,rz-autoboot
   |-- pm_runtime_enable() 啟用電源管理
   |-- rproc_add() 注冊遠程處理器
     |-- 創(chuàng)建 sysfs 接口
     |-- 初始化遠程處理器狀態(tài)

當(dāng)執(zhí)行echo gcc_rzn2h_cr52_0_rpmsg_linux_baremetal_demo.elf> /sys/class/remoteproc/remoteproc0/firmware時,會調(diào)用firmware_store修改firmware的名字。

當(dāng)執(zhí)行echo start > /sys/class/remoteproc/remoteproc0/state,會產(chǎn)生state_store->rproc_boot->request_firmware->rproc_fw_boot->rproc_start,此時調(diào)用rz_rporc.c中的rproc->ops->start

左右滑動查看完整內(nèi)容

rproc_boot()
 |-- rproc_prepare_device()
 | |-- rz_rproc_prepare() // 我們驅(qū)動中的準(zhǔn)備函數(shù)
 |-- request_firmware()   // 從文件系統(tǒng)加載固件
 |-- rproc_fw_sanity_check()
 | |-- rz_rproc_ops.sanity_check()
 |-- rproc_parse_fw()
 | |-- rz_rproc_parse_fw() // 解析固件內(nèi)容
 |-- rproc_load_segments()
 | |-- rproc_elf_load_segments()
 |-- rproc_start()
   |-- rz_rproc_start()  // 啟動遠程處理器

2.3 設(shè)備樹節(jié)點分析

95e0442a-d3eb-11f0-8c8f-92fbcf53809c.png

963e3954-d3eb-11f0-8c8f-92fbcf53809c.png

設(shè)備樹節(jié)點的compatible="renesas,rz-cr52"會匹配到驅(qū)動中的:

左右滑動查看完整內(nèi)容

staticconststructof_device_idrz_rproc_of_match[] = {
  { .compatible="renesas,rz-cr52"},
  {/* end of list */},
};

從而找到該驅(qū)動。

資源初始化流程:

`reg`屬性定義了兩個內(nèi)存區(qū)域:

cr52_sram:0x10000000-0x101FFFFF (SRAM區(qū)域)

cr52_ddr:0x3E0000000-0x3E9000000(DDR區(qū)域)

`memory-region`指向三個預(yù)留內(nèi)存區(qū)域:

`vdev0vring0`:虛擬設(shè)備環(huán)形緩沖區(qū)0

`vdev0vring1:虛擬設(shè)備環(huán)形緩沖區(qū)1

`vdev0buffer`:虛擬設(shè)備共享緩沖區(qū)

左右滑動查看完整內(nèi)容

renesas,rz-core = <0x0>;    // CR52核編號
renesas,rz-swint = <10>;    // 軟中斷通道
renesas,rz-start_address = <0x00000000>; // 啟動地址

注意CR52_0:

啟動地址0x00000000,CR52_1:啟動地址0x10061000。這兩個地址需要與firmware編譯后的地址一致。

2.4 remoteProc的start本地實現(xiàn)

我們提取其中的static int rz_rproc_start(struct rproc*rproc)來做一下簡單介紹:

prcrs_base= ioremap(PRCRS,0x4);
prcrn_base= ioremap(PRCRN,0x4);

設(shè)置PRCRS和PRCRN,用于使能GPIO寫功能。

接下來建立CA55視角的地址空間:

左右滑動查看完整內(nèi)容

atcm_base_0 = ioremap(BSP_PRV_ATCM_AXIS_CR520_ADDRESS,
(CR52_ATCM_END - CR52_ATCM_START));

同理得到:atcm_base_1,btcm_base_0,sysram_base。

從T2H的用戶手冊上,也可以查到A55核訪問異構(gòu)核的對應(yīng)地址。

96ee6874-d3eb-11f0-8c8f-92fbcf53809c.png

圖三 A55訪問ATCM/BTCM/SRAM的物理地址

接下來是拷貝CR52_1的firmware

9746cae6-d3eb-11f0-8c8f-92fbcf53809c.png

拷貝完成后Reset CR52_0,通過設(shè)置SWRCPU0為0x4321A502來release和reset,便開始執(zhí)行該firmware。

啟動腳本為:

左右滑動查看完整內(nèi)容

# 將存在的固件名寫入remoteproc sysfs 入口
echoCR52_0_motor.elf>/sys/class/remoteproc/remoteproc0/firmware
echoCR52_1_ECAT.elf>/sys/class/remoteproc/remoteproc1/firmware
#啟動遠端處理器
echostart>/sys/class/remoteproc/remoteproc0/state
echostart>/sys/class/remoteproc/remoteproc1/state

03CR52_0與CR52_1之間的共享數(shù)據(jù)

CR52_0和CR52_1之間通過核間通信(基于共享內(nèi)存機制),交換電機控制參數(shù)和狀態(tài)信息。使用 Shared Memory驅(qū)動(r_shared_memory,通過瑞薩FSP生成)和核間中斷機制,實現(xiàn)核間數(shù)據(jù)交換,同時通過硬件信號量和軟件標(biāo)志位來保證數(shù)據(jù)完整性和互斥訪問。

97fc2b0c-d3eb-11f0-8c8f-92fbcf53809c.png

圖四 CR52_0與CR52_1之間的數(shù)據(jù)共享

98577034-d3eb-11f0-8c8f-92fbcf53809c.png

圖五 數(shù)據(jù)共享的消息序列圖

數(shù)據(jù)傳輸

CR52_1使用SHARED_MEMORY API將數(shù)據(jù)結(jié)構(gòu)寫入到2個CPU的共享內(nèi)存區(qū)域。寫入操作僅在數(shù)據(jù)發(fā)生變化時進行,從而避免不必要的訪問,寫入完成,CR52_1產(chǎn)生一個核間中斷通知CR52_2。

數(shù)據(jù)接收

CR52_2收到CR52_1發(fā)來的中斷,開始從共享內(nèi)存區(qū)讀取數(shù)據(jù),同時在回調(diào)函數(shù)會設(shè)置一個標(biāo)志位,以標(biāo)志數(shù)據(jù)讀取過程完成。

T2H自帶2MB的SRAM,將CR52_0和CR52_1之間的1.5KB數(shù)據(jù)共享放到了如下地址:

99619446-d3eb-11f0-8c8f-92fbcf53809c.png

圖六 數(shù)據(jù)共享地址

04T2H的啟動順序

99bc0340-d3eb-11f0-8c8f-92fbcf53809c.png

圖七 T2H多核啟動順序

BL2表示引導(dǎo)加載程序的第2階段(Boot Loader stage 2),BL3表示引導(dǎo)加載程序的第3階段(Boot Loader stage 3),WFI表示W(wǎng)ait For Interrupt。

T2H上電后,始終從CR52_0啟動,BOOTROM根據(jù)BL2的加載地址決定是從CR52_0繼續(xù)啟動還是跳轉(zhuǎn)到CA55啟動;

上圖的啟動流程:

系統(tǒng)上電后,Boot function將BL2加載到 SystemRAM中,并跳轉(zhuǎn)到其入口地址執(zhí)行。

BL2將BL3和U-Boot加載到DDR SDRAM中,并跳轉(zhuǎn)到BL3的入口地址執(zhí)行。

BL3為U-Boot做一些初始化準(zhǔn)備工作,然后跳轉(zhuǎn)到U-Boot的入口地址執(zhí)行。

U-Boot加載Linux并啟動它。

通過remoteproc加載并啟動Cortex-R52 CPU0 的固件。

Cortex-R52 CPU0開始執(zhí)行其固件。

通過remoteproc加載并啟動Cortex-R52 CPU1 的固件。

Cortex-R52 CPU1開始執(zhí)行其固件。

以上完成多核的啟動,再配合CA55端的CODESYS RUNTIME,可以完成驅(qū)控一體的系統(tǒng)搭建。9軸驅(qū)控視頻請見:

RZ T2H完整的軟硬件設(shè)計規(guī)范、參考例程、工具等,請登錄以下網(wǎng)址獲取更多資料。

RZ/T2H - Advanced High-End MPU with Integrated Powerful Application Processing and High-Precision Real-Time Control for 9-Axis Motor Control | Renesas

https://www.renesas.com/en/products/microcontrollers-microprocessors/rz-mpus/rzt2h-advanced-high-end-mpu-integrated-powerful-application-processing-and-high-precision-real-time

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

    關(guān)注

    88

    文章

    11763

    瀏覽量

    219085
  • ethercat
    +關(guān)注

    關(guān)注

    19

    文章

    1512

    瀏覽量

    45261
  • 多核異構(gòu)
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    5642

原文標(biāo)題:RZ/T2H多核異構(gòu)的應(yīng)用場景分析

文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

    RZ T2H更換DDR流程和工具介紹

    RZ T2H是由2個R52核和4個A55核構(gòu)成。支持LPDDR4,其傳輸可以達到3.2Gbps(1600 MHZ),總線寬度為32位,兩
    的頭像 發(fā)表于 06-27 14:54 ?2452次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RZ</b> <b class='flag-5'>T2H</b>更換DDR流程和工具介紹

    RZ/T2H PCIe通信的調(diào)試方法

    本文闡述了RZ/T2H的PCIe外設(shè)作為EP,在Windows上做驅(qū)動開發(fā)、速率測試時,可能會遇到無法被Windows識別的問題。本文總結(jié)了一些調(diào)試方法和技巧,來排查問題原因和解決方法。
    的頭像 發(fā)表于 11-20 16:53 ?5810次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RZ</b>/<b class='flag-5'>T2H</b> PCIe通信的調(diào)試方法

    教你如何使用RZ/T2L RZ/N2L RSK J-Link OB

    M無縫連接的硬件架構(gòu),可用于AC servo等更高性能的控制系統(tǒng)。此外,RZ/T2L提供了與MPU和MCU可兼容、可擴展的軟件平臺。它使
    的頭像 發(fā)表于 05-07 10:18 ?4681次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>教你如何使用<b class='flag-5'>RZ</b>/<b class='flag-5'>T2</b>L <b class='flag-5'>RZ</b>/N<b class='flag-5'>2</b>L RSK J-Link OB

    RZ T2H PCIe裸機程序開發(fā)和Linux下的配置介紹

    電子最新推出RZ/T2H工業(yè)專用MPU,單芯片提供強大應(yīng)用處理性能,多協(xié)議工業(yè)網(wǎng)絡(luò)及高達9軸高精度實時控制,支持Linux,RTOS及baremetal操作。除了強大CPU性能和9
    的頭像 發(fā)表于 12-18 11:14 ?2843次閱讀
    <b class='flag-5'>RZ</b> <b class='flag-5'>T2H</b> PCIe裸機程序開發(fā)和Linux下的配置介紹

    openEuler Summit 2021:多核異構(gòu)應(yīng)用場景

    openEuler Summit 2021-邊緣&嵌入式分論壇上,闡述了多核異構(gòu)的應(yīng)用場景。
    的頭像 發(fā)表于 11-10 15:15 ?2321次閱讀
    openEuler Summit 2021:<b class='flag-5'>多核</b><b class='flag-5'>異構(gòu)</b>應(yīng)<b class='flag-5'>用場景</b>

    產(chǎn)品詳解 | 電子RZ/T2L MPU

    產(chǎn)品詳解 | 電子RZ/T2L MPU
    的頭像 發(fā)表于 03-21 08:05 ?2228次閱讀
    產(chǎn)品詳解 | <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RZ</b>/<b class='flag-5'>T2</b>L MPU

    RZ/T2H新產(chǎn)品量產(chǎn)上市

    先進高端工業(yè)專用MPU RZ/T2H于2024年11月上市,集成了強大的應(yīng)用處理功能和高精度實時控制性能,高達9軸電機控制。這款產(chǎn)品是在現(xiàn)有RZ/N2L,
    的頭像 發(fā)表于 12-04 15:39 ?2148次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RZ</b>/<b class='flag-5'>T2H</b>新產(chǎn)品量產(chǎn)上市

    工業(yè)MPU新標(biāo)桿,多協(xié)議工業(yè)以太網(wǎng)+運動控制 - RZ/T2H 新產(chǎn)品

    先進高端工業(yè)專用MPU RZ/T2H于2024年11月上市,集成了強大的應(yīng)用處理功能和高精度實時控制性能,高達9軸電機控制。這款產(chǎn)品是在現(xiàn)有RZ/N2L,
    的頭像 發(fā)表于 12-06 16:57 ?1484次閱讀
    工業(yè)MPU新標(biāo)桿,多協(xié)議工業(yè)以太網(wǎng)+運動控制 - <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RZ</b>/<b class='flag-5'>T2H</b> 新產(chǎn)品

    電子量產(chǎn)高性能工業(yè)設(shè)備MPU RZ/T2H

    日本電子公司本月宣布,其面向工業(yè)設(shè)備的MPU(微處理器單元)RZ/T2H已正式進入量產(chǎn)階段。這款新品預(yù)計將被廣泛應(yīng)用于機器人等工業(yè)設(shè)備領(lǐng)域,以其卓越的性能和強大的功能,為用戶帶來更
    的頭像 發(fā)表于 12-27 11:23 ?1433次閱讀

    電子RZ MPU家族精品RZ/N2L產(chǎn)品介紹

    生態(tài)合作伙伴RT-Thread推出了一款高性能、多功能以太網(wǎng)MPU開發(fā)板EtherKit,搭載電子RZ/N
    的頭像 發(fā)表于 12-23 14:10 ?1637次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RZ</b> MPU家族精品<b class='flag-5'>RZ</b>/N<b class='flag-5'>2</b>L產(chǎn)品介紹

    交流日進行中,米爾演講-RZ/T2H高性能模組賦能工業(yè)產(chǎn)品創(chuàng)新

    。米爾電子作為的IDH生態(tài)合作伙伴發(fā)表演講,并展出RZ/T2H的核心板開發(fā)板、技術(shù)方案等。米爾活動現(xiàn)場會上,米爾電子產(chǎn)品經(jīng)理張先生發(fā)表了題為"米爾
    的頭像 發(fā)表于 03-13 08:05 ?1003次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>交流日進行中,米爾演講-<b class='flag-5'>RZ</b>/<b class='flag-5'>T2H</b>高性能模組賦能工業(yè)產(chǎn)品創(chuàng)新

    RZ/T2H MPU數(shù)據(jù)手冊和產(chǎn)品介紹#集成了強大的應(yīng)用處理能力和精確的實時控制功能

    Renesas Electronics RZ/T2H MPU是一款功能強大的高端微處理器單元,在單個芯片上集成了強大的應(yīng)用處理能力和精確的實時控制功能,非常適合用于自動化設(shè)備和機器人技術(shù)
    的頭像 發(fā)表于 05-21 10:24 ?1290次閱讀
    <b class='flag-5'>RZ</b>/<b class='flag-5'>T2H</b> MPU數(shù)據(jù)手冊和產(chǎn)品介紹#集成了強大的應(yīng)用處理能力和精確的實時控制功能

    RZ/V2H平臺支持部署離線版DeepSeek -R1大語言模型

    RZ/V2H平臺支持部署離線版DeepSeek -R1大語言模型
    的頭像 發(fā)表于 05-13 17:07 ?1656次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RZ</b>/V<b class='flag-5'>2H</b><b class='flag-5'>平臺</b>支持部署離線版DeepSeek -R1大語言模型

    Renesas RZ/T2H 評估板:功能特性與使用指南

    Renesas RZ/T2H 評估板:功能特性與使用指南 在嵌入式系統(tǒng)開發(fā)領(lǐng)域,一款性能出色且功能豐富的評估板往往能為工程師們節(jié)省大量的時間和精力。Renesas RZ/T2H 評估板
    的頭像 發(fā)表于 12-26 17:45 ?997次閱讀