assembly - “riscv,plic0”中启用的中断布局取决于什么?
问题描述
我正在尝试用 risc-v 汇编语言编写与平台无关的辅助函数,以使用平台级中断控制器,在 SiFive FU540-C000 的设备树中标记为“riscv,plic0”。目标是能够禁用和启用外部中断。
在我下面的问题中,我特别提到了 SiFive FU540-C000,它由一个仅具有机器模式的内核和四个具有机器、主管和用户模式的内核组成。
在SiFive FU540-C000 手册 v1p0的第 10.1 章中,所有硬件线程都占用了 0x100 字节的中断使能数组,但硬件线程 0 除外。硬件线程 0 的地址范围为 0x80 字节长。
考虑到硬件线程 0 只属于机器模式核心,我认为这可能与缺少主管、用户和潜在的管理程序模式有关。但是,由于地址范围的长度差异为 0x20 字节,因此没有合理的模式来分配这三种模式。
为什么中断使能中硬件线程 0 的地址范围正好比任何其他硬件线程的地址范围短 0x20 个字节?
已解决:我忘记了我正在使用十六进制十进制数,在这种情况下,0x80 是 0x100 的一半。因此,由于只支持一半的操作模式,硬件线程 0 的地址范围是任何其他硬件线程的一半。
解决方案
推荐阅读
- excel - 如何将系列集合添加到 Excel VBA 中的图表
- mysql - 如何在mysql中形成连接查询以根据某些状态条件过滤记录
- python - 动态分段每个单词的 .wav 文件
- ruby-on-rails - 为什么 bootsnap kernel_require 失败
- android - 如何在 mpandroidchart 条形图的条形顶部设置图标?
- python - 如何选择与硒元素完全相同的元素?
- twilio - Twilio我在哪里可以找到试用帐户上的 SenderID
- c# - 如何使应用程序最小化?
- android-layout - Jetpack Compose 布局挑战
- javascript - 即使在缩放时如何制作固定大小的网格?