2288|9

7219

帖子

195

TA的资源

五彩晶圆(高级)

楼主
 

一起围读《RISC-V体系结构编程与实践 》+栈的对比学习 [复制链接]

RISC-V体系结构编程与实践 +栈的对比学习

 

最近温习了前面一阵子看的栈的章节,正好用ARM的操作与RISCV书上的例程做了一个简单的对比学习。

对比之后才发现,笨叔这本书写的真的很用心,所有的例程分析都很细致,解释的也很细微,很佩服,新手也能一下子就能看懂。

 

先来看下书上的内容

首先笨叔是介绍了栈的含义,一看大家就很明白,后面对比了ARM入栈出栈的区别

 

最大的区别应该就是ARM提供了POP和PUSH指令,RISC-V需要自己来实现

看下

 

下面对照书上的实例对比看看

 

 

硬件我使用的是ARM CORTEX-M4内核的STM32F407VGT6做仿真对比

 

 

我们打开CORTEX-M4的权威手册,翻开查阅如下图所示

 

 

编程也很简单,就是一个赋值语句

 

看下仿真的时候截图

 

可以看出,当参数大于通用寄存器数量时,后面的参数是通过栈来传递

下面加入调用一个子函数

看下书中RSICV的例程

 

可以看出来RISCV是没有入栈压栈指令的,需要自己操作SP

下面我们再ARM中同样加入子函数,看看仿真结果,很明显调用了入栈指令

 

最新回复

还是有点用的,不知道底层的机制,应用也是糊里糊涂的,就跟不知道总线,时钟配置总是不清不楚的   详情 回复 发表于 2023-5-18 17:24
点赞(1) 关注

回复
举报

4854

帖子

3

TA的资源

版主

沙发
 
  1. 首先需要搞清楚栈的概念与实现:了解push、pop等操作之间的关系以及栈内存分配释放机制。

  2. 了解RISC-V体系结构中堆栈控制相关寄存器的功能:mepc、sp等。这些寄存器可用于管理函数调用、中断响应等操作中的栈帧信息,因此对于编写高效、安全的代码非常重要。

  3. 学习栈的应用场景:栈主要用于数据的临时存储,例如存储函数执行时的局部变量、函数调用时的返回地址等,还广泛应用于中断处理、线程调度等方面。

  4. 比较不同栈的实现方式:了解不同编译器和操作系统对栈实现的方式差异,在实践中逐渐了解各自的优缺点,以及如何根据实际需求来选择最适合的栈实现方式。

  5. 练习编写与调试相关的栈操作代码:通过实验,例如实现递归函数、中断处理等程序示例,手动跟踪和验证代码在堆栈中的运行情况,在不断积累经验的基础上逐渐探索更为复杂的应用场景。

点评

专业啊  兄弟专门搞底层的吗 这个我还真没有去细究  详情 回复 发表于 2023-5-14 22:48
 
 

回复

7219

帖子

195

TA的资源

五彩晶圆(高级)

板凳
 
led2015 发表于 2023-5-14 21:37 首先需要搞清楚栈的概念与实现:了解push、pop等操作之间的关系以及栈内存分配释放机制。 了 ...

专业啊  兄弟专门搞底层的吗

这个我还真没有去细究

 
 
 

回复

5262

帖子

236

TA的资源

管理员

4
 

没有pop和push算是risc-v的优势还是劣势

感觉好像pop和push这种指令似乎都是单片机指令的标配了

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

是劣势无异,优势当然是省成本了。  详情 回复 发表于 2023-5-15 16:36
 
 
 

回复

1144

帖子

17

TA的资源

纯净的硅(高级)

5
 
nmg 发表于 2023-5-15 09:35 没有pop和push算是risc-v的优势还是劣势 感觉好像pop和push这种指令似乎都是单片机指令的标配了

是劣势无异,优势当然是省成本了。

点评

即便是arm也有指令替代PUSH和POP,只不过指令集保留了这两个指令。 RTOS里面操作堆栈基本都是用替代指令实现了,PUSH和POP本就可有可无。  详情 回复 发表于 2023-5-18 17:24
 
 
 

