【RISC-V】解决链接器加入全局变量优化后操作系统无法启动的问题

问题描述:我想在构建操作系统内核本身的链接器脚本中加入全局变量优化,于是我在脚本中加入了小数据段,又在操作系统的汇编代码中初始化了全局寄存器,然后我的操作系统就无法启动了(卡住了)

问题:操作系统的入口是S模式的0x80200000,但我在链接脚本中把 .sdata 段放在了 .text.boot 前面,导致 CPU 从 0x80200000 开始执行的是数据段而非代码,系统立即崩溃,因此"没有输出"。

解决:将新添加的段放在它该在的位置

相关推荐
思尔芯S2C9 小时前
FPGA原型验证实战:如何应对外设连接问题
fpga开发·risc-v·soc设计·prototyping·原型验证
加强洁西卡9 小时前
【RISC-V】从C到可执行文件分析链接重定位的过程
c语言·开发语言·risc-v
硬汉嵌入式9 小时前
基于Rust构建的单片机Ariel RTOS,支持Cortex-M、RISC-V 和 Xtensa
单片机·rust·risc-v
MounRiver_Studio9 小时前
RISC-V IDE MRS2进阶分享(三):MRS语言服务器
ide·mcu·risc-v·嵌入式开发
MounRiver_Studio9 小时前
RISC-V IDE MRS2进阶分享(四):CH32H417双核芯片项目开发
ide·mcu·risc-v·嵌入式开发
加强洁西卡1 天前
【RISC-V】区分加载地址、链接地址、运行地址
risc-v
飞凌嵌入式2 天前
1块集成了4核Cortex-A7高性能CPU、1颗RISC-V MCU、多种高速总线、还兼容树莓派的T153低成本开发板
linux·arm开发·嵌入式硬件·risc-v
加强洁西卡2 天前
【RISC-V】riscv64-linux-gnu工具链都有哪些工具
linux·gnu·risc-v
jerwey2 天前
RISC-V VP 中 TLM 精度
risc-v