在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

RISC-V MCU gp全局指針說明

CHANBAEK ? 來源:CSDN-借過風景 ? 作者:CSDN-借過風景 ? 2023-02-15 11:55 ? 次閱讀

gp ,g lobal pointer,全局指針寄存器RISC-V 32個寄存器之一,為了優(yōu)化±2KB內(nèi)全局變量的訪問。

gp寄存器在啟動代碼中加載為__global_pointer$的地址,并且之后不能被改變。

linker時使用 __global_pointer$ 來比較全局變量的地址,如果在范圍內(nèi),就替換掉lui或puipc指令的 absolute/pc-relative尋址, 變?yōu)間p-relative尋址,使得代碼效率更高。 該過程被稱為 linker relaxation (鏈接器松弛),也可以使用-Wl,--no-relax來關閉此功能。

如:需要讀取全局變量 tao_global的值,地址位 0x20000100 ,gp指針地址為 0x20000800 ;

  • 普通調(diào)用方式為:
    lui a5,0x20000 /* 將0x20000100200x20000 左移12位賦給a5寄存器 */
    lw a5,256(a5) /* 加載a5+2560x1000x2000010012位)的值至a5寄存器 */
    
  • gp指針優(yōu)化調(diào)用方式:
    lw a5,-1792(gp) /* 加載gp-1792地址處的值至a5,即0x20000100處的值*/
    

通過gp指針,訪問其值±2KB,即4KB范圍內(nèi)的全局變量,可以節(jié)約一條指令。

4KB區(qū)域可以位于尋址內(nèi)存中任意位置,但是為了使優(yōu)化更有效率,最好覆蓋最頻繁使用的RAM區(qū)域。 對于標準的newlib應用程序,這是分配.sdata部分的區(qū)域,因為它包含了諸如_impure_ptr、malloc_sbrk_base等變量。 因此,定義應該被放在.sdata部分之前。 以RISC-V MCU CH32V103 ld文件為例:

.data :
    {
        *(.gnu.linkonce.r.*)
        *(.data .data.*)
        *(.gnu.linkonce.d.*)
        . = ALIGN(8);
        PROVIDE( __global_pointer$ = . + 0x800 ); /* __global_pointer地址*/
        *(.sdata .sdata.*)
        *(.sdata2.*)
        *(.gnu.linkonce.s.*)
        . = ALIGN(8);
        *(.srodata.cst16)
        *(.srodata.cst8)
        *(.srodata.cst4)
        *(.srodata.cst2)
        *(.srodata .srodata.*)
        . = ALIGN(4);
        PROVIDE( _edata = .);
    } >RAM AT>FLASH

gp指針優(yōu)化代碼空間---

通常情況下,gp指針定義在data區(qū),有時候為了優(yōu)化代碼密度,可以根據(jù)實際情況修改gp指針的位置,如工程中定義了大量的初始化為0或未初始化的全局數(shù)組作為緩沖區(qū),可以將gp指針的位置定義到bss段。

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

    關注

    146

    文章

    17356

    瀏覽量

    352788
  • 寄存器
    +關注

    關注

    31

    文章

    5369

    瀏覽量

    121275
  • 指針
    +關注

    關注

    1

    文章

    481

    瀏覽量

    70613
  • 變量
    +關注

    關注

    0

    文章

    613

    瀏覽量

    28475
  • RISC-V
    +關注

    關注

    45

    文章

    2328

    瀏覽量

    46669
