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

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

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

【RT-Thread學(xué)習(xí)筆記】RISC-V匯編基礎(chǔ)三大塊知識(shí)

嵌入式物聯(lián)網(wǎng)開發(fā) ? 來源:嵌入式物聯(lián)網(wǎng)開發(fā) ? 作者:嵌入式物聯(lián)網(wǎng)開發(fā) ? 2022-07-30 11:01 ? 次閱讀

1 前言

嵌入式的,或多或少都接觸ARM。

但是近些年隨著科技的發(fā)展,CPU的架構(gòu)家族中,新增了一個(gè)叫RISC-V的家伙。

RISC-V(讀作“RISC-FIVE”)是基于精簡(jiǎn)指令集計(jì)算(RISC)原理建立的開放指令集架構(gòu)(ISA),V表示為第五代RISC(精簡(jiǎn)指令集計(jì)算機(jī)),表示此前已經(jīng)四代RISC處理器原型芯片。每一代RISC處理器都是在同一人帶領(lǐng)下完成,那就是加州大學(xué)伯克利分校的David A. Patterson教授。與大多數(shù)ISA相反,RISC-V ISA可以免費(fèi)地用于所有希望的設(shè)備中,允許任何人設(shè)計(jì)、制造和銷售RISC-V芯片和軟件。它雖然不是第一個(gè)開源的的指令集(ISA),但它很重要,因?yàn)樗谝粋€(gè)被設(shè)計(jì)成可以根據(jù)具體場(chǎng)景可以選擇適合的指令集的指令集架構(gòu)?;赗ISC-V指令集架構(gòu)可以設(shè)計(jì)服務(wù)器CPU,家用電器cpu,工控cpu和用在比指頭小的傳感器中的cpu。

更多詳細(xì)介紹,請(qǐng)參考百度百科,RISC-V簡(jiǎn)介.

2 RISC-V知識(shí)圖譜

本文先列個(gè)大綱,后續(xù)有時(shí)間再補(bǔ)充。

image-20220130231809831

3 RISC-V匯編基礎(chǔ)三大塊

這里整理了RISC-V匯編中非?;A(chǔ)的三大塊知識(shí),了解了這三大塊內(nèi)容基本可以看懂甚至編譯一些簡(jiǎn)單的匯編程序。

3.1 尋址方式

RISC-V分支指令尋址,在之前的B類型指令就是其中之一。 這種格式可以表示從-4096到4094的分支地址,以2的倍數(shù)表示。B型格式包括一個(gè)7位操作碼、一個(gè)3位功能碼、兩個(gè)5位的寄存器操作數(shù)( rs1和 rs2)和一個(gè)12位地址立即數(shù)。該地址使用特殊的編碼方式,簡(jiǎn)化了數(shù)據(jù)通路設(shè)計(jì),但使組裝變得復(fù)雜。下面這條指令

  1. bne x10,x11,2000 // if x10 != xll,go to location 2000 = 0111 1101 0000
在這里插入圖片描述

其中條件分支的操作碼是11001112,而bne 的funct3碼是0012 RISC-V的無條件跳轉(zhuǎn)–鏈接指令(jal),是分支尋址的另一種方法,也是唯一使用J型格式的指令。該指令由一個(gè)7位操作碼、一個(gè)5位目標(biāo)寄存器操作數(shù)(rd)和一個(gè)20位地址立即數(shù)組成。鏈接地址,即jal之后的指令的地址,被寫入rd 中。

如果程序的地址必須適合這個(gè)20位字段,則意味著沒有程序可能大于220,所以另一種方法是指定一個(gè)與分支地址偏移量相加的寄存器,這樣就允許程序大到264,并且仍然能夠使用條件分支指令,以便分支指令可以按如下來計(jì)算:

程序計(jì)數(shù)器=寄存器內(nèi)容+分支地址偏移量 這樣就允許程序大到2^64,并且仍然能夠使用條件分支指令

立即數(shù)尋址,操作數(shù)是指令本身的常量。 寄存器尋址,操作數(shù)在寄存器中。 基址或偏移尋址,操作數(shù)于內(nèi)存中,其地址是寄存器和指令中的常量之和。 PC相對(duì)尋址,分支地址是PC和指令中常量之和。 注: 加載和存儲(chǔ)對(duì)字節(jié)、半字、字或雙字的訪問有不同的版本。

3.2 寄存器的用途

3.2.1 RISC-V的寄存器列表

image-20220130232441214

3.2.2 RISC-V寄存器在匯編代碼中使用

