伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

瑞薩RA-T系列芯片馬達類工程TCM加速化設置 (下)

瑞薩嵌入式小百科 ? 來源:瑞薩MCU小百科 ? 2025-06-04 19:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

承接上文

瑞薩RA-T系列芯片馬達類工程TCM加速化設置(上)

http://www.3532n.com/d/6711616.html

RA8T2 sensorless方案的樣例工程;再給大家分享一個免注冊的免費下載地址:
http://www.3532n.com/d/6711582.html

下面介紹一下

將馬達樣例工程進行TCM優化的具體步驟

以RA8T1_MCILV1_SPM_LESS_FOC_E2S_V101工程為例,首先需統計電流環需要的的所有函數,并將它們分配到ITCM中。在本樣例工程中,這些函數分為兩類:一類是Open Source的,一類被封裝到lib文件中的。

由于涉及到的函數數量較多,現僅舉例說明設置方法:

如函數R_ADC_Read,其作用是讀出當前的相電流采樣數據,是整個電流環計算的開端。函數體定義在/工程根目錄/ra/fsp/src/r_adc/r_adc.c文件中??稍诤瘮刀x前增加修飾語句__attribute__((section(".itcm_data"))),將該函數指定分配到ITCM中。

示例:

__attribute__((section(".itcm_data")))
fsp_err_tR_ADC_Read(adc_ctrl_t* p_ctrl, adc_channel_tconst reg_id,uint16_t*constp_data)

ITCM起始地址為0x00000000,編譯后,查看map文件,可以確認函數被分配到了ITCM區域中。

5540b39e-40f9-11f0-b715-92fbcf53809c.png

也可用系統推薦宏定義進行設置,宏定義在工程根目錄 afspsrcspmcuallsp_compiler_support.h文件中,

具體定義如下所示:

#defineBSP_PLACE_IN_SECTION(x)_attribute__((section(x))) __attribute__((__used__))

本宏定義增加了對函數屬性的進一步修飾,通??捎玫男揎椚缦滤荆?/p>

noinline/inline
used
long_call

對于函數的修飾,不是本文重點,請查閱其他材料進行確認。

通常情況下,算法是公司的核心資產。所以存在封庫使用,或者利用第三方提供算法庫的情況。在這樣的情況下我們無法找到算法庫中的函數本體進行設置。那我們就需要考慮將庫文件整體放入ITCM中。

如RA8T1_MCILV1_SPM_LESS_FOC_E2S_V101樣例工程,使用了三個庫文件librm_motor_current.a,librm_motor_estimate.a,librm_motor_speed.a,分別用于處理電流環、位置估算、速度環的一些算法。

要實現本操作,需對ld文件進行修改。ld文件(鏈接描述文件)是控制鏈接器行為的關鍵腳本文件,主要用于管理目標文件的內存布局和符號解析。通過腳本指令精確控制輸入文件(.o/.a)如何組合到輸出文件(可執行文件/庫)中,并定義程序在內存中的布局結構。?

在本工程的ld文件中,首先定義了存儲器的物理參數:包括各內存區域的起始地址、容量及訪問屬性(如可讀/寫/執行);接著加載了必要的庫文件;通過SECTIONS指令規劃段的分布策略,明確代碼段、數據段、特殊功能段在存儲空間的具體位置。同時腳本還設置了關鍵的系統級配置:指定程序執行的入口地址,各模塊能按預定邏輯在存儲器中精準排布。

關于ld文件的布局,不是本文重點,請搜索相關資源,進行理解。

ld文件的設置需使用標準命令,本文不詳細展開,請搜索相關資源,進行理解。

下面我們詳細介紹本次修改的操作

在工程目錄script文件夾下,打開fsp.ld文件。

在SECTIONS命令后,鏈接代碼段.text :內刪除*(.text*)語句,更改為*(EXCLUDE_FILE(*librm_motor_estimate.a:*.o *librm_motor_current.a:*.o *librm_motor_speed.a:*.o) .text.*)。這樣在鏈接時,將不對這三個.o的lib文件在此處進行鏈接。請看如下示例:

55c5956e-40f9-11f0-b715-92fbcf53809c.png

在SECTIONS命令后,在.itcm_data段內在KEEP(*(.itcm_data*))語句下面,增加下面三個語句:

KEEP(*librm_motor_estimate.a:*.o(.text.*))
KEEP(*librm_motor_current.a:*.o(.text.*))
KEEP(*librm_motor_speed.a:*.o(.text.*))

