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

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

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

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

在IAR Embedded Workbench for Renesas RH850中實(shí)現(xiàn)ROPI

IAR愛亞系統(tǒng) ? 來源:IAR愛亞系統(tǒng) ? 2026-01-10 15:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

隨著汽車智能化程度的提高,集成的ECU(Electronic Control Unit)數(shù)量不斷增加,OTA(Over-the-Air)技術(shù)變得越來越普遍,它允許車輛通過無線網(wǎng)絡(luò)接收軟件更新,從而實(shí)現(xiàn)功能升級(jí)和性能改進(jìn),提高了便利性。

根據(jù)硬件的不同特性,OTA有對(duì)應(yīng)的實(shí)現(xiàn)策略:[1]

如果硬件支持A/B Swap,對(duì)應(yīng)的應(yīng)用程序只需要鏈接一次就可以在兩個(gè)不同的物理地址運(yùn)行;

如果硬件不支持A/B Swap,對(duì)應(yīng)的應(yīng)用程序可以通過ROPI(Read-Only Position-Independent)的方式實(shí)現(xiàn)在不同的物理地址運(yùn)行。

Renesas RH850系列MCU在汽車行業(yè)中廣泛使用,IAR Embedded Workbench for Renesas RH850是一套完整的集成開發(fā)環(huán)境,符合ISO 26262功能安全標(biāo)準(zhǔn),支持Renesas RH850的編譯和調(diào)試。

本文主要介紹如何在IAR Embedded Workbench for Renesas RH850中實(shí)現(xiàn)ROPI。

01Renesas RH850 ROPI介紹

Renesas RH850 ROPI通過TP寄存器來實(shí)現(xiàn),即對(duì)應(yīng)代碼和常量的訪問不是通過絕對(duì)地址,而是通過基于TP的相對(duì)地址訪問:

7be4cc4c-eba8-11f0-92de-92fbcf53809c.png7c441b20-eba8-11f0-92de-92fbcf53809c.png

02在IAR Embedded Workbench for Renesas RH850中實(shí)現(xiàn)ROPI

在IAR Embedded Workbench for Renesas RH850中實(shí)現(xiàn)ROPI非常方便,只需要勾選對(duì)應(yīng)的ROPI編譯選項(xiàng)(General Options > Position-independence > Code and read-only data):

7cac3494-eba8-11f0-92de-92fbcf53809c.png

下面通過一個(gè)簡(jiǎn)單的例子介紹如何在IAR Embedded Workbench for Renesas RH850中實(shí)現(xiàn)ROPI。

假設(shè)對(duì)應(yīng)Code Flash的地址區(qū)間是:0x00000000 ~ 0x001FFFFF (2MB)。其中Bootloader的地址區(qū)間是0x00000000 ~ 0x0001FFFF (128KB) ,而Application的地址區(qū)間分別為: 0x00020000 ~ 0x0010FFFF (960KB) 和0x00110000 ~ 0x001FFFFF (960KB) 。

Application鏈接的時(shí)候使用的地址區(qū)間0x00020000 ~ 0x0010FFFF:

define region ROM_1ST_region =mem:[from0x00020000to0x0010FFFF];
"RESET":place at addressmem:0x00020000
 {
  block .reset
 };

map文件顯示對(duì)應(yīng)Application放到地址區(qū)間0x00020000 ~ 0x0010FFFF:

7d08fe2c-eba8-11f0-92de-92fbcf53809c.png7d6bb15c-eba8-11f0-92de-92fbcf53809c.png

在Bootloader調(diào)試選項(xiàng)(Debugger > Images > Download extra image)中添加對(duì)應(yīng)Application.out文件并配置對(duì)應(yīng)的Offset (0x00110000 - 0x00020000 = 0x000F0000):

7dca40fa-eba8-11f0-92de-92fbcf53809c.png

在Bootloader工程中下載調(diào)試來驗(yàn)證對(duì)應(yīng)Application是否支持ROPI。

Bootloader跳轉(zhuǎn)到Application的復(fù)位向量表地址0x00110000:

7e2e2eee-eba8-11f0-92de-92fbcf53809c.png7e8fb0b0-eba8-11f0-92de-92fbcf53809c.png

然后成功跳轉(zhuǎn)到Application的入口函數(shù)__iar_program_start:

7ef211ba-eba8-11f0-92de-92fbcf53809c.png

最后成功跳轉(zhuǎn)到main函數(shù),說明對(duì)應(yīng)Application成功實(shí)現(xiàn)ROPI(因?yàn)锳pplication鏈接到地址區(qū)間0x00020000 ~ 0x0010FFFF,同樣可以在地址區(qū)間0x00110000 ~ 0x001FFFFF正常運(yùn)行):

7f534b10-eba8-11f0-92de-92fbcf53809c.png

03注意事項(xiàng)

對(duì)應(yīng)GP和TP寄存器通常來說會(huì)在啟動(dòng)代碼里面初始化:

