瑞萨作为MCU大厂之一,尤其是在汽车领域,经过多年的积累与开发,旗下已经有了多条MCU产品线。在32位MCU上,有基于自研CISC内核的RX系列,也有基于Arm Cortex-M架构的RA系列。即便如此,瑞萨还是决心开拓第三条产品线,而这条产品线正是基于RISC-V架构。英特尔对推进RISC-V也颇有兴趣,2022年英特尔大力扶植RISC-V—...
瑞萨作为MCU大厂之一,尤其是在汽车领域,经过多年的积累与开发,旗下已经有了多条MCU产品线。在32位MCU上,有基于自研CISC内核的RX系列,也有基于Arm Cortex-M架构的RA系列。即便如此,瑞萨还是决心开拓第三条产品线,而这条产品线正是基于RISC-V架构。 英特尔对推进RISC-V也颇有兴趣,2022年英特尔大力扶植RISC-V——以...
在 32 位 MCU 上,有基于自研 CISC 内核的 RX 系列,也有基于 Arm Cortex-M 架构的 RA 系列。即便如此,瑞萨还是决心开拓第三条产品线,而这条产品线正是基于 RISC-V 架构。 英特尔对推进 RISC-V 也颇有兴趣,2022 年英特尔大力扶植 RISC-V——以 Premier(高级会员)的身份,加入了 RISC-V International 基金会...
main函数使用jal指令,跳转到函数a,并且设置了ra寄存器(这是jal指令的操作)。 接着在函数a()内,首先把ra寄存器的值存储到栈上,然后开始执行其他操作。 在函数a()将要返回的时候,从栈上取出ra的值,并设置到ra寄存器内,于是ret指令就能返回到main函数了。
子函数退出时返回登录后复制ra处执行 函数进入时的处理:减少登录后复制sp,登录后复制s寄存器个数和局部变量大小的空间,存储使用到的登录后复制s寄存器到栈中。如果还有子函数调用则存储登录后复制ra到栈中(因为子函数的子函数的返回值要存到登录后复制ra会覆盖登录后复制ra)。
指令就是我们交代CPU 要执行的操作,指令集就可以简单理解为指令的集合。我们把cpu 能够识别的指令汇总在一起就构成了一个指令集。 不同的CPU 有不同的指令集,根据他们的繁简程度可以分为两种:复杂指令集CISC 和精简指令集 RISC 1.2 指令集架构 指令架构(Instruction Set Architecture, 缩写为ISA),是软件和硬件的...
上图中是执行完 xori a0,a0,0 指令之后,执行 jr ra 指令之前的状态,我们已经看到 a0 寄存器中的值已经变成 0xff 了,这说明运算的结果正确。 xori_ins 函数返回后,输出的结果如下图所示: 结合上面这张截图不难发现,我们传递给 xori_ins 函数的参数是 0xff,因为 0xff 的二进制数据是(0b0000000000000000000000...
ret=ja ra=jalr x0,ra,0 实现的操作 首先是PC+4写入x0,然后通过设置PC等于ra加0来实现跳转,也就相当于是实现的跳转ra中所保存的返回地址位置的作用 2.第二种用法是与LUI指令组合使用,实现对任意32位绝对地址数的功能函数进行函数调用 lui x1,<Hi20bits> #对X1寄存器写入高20位的地址值 ...
RISCV基础原理介绍 初识RISC-V https://www.cnblogs.com/wahahahehehe/p/15574316.html 1.1 什么是RISC-V 了解RISC-V之前,先熟悉一个概念,指令集架构(Instruction Set Architectur