在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 29044|回复: 69

[原创] 高速版的更精简版本RISClite-MX(去除中断和模式)——代码更加清晰和简洁

[复制链接]
发表于 2012-6-1 14:07:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
有网友反映高速版较为复杂,不易整体把握概貌。为了让高速版更加清晰明了,我对它做个改造,在无乘法的版本下,去除了所有的中断和七大模式。现在,它只工作在一种模式下,因此,我们在编写嵌入式软件时,必须注意不能让它切换模式,那么它就能工作无误。

  为此,我在压缩包里包括了一个Keil Realview的project包、一个iverilog的仿真包。读者可以参照code.google.com/p/risclite上面的描述,安装这两个软件。在下载完了下面的压缩包后,在本地解压缩。
  
   首先,打开Hello文件夹下面的Hello.uvproj,那么就会激活Keil Realview,并打开了一个嵌入式软件开发项目。我们看到了一个非常简单的startup.s。这个startup.s只是非常简单的设定了堆栈指针后,就直接跳转到main()函数去执行。所以我们打开Hello.c,里面的main()函数使用软件乘法器完成乘方运算,并打印出来。我们可以增加我们自己的c代码描述,然后重新编译。

  下面,进入另外一个sim目录下。如果我们安装了iverilog软件,只需双击run.cmd文件。接下来,在一个dos窗口下,就会显示出刚才在Hello文件夹下编译的程序的实现效果。这段效果,正是我们用C语言编写程序,用Verilog仿真实现了程序的功能。

  好了,接下来,我们只需在Hello.c里面增加我们自己的C函数,只要我们编译,然后在仿真目录下,就可以马上看到我们的编译效果了。仿真包里面的risclite_mx.v完全可综合,较之以前,体积更小了(加上详尽的注释,只有1400行)。

  注意:由于这个版本不实现乘法指令,在编写C函数时,避免出现乘法指令。如果要实现乘法操作,可以参照本例的软件乘法功能。


risclite_mx.rar (59.95 KB, 下载次数: 542 )
发表于 2012-6-1 21:20:59 | 显示全部楼层
支持楼主!!!!!!!!!
发表于 2012-6-1 21:25:55 | 显示全部楼层
期待能够增加一个功能,即自定义指令(能够在一定的约束下),自动增加流水线冲突检测,并实现。这个很有用!谢谢!
 楼主| 发表于 2012-6-1 21:38:51 | 显示全部楼层
新增加指令实现上没有什么问题,问题是编译器要支持。如果要Keil RealView能够认出你的指令,那必须是ARM公司规定的才行。可以这样,把协处理器指令改造成你说的自定义指令,如何?那样,你用汇编在嵌入式软件中写出来,但在软核中赋予他新的意义,这样就能两全: 既能让软件支持,又能让编译器支持。
发表于 2012-6-2 17:55:33 | 显示全部楼层
dinggggggggggggggggggggggggg
发表于 2012-6-12 20:02:54 | 显示全部楼层
仔细研读一下看看
发表于 2012-6-13 22:53:03 | 显示全部楼层
支持楼主。支持。1111
发表于 2012-6-22 07:04:49 | 显示全部楼层
支持楼主。支持。1111
发表于 2012-7-4 13:36:17 | 显示全部楼层
谢谢,下来看看
发表于 2012-7-6 17:29:03 | 显示全部楼层
好东西 收藏了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-26 20:34 , Processed in 0.040195 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表