image-20220130232601148

3.3 匯編指令

RISC-V有六種基本指令格式:

  • R 類型指令,用于寄存器-寄存器操作
  • I 型指令,用于短立即數(shù)和訪存 load 操作
  • S 型指令,用于訪存 store 操作
  • B 類型指令,用于條件跳轉(zhuǎn)操作
  • U 型指令,用于長(zhǎng)立即數(shù)
  • J 型指令,用于無條件跳轉(zhuǎn)

4 更多分享

歡迎關(guān)注我的github倉(cāng)庫(kù)01workstation,日常分享一些開發(fā)筆記和項(xiàng)目實(shí)戰(zhàn),歡迎指正問題。

同時(shí)也非常歡迎關(guān)注我的CSDN主頁和專欄:

【CSDN主頁:架構(gòu)師李肯】

RT-Thread主頁:架構(gòu)師李肯】

【C/C++語言編程專欄】

【GCC專欄】

【信息安全專欄】

【RT-Thread開發(fā)筆記】

freeRTOS開發(fā)筆記】

【BLE藍(lán)牙開發(fā)筆記】

【ARM開發(fā)筆記】

【RISC-V開發(fā)筆記】

有問題的話,可以跟我討論,知無不答,謝謝大家。

5 參考鏈接

  • RISC-V 生態(tài)架構(gòu)淺析
  • RISC-V寄存器
  • RISC-V指令

以上參考資料,由本人整理,但來源于網(wǎng)絡(luò),侵刪!

審核編輯:湯梓紅

