《RISC-V体系结构编程与实践》的benos_payload程序——mysbi跳转到benos分析

1、benos_payload.bin结构分析

韦东山老师提供的开发文档里已经对程序的结构做了分析,这里不再赘述,下面是讨论mysbi跳转到benos的问题;

2、mysbi跳转到benos的代码

3、跳转产生的疑问

我认为mysbi.bin最后跳转到0x22000地址处执行,此时benos.bin代码不在0x22000地址处,需要代码重定位,但是在mysbi.bin的源文件中并没有进行代码重定位;

4、实际的程序加载内存布局

(1)产生疑问的原因:错误的认为benos_payload.bin是紧凑排布的,实际上根据链接脚本,在生成bin文件时已经考虑了偏移量,中间部分被用0填充,可以使用二进制查看软件分析benos_payload.bin,能看到文件0x2000偏移处正好是benos.bin;

(2)结论:将benos_payload.bin加载在IRAM中后,0x22000地址处已经是benos.bin,所以不需要代码重定位;

相关推荐
国科安芯4 天前
前沿探索:RISC-V 架构 MCU 在航天级辐射环境下的可靠性测试
网络·单片机·嵌入式硬件·fpga开发·硬件架构·risc-v
longxiangam5 天前
墨水屏程序
单片机·嵌入式硬件·rust·risc-v
咕咚.萌西6 天前
RISC-V体系架构
嵌入式硬件·架构·risc-v
咕咚.萌西6 天前
RISC-V开发环境搭建
linux·硬件架构·risc-v
OpenAnolis小助手12 天前
睿思芯科正式加入龙蜥社区,携手共建 RISC-V 服务器生态新标杆
操作系统·龙蜥社区·risc-v·龙蜥生态
芯有所享24 天前
【ARM vs RISC-V:芯片架构双雄争霸,谁将主宰AI时代?】
arm开发·人工智能·risc-v
ChipCamp1 个月前
ChipCamp探索系列 -- 1. Soft-Core RISC-V on FPGA
fpga开发·verilog·risc-v
ChipCamp1 个月前
Chisel芯片开发入门系列 -- 18. CPU芯片开发和解释8(流水线架构的代码级理解)
开发语言·青少年编程·fpga开发·scala·dsp开发·risc-v·chisel
思尔芯S2C1 个月前
Cost-Effective and Scalable: A Smarter Choice for RISC-V Development
fpga开发·risc-v·soc设计·prototyping
ChipCamp1 个月前
Chisel芯片开发入门系列 -- 14. CPU芯片开发和解释4(Load/Store指令再探)
arm开发·青少年编程·fpga开发·scala·dsp开发·risc-v·chisel