iT邦幫忙

2026 iThome 鐵人賽

DAY 19
0
Claude AI

用 Claude 帶我 Bring Up AI 開發板:30 天人機協作實錄系列 第 19 篇

[Day 19] 你以為只有笑臉?還有RISC-V呢!

  • 分享至 

  • xImage
  •  

ESP32-C3 的 CPU 就是 RISC-V 核心。

用三個方式展示 RISC-V

  1. 直接問 CPU:「你是什麼架構?」

RISC-V 規格規定 CPU 裡要有幾個特殊暫存器(CSR),記錄晶片本身的資訊。程式用 RISC-V 專用指令 csrr 把它們讀出來:

https://ithelp.ithome.com.tw/upload/images/20261004/20118900nvKaW1db6z.png

  1. 手寫 RISC-V 組合語言

程式裡有一段自己寫的組合語言迴圈,用到 lw、add、addi、bnez 和 M 擴充的 mul。再用 CPU 的計數器量它跑了多少個時脈週期:

  • 加總 1000 個數字:C 語言 6202 cycles,手寫組語 8094 cycles,兩邊算出的結果一樣。
  • 連續做 1000 次乘法:7165 cycles,大約每次 7 個週期。

手寫的反而比較慢。反組譯一看就知道原因:編譯器的迴圈只要 4 條指令(拿位址跟結束位址比),我寫的要 5 條(另外遞減一個計數器)。這剛好是很好的教學例子:現在的編譯器通常比隨手寫的組語還聰明。

  1. 看到 C 擴充的壓縮指令

把編譯好的程式反組譯,組語被組譯器自動壓成 2 bytes 的短指令,例如 lw 變成 4310。一般指令要 4 bytes,例如 csrr 是 7e2029f3。這就是 misa 裡那個「C」的實際效果:程式碼變小,可以省 flash 空間。

螢幕上會看到

螢幕每 4 秒換一頁:

  1. 大字「RISC-V」和 RV32IMC
  2. misa 的數值和每個字母的意思
  3. 廠商、架構、版本代號
  4. 跑分的 cycle 數,以及兩邊結果是否一致

https://ithelp.ithome.com.tw/upload/images/20261004/20118900JAWtODG29R.jpg


上一篇
[Day 18] 有AI嗎?先笑笑再說
下一篇
[Day 20] 準備好進入大魔王FPGA板了嗎?
系列文
用 Claude 帶我 Bring Up AI 開發板:30 天人機協作實錄 共 20 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言