Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    求助:D1怎样从M模式切换到S模式呢?

    MR Series
    3
    13
    3673
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Z
      小红帽 LV 4 last edited by zt13947787451

      我尝试着将D1的工作模式从M模式切换到S模式,使用的是mret命令,mepc、mstatus等均已设置,但是当执行到mret后就直接进入异常了。

      1 Reply Last reply Reply Quote Share 0
      • xiaowenge
        DOT小文哥 LV 8 last edited by xiaowenge

        Dear friend, neither my colleagues nor I are clear about your question. What do you want to do? What do M mode and S mode mean? Switch register mode?If you are a foreign friend and you are using machine translation, you can say noon directly, so that it will be easier for us to understand

        Z 1 Reply Last reply Reply Quote Share 0
        • YuzukiTsuru
          柚木 鉉 LV 9 last edited by

          简单的方法使用OpenSBI,RustSBI切换,不太建议直接操作CSR寄存器。

          如果需要操作寄存器切换,可以尝试参考Xuantie_C906_R1S0_User_Manual.pdf 中的附录A与附录C相关的操作说明。

          官方的D1使用的是OpenSBI

          1 Reply Last reply Reply Quote Share 0
          • Z
            小红帽 LV 4 @xiaowenge last edited by

            @xiaowenge 就是D1有3种工作模式,机器模式,监管者模式和用户模式,开发版上电后是在机器模式,然后我想把他切换到监管模式以便于使用MMU。我切换的方式是参考opensbi的设置mepc,mstatus.mpp等,然后mret,但是当mret后就直接进异常了,mcause的值是1

            YuzukiTsuru 1 Reply Last reply Reply Quote Share 0
            • YuzukiTsuru
              柚木 鉉 LV 9 @zt13947787451 last edited by

              @zt13947787451 参考这个OpenSBI,这个是D1使用的版本,可能master的OpenSBI有些更改。opensbi.zip

              或者贴一下操作的code

              Z 2 Replies Last reply Reply Quote Share 0
              • Z
                小红帽 LV 4 @YuzukiTsuru last edited by

                @yuzukitsuru 嗯嗯,我正在试opensbi,以下是我自己切换的代码:
                main:
                la t0, traps_entry
                csrw mtvec, t0
                li t0, 1 << 12
                csrc mstatus, t0
                li t1,1 << 11
                csrs mstatus, t1
                la t2, test_S_mode_ok
                csrw mepc, t2
                mret

                1 Reply Last reply Reply Quote Share 0
                • Z
                  小红帽 LV 4 @YuzukiTsuru last edited by

                  @yuzukitsuru 试了opensbi,也是不可以,mret后就直接挂了,是不是和编译参数有关系呀

                  YuzukiTsuru 1 Reply Last reply Reply Quote Share 0
                  • YuzukiTsuru
                    柚木 鉉 LV 9 @zt13947787451 last edited by

                    @zt13947787451 直接烧录编译出来的fw_jump.bin呢?我这边对模式切换也不熟,也只是停留在能用OpenSBI的阶段

                    Z 1 Reply Last reply Reply Quote Share 0
                    • Z
                      小红帽 LV 4 @YuzukiTsuru last edited by

                      @yuzukitsuru 咦~这个fw_jump.bin可以直接烧进去运行吗?好像没有bootrom的头部信息诶

                      YuzukiTsuru 1 Reply Last reply Reply Quote Share 0
                      • YuzukiTsuru
                        柚木 鉉 LV 9 @zt13947787451 last edited by

                        @zt13947787451 可以用xfel运行,初始化写入内存,然后直接在内存里运行

                        Z 1 Reply Last reply Reply Quote Share 0
                        • Z
                          小红帽 LV 4 @YuzukiTsuru last edited by

                          @yuzukitsuru 确实可以直接运行,但要怎样证明他成功跳转了呢,我跳转到一个打印的地方,没有打印

                          YuzukiTsuru 1 Reply Last reply Reply Quote Share 0
                          • YuzukiTsuru
                            柚木 鉉 LV 9 @zt13947787451 last edited by

                            @zt13947787451 可以试试用OpenSBI引导U-Boot什么的

                            Z 1 Reply Last reply Reply Quote Share 0
                            • Z
                              小红帽 LV 4 @YuzukiTsuru last edited by

                              @yuzukitsuru 终于找到问题了,切换模式要配置PMP,默认PMP是关闭的,关闭的情况下S模式和U模式访存会抛异常。

                              1 Reply Last reply Reply Quote Share 1
                              • 1 / 1
                              • First post
                                Last post

                              Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

                              行为准则 | 用户协议 | 隐私权政策