聲明:本文內(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)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5108

    文章

    19307

    瀏覽量

    310519
  • 匯編語言
    +關(guān)注

    關(guān)注

    14

    文章

    410

    瀏覽量

    36125
  • 匯編
    +關(guān)注

    關(guān)注

    2

    文章

    214

    瀏覽量

    26158
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1324

    瀏覽量

    40902
  • RISC-V
    +關(guān)注

    關(guān)注

    46

    文章

    2405

    瀏覽量

    47338
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RT-Thread學(xué)習(xí)筆記】80x86匯編基礎(chǔ)的三大塊知識(shí)

    RT-Thread學(xué)習(xí)筆記】80x86匯編基礎(chǔ)的三大塊知識(shí)
    的頭像 發(fā)表于 07-30 10:57 ?2126次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>】80x86<b class='flag-5'>匯編</b>基礎(chǔ)的<b class='flag-5'>三大塊</b><b class='flag-5'>知識(shí)</b>

    RT-Thread學(xué)習(xí)筆記】ARM匯編基礎(chǔ)的三大塊知識(shí)

    RT-Thread學(xué)習(xí)筆記】ARM匯編基礎(chǔ)的三大塊知識(shí)
    的頭像 發(fā)表于 07-30 10:59 ?2089次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>】ARM<b class='flag-5'>匯編</b>基礎(chǔ)的<b class='flag-5'>三大塊</b><b class='flag-5'>知識(shí)</b>

    RISC-VRT-Thread有什么區(qū)別

    RISC-VRT-Thread有什么區(qū)別??jī)H僅是軟件層面嗎?
    發(fā)表于 02-05 22:23

    RT-Thread Studio(對(duì)芯來科技RISC-V處理器內(nèi)核開發(fā)的全面支持

    RISC-V生態(tài)仍然存在著不足,配套的軟硬件、工具鏈、OS都需要均衡的發(fā)展。在此環(huán)境下RT-Thread Studio(物聯(lián)網(wǎng)一站式開發(fā)環(huán)境)對(duì)芯來科技RISC-V處理器內(nèi)核開發(fā)的全面支持,為
    發(fā)表于 11-14 09:26

    risc-v峰會(huì)亮點(diǎn) RT-Thread對(duì)RISC-V的支持

    在第一屆RISC-V中國(guó)峰會(huì)上看點(diǎn)很多,我們來看看risc-v峰會(huì)其中一個(gè)非常重要的亮點(diǎn) ;RT-Thread對(duì)RISC-V的支持。 據(jù)悉 RT-T
    發(fā)表于 06-23 11:29 ?7929次閱讀
    <b class='flag-5'>risc-v</b>峰會(huì)亮點(diǎn) <b class='flag-5'>RT-Thread</b>對(duì)<b class='flag-5'>RISC-V</b>的支持

    火熱報(bào)名中!RT-Thread X RISC-V創(chuàng)新應(yīng)用大賽

    RT-Thread聯(lián)手中科藍(lán)訊、沁恒微電子、電子發(fā)燒友發(fā)起RT-Thread X RISC-V 創(chuàng)新應(yīng)用設(shè)計(jì)大賽。
    的頭像 發(fā)表于 09-14 19:35 ?2636次閱讀
    火熱報(bào)名中!<b class='flag-5'>RT-Thread</b> X <b class='flag-5'>RISC-V</b>創(chuàng)新應(yīng)用大賽

    沁恒(WCH)和RT-Thread達(dá)成合作,共建RISC-V應(yīng)用生態(tài)

    沁恒微電子就RISC-V開發(fā)應(yīng)用生態(tài)建設(shè)與睿賽德科技(RT-Thread)簽署合作協(xié)議,雙方將緊密合作基于沁恒RISC-V MCU和RT-Thread物聯(lián)網(wǎng)操作系統(tǒng)打造
    發(fā)表于 09-18 17:37 ?3273次閱讀
    沁恒(WCH)和<b class='flag-5'>RT-Thread</b>達(dá)成合作,共建<b class='flag-5'>RISC-V</b>應(yīng)用生態(tài)

    RT-Thread Nano入門學(xué)習(xí)筆記

    RT-Thread Nano入門學(xué)習(xí)筆記
    發(fā)表于 11-26 12:36 ?20次下載
    <b class='flag-5'>RT-Thread</b> Nano入門<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>

    RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 理解defunct僵尸線程

    RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 內(nèi)核對(duì)象rt_objectRT-Thread 內(nèi)核學(xué)習(xí)筆記
    發(fā)表于 01-25 18:19 ?9次下載
    <b class='flag-5'>RT-Thread</b> 內(nèi)核<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b> - 理解defunct僵尸線程

    RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 設(shè)備模型rt_device的理解

    RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 內(nèi)核對(duì)象rt_objectRT-Thread 內(nèi)核學(xué)習(xí)筆記
    發(fā)表于 01-25 18:19 ?8次下載
    <b class='flag-5'>RT-Thread</b> 內(nèi)核<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b> - 設(shè)備模型<b class='flag-5'>rt</b>_device的理解

    RT-Thread全球技術(shù)大會(huì):RISC-V指令集開源軟件生態(tài)介紹

    RT-Thread全球技術(shù)大會(huì):RISC-V指令集開源軟件生態(tài)介紹
    的頭像 發(fā)表于 05-27 09:47 ?1268次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):<b class='flag-5'>RISC-V</b>指令集開源軟件生態(tài)介紹

    RT-Thread全球技術(shù)大會(huì):RISC-V的背景、現(xiàn)狀以及未來規(guī)劃

    RT-Thread全球技術(shù)大會(huì):RISC-V的背景、現(xiàn)狀以及未來規(guī)劃 ? ? ? ? ? ? 審核編輯:彭靜
    的頭像 發(fā)表于 05-27 09:57 ?1261次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):<b class='flag-5'>RISC-V</b>的背景、現(xiàn)狀以及未來規(guī)劃

    RT-Thread全球技術(shù)大會(huì):RISC-V成為未來大主流架構(gòu)之一

    RT-Thread全球技術(shù)大會(huì):RISC-V成為未來大主流架構(gòu)之一 ? ? ? ? ? 審核編輯:彭靜 ?
    的頭像 發(fā)表于 05-27 10:02 ?1139次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):<b class='flag-5'>RISC-V</b>成為未來<b class='flag-5'>三</b>大主流架構(gòu)之一

    RT-Thread學(xué)習(xí)筆記】Makefile的FORCE

    RT-Thread學(xué)習(xí)筆記】十分鐘學(xué)會(huì)Makefile的FORCE
    的頭像 發(fā)表于 07-30 13:55 ?2834次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>】Makefile的FORCE

    RT-Thread開發(fā)者大會(huì)RISC-V分論壇動(dòng)手實(shí)踐指南

    明天,RT-Thread開發(fā)者大會(huì)將在上海臨港中心舉行。RT-Thread開發(fā)者大會(huì)是嵌入式開發(fā)者的年度盛會(huì),為開發(fā)者提供交流和學(xué)習(xí)的平臺(tái)。2023年RT-Thread開發(fā)者大會(huì)將圍繞
    的頭像 發(fā)表于 12-22 18:15 ?1104次閱讀
    <b class='flag-5'>RT-Thread</b>開發(fā)者大會(huì)<b class='flag-5'>RISC-V</b>分論壇動(dòng)手實(shí)踐指南