更改后,在鏈接過程中,將這三個指定.o文件連接到itcm段。請看如下示例:

55e843de-40f9-11f0-b715-92fbcf53809c.png

設置完成后,重新編譯工程。排查map文件,可以看到lib中的函數已經放置到ITCM中。如位置估算這幾個函數,排查如下:

560657ca-40f9-11f0-b715-92fbcf53809c.png

然后需統計電流環執行用到的所有變量,并將所有變量放置到DTCM中。由于數量較多,現舉例說明設置方法。

如結構體變量g_motor_sensorless0,此變量是電流環操作的主要變量結構體。變量定義在/工程目錄/ra_gen/hal_data.c文件中,可在變量定義前增加修飾語句__attribute__((section(".dtcm_data")))將其分配到DTCM中。

請看如下示例:

__attribute__((section(".dtcm_data")))motor_instance_tg_motor_sensorless0 =
{ .p_ctrl = &g_motor_sensorless0_ctrl, .p_cfg = &g_motor_sensorless0_cfg, .p_api = &g_motor_on_sensorless, };

在本應用中,g_motor_sensorless0內部嵌套了其他結構體變量,那么被嵌套的其他結構體也需要做類似聲明,分配到DTCM中。

DTCM起始地址為0x20000000,編譯后查看map文件,可以確認變量被分配到了DTCM區域中。

5623a050-40f9-11f0-b715-92fbcf53809c.png

因為瑞薩官方樣例工程,用FSP架構設置系統參數。所以在應用本例程測試時,需做兩個手動設置:

1)將/工程目錄 /ra_gen/,目錄下的hal_data.c和hal_data.h文件設置為只讀屬性,這樣在每次編譯時,文件中所作的更改才不會被FSP默認設置覆蓋。

2)在進行變量的DTCM設置時,如變量具有const標識符修飾,需將const標識符去掉。否則,類型修改產生沖突,新的設置不能成功。

因為實際應用過程中,系統建立的方法各不相同,遇到上面兩種情況需注意,如自建工程,沒有相關設計,則無需這兩個手動步驟。

設置完成后,可以在電流環程序塊的出入口,分別拉高和拉低I/O口,以測試電流環執行時間。

測試結果:為4.79us。

564446c0-40f9-11f0-b715-92fbcf53809c.jpg

同等條件下,未TCM化的例程,電流環執行時間為5.72us。

可以看到TCM化有明顯性能提升效果。

566120ba-40f9-11f0-b715-92fbcf53809c.jpg