收藏 人收藏

    評論

    相關推薦

    擁抱RISC-V的開發(fā)世界 兆易創(chuàng)新推GD32VF103系列RISC-V MCU

    兆易創(chuàng)新推出GD32V系列RISC-V內(nèi)核32位通用MCU新品,現(xiàn)在,直接使用GD32V系列32位通用MCU以創(chuàng)意靈感擁抱
    發(fā)表于 08-23 10:05 ?8007次閱讀

    國產(chǎn)RISC-V MCU推薦

    高速PHY收發(fā)器(480Mbps)、千兆以太網(wǎng)MAC及10兆物理層收發(fā)器等。 沁恒的另一顆芯片 xiaolinen認為在選擇國產(chǎn)RISC-V MCU時,需要重點考慮生態(tài)問題,碰到問題是否能快速的找到
    發(fā)表于 04-17 11:00

    RISC-VMCU與ARM對比

    RISC-VMCU與ARM在多個方面存在顯著的區(qū)別,以下是兩者的對比: 開源與專有 RISC-VRISC-V是一種開源的指令集架構(ISA),允許任何人免費使用、修改和貢獻
    發(fā)表于 05-27 15:58

    RISC-VMCU關于USB高速通信設計的難點

    RISC-VMCU關于USB高速通信設計的難點主要集中在硬件集成、性能優(yōu)化、軟件生態(tài)和成本效益等方面。以下是針對這些難點的詳細分析和歸納: 硬件集成與外設支持 : 高速USB PHY集成 :傳統(tǒng)
    發(fā)表于 05-27 16:23

    risc-vmcu對RTOS兼容性如何

    RISC-VMCU對RTOS(實時操作系統(tǒng))的兼容性主要取決于多個因素,包括RTOS的版本、RISC-V指令集的實現(xiàn)、以及芯片制造商提供的支持。以下是關于RISC-V
    發(fā)表于 05-27 16:26

    RISC-V MCU入門

    RISC-V MCU入門哪個廠家的資料比較全?
    發(fā)表于 11-27 16:51

    RISC-V MCU技術

    嘿,咱來聊聊RISC-V MCU技術哈。 這RISC-V MCU技術呢,簡單來說就是基于一個叫RISC-V的指令集架構做出的微控制器技術。
    發(fā)表于 01-19 11:50

    RISC-V MCU開發(fā) (一):集成開發(fā)環(huán)境

    、鏈接腳本文件編輯、全局配置、工程配置、命令行工具、重新編譯等功能入口。 【內(nèi)置芯片工程】MRS內(nèi)置WCH、GD等廠家RISC-V、ARM等系列MCU的芯片工程模板,同時支持Harmony
    發(fā)表于 09-22 14:44

    RISC-V MCU開發(fā)相關資料分享

    RISC-V MCU開發(fā)(一):集成開發(fā)環(huán)境近年來,RISC-V生態(tài)獲得了空前的繁榮發(fā)展,國內(nèi)外眾多科技公司紛紛下場布局、行業(yè)應用層出不窮,搭載RISC-V內(nèi)核的
    發(fā)表于 11-10 07:50

    RISC-V MCU開發(fā)相關資料分享

    RISC-V MCU開發(fā) (二):工程創(chuàng)建與管理MounRiver? Studio(MRS)內(nèi)置了GD、WCH等芯片廠家的RISC-V/ARM以及RISC-V通用指令集系列的芯片工程模
    發(fā)表于 12-09 08:14

    RISC-V的相關資料分享

      大家好,我是痞子衡,是正經(jīng)搞技術的痞子。今天痞子衡給大家介紹的是國內(nèi)RISC-V內(nèi)核MCU廠商(2021)。  雖然RISC-V風潮已經(jīng)吹了好幾年,但2019年才是其真正進入主流市場的元年,最近
    發(fā)表于 02-11 06:23

    RISC-V MCU開發(fā)的相關資料分享

    RISC-V MCU開發(fā) (十一):跨內(nèi)核工程轉(zhuǎn)換大多數(shù)嵌入式工程師使用Keil進行開發(fā),但Keil目前不支持RISC-V內(nèi)核,只支持ARM內(nèi)核。MounRiver? Studio(MRS)同時支持
    發(fā)表于 02-11 06:17

    RISC-V gp全局指針寄存器說明

    RISC-V 32個寄存器之一,為了優(yōu)化±2KB內(nèi)全局變量的訪問。 gp寄存器在啟動代碼中加載為__global_pointer$的地址,并且之后不能被改變。 linker時使用__global_pointer
    發(fā)表于 09-11 16:57

    RISC-V MCU開發(fā)(一):集成開發(fā)環(huán)境

    RISC-V MCU開發(fā)(一):集成開發(fā)環(huán)境近年來,RISC-V生態(tài)獲得了空前的繁榮發(fā)展,國內(nèi)外眾多科技公司紛紛下場布局、行業(yè)應用層出不窮,搭載RISC-V內(nèi)核的
    發(fā)表于 11-05 16:35 ?37次下載
    <b class='flag-5'>RISC-V</b> <b class='flag-5'>MCU</b>開發(fā)(一):集成開發(fā)環(huán)境

    推出采用GD32 RISC-VMCU

    推出采用GD32 RISC-VMCU ppt分享
    發(fā)表于 07-14 17:15 ?0次下載
    主站蜘蛛池模板: 爱爱永久免费视频网站 | 黄网站免费视频 | 在线看片地址 | 天天躁天天爽 | 欧美午夜剧场 | 澳门三级bd高清 | 日韩一级在线观看 | 国产亚洲综合一区 柠檬导航 | 在线观看日本免费视频大片一区 | 免费又黄又硬又大爽日本 | 免费永久欧美性色xo影院 | 天天综合天天 | 国产精品久久久亚洲 | 国产一卡二卡≡卡四卡无人 | 狠狠干天天操 | 一级毛片一级黄片 | 天天插天天干 | 色婷婷综合久久久 | 亚洲偷自偷白图片 | 欧美一级特黄高清免费 | 亚洲操综合 | 精品视频日本 | 国产日本在线观看 | 末成年一级在线看片 | www.色爱| 亚洲一在线 | www.亚洲天堂 | 亚洲精品一线二线三线 | 五月天亚洲综合 | 成人免费看黄页网址大全 | 精品卡1卡2卡三卡免费视频 | 最近观看免费高清视频 | 日本在线不卡一区 | 女人午夜啪啪性刺激免费看 | 三级视频网站在线观看 | 久久这里只精品热在线8 | 黄色生活毛片 | 婷婷综合久久中文字幕 | 夜恋秀场欧美成人影院 | 全免费午夜一级毛片真人 | 国产成人精品1024在线 |