,sp,a0
80000016: 652050ef jal ra,80005668
我们看到了_entry这个标签,也就是说内核是从_entry开始运行的,那我们首先查看一下...因为这个操作系统是运行在多核的RISC-V操作系统上,由多个核同时访问一个内存空间,所以说每个核的CPU只在允许的内存空间中执行代码.其中每个核的寄存器又是不一样的,所以说可以修改每个核的sp寄存器来区分不同的核的代码运行空间...再下一步,指定程序允许的物理地址,在S态我们允许访问所有的物理地址
在下一步,对时钟芯片编程以产生计时器中断.
再下一步,取CPU的核id
最后一步,返回到main()函数,执行mret指令....其中M态是机器态,在M态的操作系统有最高的权限,最高的优先级,可以执行所有指令,但是操作系统一般只在刚开始启动的时候是M态,在执行了一段初始化代码后就会降低到S态....操作系统的内核一般是在S态进行运行,在S态,我们可以执行所有的指令,包括一部分特权指令,特权指令不知道的回去翻一下操作系统书.