diff --git a/Demo-Build/RISC-V32/readme.txt b/Demo-Build/RISC-V32/readme.txt index a3e1db3d..888c4a1c 100644 --- a/Demo-Build/RISC-V32/readme.txt +++ b/Demo-Build/RISC-V32/readme.txt @@ -5,20 +5,24 @@ RISC-V32 之系统构建 1、rv32 目前暂不支持 cube 安装,用户需手动移植。移植过程中遇到问题 可加入社区获取技术支持。 + 2、目前仅支持 PSP栈模式,即不存在全局唯一主栈或中断专用栈,而是当前 任务栈即为当前主栈。这导致所有中断都是入任务栈,所以中断嵌套深度 应尽量配置少一些,同时任务栈SIZE应尽量大一些,以防溢出。 + 3、CosyOS 采用了自研先进技术,可实现 CH32V 全程开启硬件压栈。 该技术为纯软件实现,不依赖特定硬件(0x804->bit5),V103、203 等 皆可完美支持。所以,如果您的处理器支持硬件压栈,建议开启。 - 如果开启硬件压栈,用户应注意以下事项: + + 如果开启硬件压栈,中断函数的声明原则等同裸机。 + 即如果最大硬件压栈深度为3级,需要将低优先级的三级中断声明为硬件压栈, + 高优先级的中断声明为软件压栈。 + + RV32I 开启硬件压栈,还应注意: (1)处理器需要仅工作在机器模式 可在启动文件中,通过配置 mstatus 的 MPP 为 3 来实现。 - (2)中断函数的声明原则等同裸机 - 即如果最大硬件压栈深度为3级,需要将低优先级的三级中断声明为 - 硬件压栈,高优先级的中断声明为软件压栈。 - (3)x4(tp)、mscratch、0xE000E040(中断优先级阈值)等寄存器, - 专用于任务切换,不允许用户使用。 + (2)x4(tp)、mscratch、0xE000E040(中断优先级阈值)等寄存器,专用 + 于任务切换,不允许用户使用。 移植流程(以 MRS2 为例)