7fc12a18-eba8-11f0-92de-92fbcf53809c.png802c3c36-eba8-11f0-92de-92fbcf53809c.png

如果ROPI程序中有需要跳轉(zhuǎn)到其他非ROPI程序中使用絕對(duì)地址運(yùn)行的函數(shù)(比如對(duì)應(yīng)函數(shù)運(yùn)行在RAM的絕對(duì)地址),那么在ROPI程序中需要使用__absolute關(guān)鍵字聲明對(duì)應(yīng)函數(shù):

808c6c0a-eba8-11f0-92de-92fbcf53809c.png

調(diào)試ROPI程序的時(shí)候,如果ROPI程序?qū)嶋H運(yùn)行地址區(qū)間跟ROPI程序鏈接的地址區(qū)間不一樣的時(shí)候,需要配置對(duì)應(yīng)的Offset(對(duì)應(yīng)Offset的值是程序?qū)嶋H運(yùn)行地址減去程序鏈接的地址)。另外Debug info only選項(xiàng)表示調(diào)試器只加載對(duì)應(yīng)調(diào)試信息,而不下載對(duì)應(yīng)程序。

80ecb15a-eba8-11f0-92de-92fbcf53809c.png

如果使用Renesas Smart Configurator生成對(duì)應(yīng)的工程,由于Renesas Smart Configurator生成的r_cg_intvector.c文件里面中斷向量表的名字是INT_Vectors(而不是IAR默認(rèn)的中斷向量表的名字),所以需要修改對(duì)應(yīng)的r_cg_intvector.c文件,IAR里面的啟動(dòng)文件cstartup.s和icf文件。

下面以RH850/F1KM-S2為例:

_cg_intvector.c文件:添加對(duì)應(yīng)ROPI模式下的聲明,把對(duì)應(yīng)INT_Vector[]和INT_Vectors_Init[]分別放到EIINTTBL和EIINTTBL.init section當(dāng)中:

814c6852-eba8-11f0-92de-92fbcf53809c.png

cstartup.s:_interrupt_vector_table_core_1替換成_INT_Vectors, .table.interrupt_core_1.init替換成EIINTTBL.init:

81a866d4-eba8-11f0-92de-92fbcf53809c.png

icf文件:.table.interrupt_core_1替換成EIINTTBL,.table.interrupt_core_1.init替換成EIINTTBL.init:

820e8bbc-eba8-11f0-92de-92fbcf53809c.png82786b40-eba8-11f0-92de-92fbcf53809c.png82d51822-eba8-11f0-92de-92fbcf53809c.png

04總結(jié)

本文主要以RH850/F1KM-S2為例介紹了如何在IAR Embedded Workbench for Renesas RH850中實(shí)現(xiàn)ROPI。

參考文獻(xiàn):

1.https://www.vector.com/us/en/products/application-areas/embedded-software/embedded-trends/ota-update-approaches/

2.RH850 User’s Manual: Software

3.IAR RH850 C/C++ Development Guide

4.IAR RH850 C-SPY Debugging Guide

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

    關(guān)注

    147

    文章

    18934

    瀏覽量

    398512
  • 嵌入式
    +關(guān)注

    關(guān)注

    5199

    文章

    20454

    瀏覽量

    334250
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5608

    瀏覽量

    130012
  • IAR
    IAR
    +關(guān)注

    關(guān)注

    5

    文章

    410

    瀏覽量

    38555

原文標(biāo)題:在IAR Embedded Workbench for Renesas RH850中實(shí)現(xiàn)ROPI

