簡體   English   中英

使用 C 程序可以訪問 RISC-V 的寄存器文件嗎?

[英]Using C-program can I access register file of RISC-V?

我想使用 C 程序訪問 RISC-V 的寄存器文件。 有什么方法可以使用 C 程序直接寫入和讀取 RISC-V 的寄存器文件?

沒有使用 C 語言訪問寄存器的可移植方式,因為 C 在寄存器/ RTL (粗略地說)之上的抽象級別上工作。

但是,可能有編譯器特定的方法可以做到這一點,使用內置的編譯器內在函數。 看:

https://gcc.gnu.org/onlinedocs/gcc/Target-Builtins.html

https://gcc.gnu.org/onlinedocs/gcc/Explicit-Register-Variables.html

https://gcc.gnu.org/onlinedocs/gcc/Global-Register-Variables.html

https://gcc.gnu.org/onlinedocs/gccint/Registers.html

請參閱這些其他 StackOverflow 問題:

在不使用 gcc 的內聯匯編的情況下訪問寄存器

將寄存器值讀入 C 變量

編輯

使用 GCC 的 C-intrinsics 似乎不支持 RISC-V 寄存器訪問。 您可能必須使用(內聯)匯編來實現它。

編輯2

如果您知道它們的地址,一些(大多數?)嵌入式處理器在沒有操作系統的情況下運行裸機(即不在虛擬內存系統中)可以訪問它們的寄存器。 但這在很大程度上取決於您運行的硬件。 正如 Erik Eidt 所問:你想做什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM