news 2026/5/30 22:06:41

【RISC-V】branch_test调用add_test陷入死循环的原因

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【RISC-V】branch_test调用add_test陷入死循环的原因

代码如下:

add_test: add a0, a0, a1 nop ret .global branch_test branch_test: li a0, 1 li a1, 2 call add_test nop ret

原因:原本寄存器ra存储的是父函数branch_test的返回地址,call add_test的时候把ra寄存器改成了存储子函数的返回地址,即下一条指令(nop指令)的地址,但父函数走完call后走nop走ret,因为ra寄存器的值,又回到了nop,然后ret......陷入死循环。

解决方法:

1、增加一个临时寄存器x18专门存放父函数的返回地址

add_test: add a0, a0, a1 nop ret .global branch_test branch_test: mv x18, ra li a0, 1 li a1, 2 call add_test nop mv ra, x18 ret

2、在内存中开辟一个栈存储父函数的返回地址

add_test: add a0, a0, a1 nop ret .global branch_test branch_test: addi sp, sp, -8 sd ra, (sp) li a0, 1 li a1, 2 call add_test nop ld ra, (sp) addi sp, sp, 8 ret
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 17:29:22

cv_resnet18图片处理慢?推理速度优化实战解决方案

cv_resnet18图片处理慢?推理速度优化实战解决方案 1. 问题定位:为什么cv_resnet18_ocr-detection跑得慢? 你是不是也遇到过这样的情况:上传一张普通尺寸的截图,WebUI界面卡在“检测中…”长达3秒以上;批量…

作者头像 李华
网站建设 2026/5/28 21:06:50

Emotion2Vec+ Large如何重启服务?run.sh脚本执行命令详解

Emotion2Vec Large如何重启服务?run.sh脚本执行命令详解 1. 系统重启前的必要认知 1.1 为什么需要重启服务 Emotion2Vec Large语音情感识别系统在长时间运行后,可能会遇到几种典型情况:模型推理缓存堆积导致响应变慢、WebUI界面卡顿无法刷…

作者头像 李华
网站建设 2026/5/28 16:58:37

Qwen情感分类不精准?System Prompt调优教程

Qwen情感分类不精准?System Prompt调优教程 1. 问题背景:为什么情感分析会“翻车”? 你有没有遇到过这种情况:输入一句明显开心的话,比如“终于搞定项目了,爽!”,结果AI却冷冷地告…

作者头像 李华
网站建设 2026/5/30 14:55:45

Z-Image-Turbo插件机制设想:支持第三方扩展的功能架构设计

Z-Image-Turbo插件机制设想:支持第三方扩展的功能架构设计 1. Z-Image-Turbo_UI界面概览 Z-Image-Turbo不是一款“开箱即用”就完事的图像生成工具,而是一个具备清晰扩展路径的技术平台。它的UI界面是整个能力体系的交互入口,也是插件机制落…

作者头像 李华
网站建设 2026/5/29 22:03:50

手把手教你用科哥OCR镜像做证件文字提取(附截图)

手把手教你用科哥OCR镜像做证件文字提取(附截图) 1. 教程目标与适用人群 你是不是经常需要从身份证、营业执照、合同文件这些证件中提取文字?手动打字太慢,复制粘贴又不行。今天我就带你用一个超实用的AI工具——科哥OCR镜像&am…

作者头像 李华
网站建设 2026/5/28 17:18:04

从零开始部署GPEN:Python 3.11环境下的完整操作手册

从零开始部署GPEN:Python 3.11环境下的完整操作手册 你是不是也遇到过这些情况:老照片泛黄模糊、手机拍的人像细节糊成一片、社交媒体上传的自拍总被说“不够清晰”?别急着换相机或找修图师——现在有一套开箱即用的方案,能让你在…

作者头像 李华