文章出處:【微信號(hào):IAR愛亞系統(tǒng),微信公眾號(hào):IAR愛亞系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    瑞薩RH850P1M-C芯片或者RH850P系列誰用過,用什么配置軟件啊?

    最近在使用瑞薩RH850/P1M-C/R7F701374單片機(jī),開發(fā)環(huán)境使用過CS+、e2 studio、IAR都有這個(gè)芯片型號(hào)。但是配置軟件卻沒看到有這個(gè)系列信號(hào),我renesas
    發(fā)表于 01-18 10:00

    TRACE32支持RH850系列

      全新RH850MCU用于各種汽車車身應(yīng)用,可提供諸多優(yōu)勢(shì)。RH850/F1x系列可分為三大類總共50多種產(chǎn)品,從低端到高端,品類齊全,包括RH850/F1L、RH850/F1M及
    發(fā)表于 09-12 19:02 ?22次下載

    RH850多核嵌入式目標(biāo)的基于多核模型的開發(fā)

      Embedded Target for RH850 Multicore + Multirate,是更高版本的 Embedded Target for RH850 Multicore
    的頭像 發(fā)表于 04-29 14:39 ?5294次閱讀
    <b class='flag-5'>RH850</b>多核嵌入式目標(biāo)的基于多核模型的開發(fā)

    IAR Systems開發(fā)工具3.10版IAR全面支持Renesas RH850

    IAR Systems 很高興地宣布推出全新的 3.10 版 IAR Embedded Workbench 以及 IAR 構(gòu)建工具(
    發(fā)表于 07-10 14:36 ?3435次閱讀

    Renesas Flash Programmer V2.04 Flash memory programming software 用戶手冊(cè) RH850, RX64x

    Renesas Flash Programmer V2.04 Flash memory programming software 用戶手冊(cè) RH850, RX64x
    發(fā)表于 03-30 18:49 ?0次下載
    <b class='flag-5'>Renesas</b> Flash Programmer V2.04 Flash memory programming software 用戶手冊(cè) <b class='flag-5'>RH850</b>, RX64x

    Renesas Flash Programmer V2.04 Flash memory programming software 用戶手冊(cè) RH850, RX64x

    Renesas Flash Programmer V2.04 Flash memory programming software 用戶手冊(cè) RH850, RX64x
    發(fā)表于 07-12 20:24 ?7次下載
    <b class='flag-5'>Renesas</b> Flash Programmer V2.04 Flash memory programming software 用戶手冊(cè) <b class='flag-5'>RH850</b>, RX64x

    rh850與r7f7的關(guān)系 如何使用RH850系列MCU進(jìn)行開發(fā)

    RH850系列是一種高性能的汽車微控制器系列,專為車身控制、發(fā)動(dòng)機(jī)控制、電動(dòng)驅(qū)動(dòng)系統(tǒng)和安全系統(tǒng)等應(yīng)用而設(shè)計(jì)。它采用了Renesas的RISC(Reduced Instruction Set
    的頭像 發(fā)表于 08-05 15:33 ?5153次閱讀
    <b class='flag-5'>rh850</b>與r7f7的關(guān)系 如何使用<b class='flag-5'>RH850</b>系列MCU進(jìn)行開發(fā)

    rh850是什么架構(gòu)?

    rh850是什么架構(gòu)? RH850是一種高性能嵌入式處理器架構(gòu),由日本汽車電子控制系統(tǒng)公司 (Renesas Electronics) 開發(fā)。RH850架構(gòu)是針對(duì)大型汽車系統(tǒng)設(shè)計(jì)的,旨
    的頭像 發(fā)表于 08-15 16:22 ?3432次閱讀

    RH850與RL78的區(qū)別

    RH850與RL78的區(qū)別 RH850和RL78是兩個(gè)不同系列的芯片,分別由日本的Renesas Electronics公司開發(fā)。雖然它們都是微控制器,但RH850主要應(yīng)用于汽車電子和
    的頭像 發(fā)表于 08-15 16:22 ?3377次閱讀

    rh850與r7f7的關(guān)系

    rh850與r7f7的關(guān)系 RH850和R7F7是兩個(gè)系列的微控制器,它們都來自于日本電子元器件制造商Renesas Electronics。RH850是一款32位的汽車微控制器系列,
    的頭像 發(fā)表于 08-15 16:22 ?2549次閱讀

    rh850和arm的區(qū)別

    rh850和arm的區(qū)別 RH850和ARM是兩種不同的處理器架構(gòu)。RH850是一款Renesas芯片家族,它基于32位RISC架構(gòu),廣泛應(yīng)用于汽車電子和工業(yè)控制系統(tǒng)等領(lǐng)域。ARM也是
    的頭像 發(fā)表于 08-15 16:22 ?3372次閱讀

    rh850是什么系列單片機(jī)?

    rh850是什么系列單片機(jī) RH850是一系列高性能單片機(jī),由日本RENESAS公司生產(chǎn),并且目前已成為全球范圍內(nèi)廣泛應(yīng)用的自主駕駛汽車控制器所采用的主要型號(hào)之一。RH850系列單片機(jī)
    的頭像 發(fā)表于 08-15 16:22 ?2697次閱讀

    rh850是什么芯片?

    rh850是什么芯片? RH850是一款高性能的32位RISC微處理器芯片。它由日本的瑞薩電子公司(Renesas Electronics)開發(fā)和推出,其系列產(chǎn)品電子系統(tǒng)和汽車領(lǐng)域得
    的頭像 發(fā)表于 08-15 16:22 ?5650次閱讀

    rh850是arm架構(gòu)嗎?

    rh850是arm架構(gòu)嗎? Rh850不是ARM架構(gòu),而是一種基于RISC架構(gòu)的嵌入式微控制器。本文中,我們將深入探討RH850微控制器的特點(diǎn)、應(yīng)用和發(fā)展前景。
    的頭像 發(fā)表于 08-15 16:23 ?3988次閱讀

    rh850的pflash和dflash數(shù)據(jù)分配

    是數(shù)據(jù)閃存。這兩種類型的閃存都是RH850微控制器的重要組件。本文中,我們將更深入地研究P-Flash和D-Flash存儲(chǔ)器及其數(shù)據(jù)分配。 P-Flash數(shù)據(jù)分配 P-Flash是存儲(chǔ)RH850
    的頭像 發(fā)表于 08-15 16:23 ?3334次閱讀