回复

6980

帖子

11

TA的资源

版主

6
 
大佬学习非常深入呀,感觉去学习了一下汇编,对CPU的理解就没有那么神密了。
 
 
 

回复

6483

帖子

9

TA的资源

版主

7
 

这本书主要是底层学习吧  

点评

主要还是底层原理。 如果不做芯片例化,不自己研发RTOS等,这本书没有实际价值。 但学习之后,又会应用,又会原理,成就感特别强。  详情 回复 发表于 2023-5-18 14:25
 
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 

回复

670

帖子

0

TA的资源

纯净的硅(高级)

8
 
秦天qintian0303 发表于 2023-5-16 12:05 这本书主要是底层学习吧  

主要还是底层原理。

如果不做芯片例化,不自己研发RTOS等,这本书没有实际价值。

但学习之后,又会应用,又会原理,成就感特别强。

点评

还是有点用的,不知道底层的机制,应用也是糊里糊涂的,就跟不知道总线,时钟配置总是不清不楚的  详情 回复 发表于 2023-5-18 17:24
 
 
 

回复

32

帖子

0

TA的资源

一粒金砂(中级)

9
 
fxyc87 发表于 2023-5-15 16:36 是劣势无异,优势当然是省成本了。

即便是arm也有指令替代PUSH和POP,只不过指令集保留了这两个指令。 RTOS里面操作堆栈基本都是用替代指令实现了,PUSH和POP本就可有可无。

 
 
 

回复

6483

帖子

9

TA的资源

版主

10
 
jobszheng5 发表于 2023-5-18 14:25 主要还是底层原理。 如果不做芯片例化,不自己研发RTOS等,这本书没有实际价值。 但学习之后,又会 ...

还是有点用的,不知道底层的机制,应用也是糊里糊涂的,就跟不知道总线,时钟配置总是不清不楚的

 
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
上海贝尔 PCB 设 计 规 范.pdf

上海贝尔 PCB 设 计 规 范.pdf

重量级DDS范例:AD9856+EPM240+MSP430F149+ADS825 原理图+PCB文件+C源码+VHDL源码

内容:本范例的四大用途: 1.DDS AD9856的应用,敢说是国内首创,从原理图到PCB到源代码全部验证通过; 2.CPLD EPM240的学 ...

电路设计漫谈之27, 28

陆续在其它论坛上发了一些自己做电路设计的感想。在这里发一新贴试试水。以前的发表的漫谈1-26有兴趣的话可以google一下。每贴子 ...

现在的大学生都怎么了!!!!!

刚当版主几天,工作也忙,只能每天晚上看看大家都有那些问题,也想顺便和大家交流一下,看看大家对51单片机的看法,可是接连几 ...

嵌入式系统C编程之错误处理

一 错误概念 1.1 错误分类 从严重性而言,程序错误可分为致命性和非致命性两类。对于致命性错误,无法执行恢复动作,最多只能 ...

小小的104电容,我们搞了2天

好长时间没来EE发贴了,真的尴尬,主要是我越来越脱离技术这个范围了,去做线路板加工.但是最近加工了批线路板,客户2次翻工,由 ...

RSL10-002GEVB蓝牙功能测试

本帖最后由 dql2016 于 2021-4-25 18:59 编辑 现在对蓝牙的知识还不算丰富,只能先把官方提供的例程拿来跑一跑看看效果,我测 ...

485总线电平不匹配会导致什么问题?

本帖最后由 sfcsdc 于 2021-5-12 17:54 编辑 一边的485收发器是3.3V供电; 一边的485收发器是5V供电; 通讯时有数据丢失 ...

如何实现低频卡的主动寻卡操作,有什么技巧

在一个一次性电池供电的智能水表系统中,用到了低频卡。如何实现水表系统每隔1-2秒以低频卡的主动寻卡操作,因为是用电池供电, ...

MPS电机研究院 让电机更听话的秘密! 第一站:电机应用知识大考!

各位工程师朋友们,欢迎来到“MPS电机研究院”第一站——电机应用知识大考! 活动期间,MPS每两周选取1 ...

关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表