本文介紹了,在使用瑞薩RA8-T系列芯片設計馬達工程時,如何將指令和變量放置到TCM單元,從而加速特定執行的運行速度??梢宰畲笙薅鹊匕l揮瑞薩芯片優勢,為客戶提供更好的解決方案。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    147

    文章

    19015

    瀏覽量

    400496
  • 瑞薩
    +關注

    關注

    37

    文章

    22500

    瀏覽量

    90988
  • 馬達
    +關注

    關注

    1

    文章

    873

    瀏覽量

    65204
  • RA8
    RA8
    +關注

    關注

    0

    文章

    22

    瀏覽量

    6881
  • TCM
    TCM
    +關注

    關注

    0

    文章

    38

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    有獎直播 | RA8T2 EtherCAT雙軸伺服控制方案

    RA生態工作室關注我們作為深耕工業市場多年的半導體解決方案供應商,一直致力于為工業4.0和工業物聯網(IIoT)應用鋪平道路,提供多協議工業以太網、安全工業網絡、芯片及協議棧和可擴
    的頭像 發表于 03-27 17:29 ?1054次閱讀
    有獎直播 | <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA8T</b>2 EtherCAT雙軸伺服控制方案

    電子RA-Eco-RA4M2搭建Keil開發環境指南

    電子RA4M2 32位微控制器(MCU)系列使用支持TrustZone 的高性能Arm Cortex-M33內核。與片內的 Secure Crypto Engine (SCE)
    的頭像 發表于 03-18 08:07 ?2269次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RA-Eco-RA</b>4M2搭建Keil開發環境指南

    電子RA系列MCU 2025年新品回顧

    2025年RA系列推出10個新產品,覆蓋了從入門級低功耗(RA0E2)、中端低功耗(RA4C
    的頭像 發表于 01-27 09:57 ?1447次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RA</b><b class='flag-5'>系列</b>MCU 2025年新品回顧

    RA與RX系列的IEC61508認證工業自動功能安全解決方案

    RA與RX系列的IEC61508認證工業自動功能安全解決方案 在工業自動領域,功能安全至
    的頭像 發表于 12-29 15:10 ?559次閱讀

    RA6E2地奇星開發板試用】開發板介紹及環境搭建

    物聯網、工業控制、智能硬件等場景。 核心參數一覽 項目 規格 主控芯片 R7FA6E2BB3CNE( RA6E2 系列) 內核 Arm
    發表于 12-22 00:40

    RA6E2地奇星開發板試用】介紹、環境搭建、工程測試

    RA 系列軟件包即可。 工程測試 由板載 LED 原理圖可知,板載 LED 對應 P402 管腳,且為高電平點亮。 工程創建 打開 e^2^ studio 軟件; 依次點擊 文件 -
    發表于 12-07 15:27

    RA6E2地奇星開發板試用】+開發環境構建與下載測試

    這次試用的RA6E2-立創地奇星是一款高性價比的開發板,為透徹地體驗它的性能,構建其開發環境是一項最基本的工作。 開發開發板的的工具
    發表于 12-06 00:11

    RA6E2】E2S軟件安裝過程,等待過程玩97_e2 studio_ZGZZ

    差異 選擇第一個,RA系列: 繼續: 下面這個FSP要選擇,最好是全部,因為這里有個坑:的不同編譯器版本不同編譯會報錯?。。。?! 你不同意就不讓用,呵呵 下一步唄 等啊等 第一個
    發表于 12-01 22:42

    電子基于RA6T2的高頻注入法方案詳解

    電子發布了基于高頻注入法的樣例方案,本篇以RA6T2樣例工程為例,介紹高頻注入法的一般性原理,
    的頭像 發表于 10-27 11:31 ?4960次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子基于<b class='flag-5'>RA6T</b>2的高頻注入法方案詳解

    電子RA8P1系列32位AI MCU介紹

    RA8P1系列電子首款搭載高性能Arm Cortex-M85(支持Helium矢量擴展)及Ethos-U55 NPU的32位AI加速
    的頭像 發表于 09-23 10:15 ?3269次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RA</b>8P1<b class='flag-5'>系列</b>32位AI MCU介紹

    使用R-T系列芯片實現相電流實時采樣

    本篇介紹如何使用R-T系列芯片,設計馬達工程時,
    的頭像 發表于 07-16 16:19 ?1794次閱讀
    使用<b class='flag-5'>瑞</b><b class='flag-5'>薩</b>R-<b class='flag-5'>T</b><b class='flag-5'>系列</b><b class='flag-5'>芯片</b>實現相電流實時采樣

    基于電子RA8T2 sensorless方案的樣例工程 可對電流環進行TCM設置

    基于電子RA8T2 sensorless方案的樣例工程 可對電流環進行TCM
    的頭像 發表于 06-04 18:29 ?1170次閱讀

    RA-T系列芯片馬達工程TCM加速設置(上)提高電流環執行速度

    本篇介紹在使用 RA8-T系列芯片 ,建立 馬 達工程應用 時,如何將 電 流環部分的指令和變量 設置
    的頭像 發表于 06-04 18:02 ?1765次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA-T</b><b class='flag-5'>系列</b><b class='flag-5'>芯片</b><b class='flag-5'>馬達</b><b class='flag-5'>類</b><b class='flag-5'>工程</b><b class='flag-5'>TCM</b><b class='flag-5'>加速</b><b class='flag-5'>化</b><b class='flag-5'>設置</b>(上)提高電流環執行速度

    RA8系列教程 | RA8 開發環境搭建,并點亮一個LED

    今天就給大家講講基于Cortex-M85內核RA8單片機快速上手指南。
    的頭像 發表于 06-04 17:32 ?1848次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>8<b class='flag-5'>系列</b>教程 | <b class='flag-5'>瑞</b><b class='flag-5'>薩</b> <b class='flag-5'>RA</b>8 開發環境搭建,并點亮一個LED

    RA8系列教程 | 基于 Keil 開發 RA8單片機

    本文結合Cortext-M85單片機RA8D1、Keil MDK,以及自家的代碼初始化工具(Smart Configurator)給
    的頭像 發表于 04-22 17:41 ?1399次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>8<b class='flag-5'>系列</b>教程 | 基于 Keil 開發 <b class='flag-5'>RA</b>8單片機