作者 主题:YouTube上的RISC-V汇编语言编程教程 (Read 25040 times)

0位成员和11位客人正在查看此主题。

离线 布鲁斯胡特

  • 超级贡献者
  • ***
  • 职位:1973
  • 国家: nz
  • 前身为SiFive,Samsung R&D
YouTube上的RISC-V汇编语言编程教程
« on: 十二月08,2018,02:37:44上午»
Western Digital(WD)刚刚发布了一个由12个部分组成的YouTube系列,其中CTO Martin Fink(!!)使用带有VS Code的SiFive HiFive1展示了RISC-V的汇编语言编程。

可悲的是,他们没有'似乎彼此联系在一起。













 
以下用户感谢这篇文章: 汉斯, 奥比万雅各比, 新脑, lucazader, 切普温

离线 布鲁斯胡特

  • 超级贡献者
  • ***
  • 职位:1973
  • 国家: nz
  • 前身为SiFive,Samsung R&D
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下方面回复#1: 十二月08,2018,02:42:25上午»
没有链接,但是有一个 播放清单
« 上次编辑:2018年12月8日,上午02:48:07通过brucehoult »
 

离线 布鲁斯胡特

  • 超级贡献者
  • ***
  • 职位:1973
  • 国家: nz
  • 前身为SiFive,Samsung R&D
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下方面回复#2: 十二月08,2018,02:58:37下午»
是否有人在他的汇编语言代码中发现了故意的(?)错误?

答案:729de934392445a122503b40747a83e50b3c4a20
 

离线 布鲁斯胡特

  • 超级贡献者
  • ***
  • 职位:1973
  • 国家: nz
  • 前身为SiFive,Samsung R&D
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下方面回复#3: 十二月08,2018,03:23:46下午»
第二个较小的错误:当MTIME在大约18小时后回绕,而(<targetTime){}可能行为不当,导致延迟为零。应该使用while(int(targetTime-MTIME)> 0){}
 

离线 rstofer

  • 超级贡献者
  • ***
  • 帖子:7909
  • 国家: 我们
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下方面回复#4: 十二月09,2018,01:19:50上午»
有趣的演讲! 我安装了这些工具,我必须说,我喜欢Visual Studio Code。 看起来很像Eclipse,但有更多按钮,但是效果很好。

要添加Debug功能,您需要一个帐户,并且看来这只是暂时的,因为他们谈论大约一个月内发生的事情。 专业版的费用约为每月10美元,其中包括统一调试器和其他一些功能。 如果没有debugger选项,则可以免费使用IDE。 实际上,您在免费版本中放弃了很多功能。

好吧,我不能'使调试器正常工作。 我可能需要董事会来做到这一点。  The demo doesn'在讨论调试器时,不要对板子说任何话。

HiFive1开发板相当昂贵,大约60美元,并且没有ADC。 也许仅在Shield上使用SPI ADC。

这里'在我偏离轨道的地方: 在演示包含10行C和3个微型汇编语言文件(总共38条指令)的演示之后,编译后的输出为4,624字节的RAM和53,710字节的闪存。  To flash an LED!

那里 seems to be a lot of library code included in the build but since I can'找不到链接器映射文件(或如何打开它),我不知道如何解决此问题。  The size doesn'当我注释掉#include时,似乎变化不大<stdio.h>我也不知道为什么它被包含在项目中。

FE310-G000芯片非常快-高达320 MHz。
 

离线 布鲁斯胡特

  • 超级贡献者
  • ***
  • 职位:1973
  • 国家: nz
  • 前身为SiFive,Samsung R&D
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下问题上回复#5: 十二月09,2018,02:19:31上午»
有趣的演讲! 我安装了这些工具,我必须说,我喜欢Visual Studio Code。 看起来很像Eclipse,但有更多按钮,但是效果很好。

是啊,我'我对Java过敏,但前一阵子我安装了VS Code,看来还可以。相当快(Eclipse不是't). I didn'真正意识到您可以为其添加这种嵌入式编程功能。

引用
要添加Debug功能,您需要一个帐户,并且看来这只是暂时的,因为他们谈论大约一个月内发生的事情。 专业版的费用约为每月10美元,其中包括统一调试器和其他一些功能。 如果没有debugger选项,则可以免费使用IDE。 实际上,您在免费版本中放弃了很多功能。

啊。一世'd每月支付$ 10,但不支付$ 10。我想我'坚持使用带有或不带有emacs的gdb。

引用
好吧,我不能'使调试器正常工作。 我可能需要董事会来做到这一点。  The demo doesn'在讨论调试器时,不要对板子说任何话。

当然可以'使用板。您应该能够在qemu上运行已编译的代码,但是您'不要以这种方式闪烁LED :-)

引用
HiFive1开发板相当昂贵,大约60美元,并且没有ADC。 也许仅在Shield上使用SPI ADC。

SiFive没有'两年前无法访问模拟IP,然后HiFive1上市了。现在做。

人们一直在使用:

MCP3008(SPI) //www.adafruit.com/product/856
ADS1015(I2C) //www.adafruit.com/product/1083

引用
这里'在我偏离轨道的地方: 在演示包含10行C和3个微型汇编语言文件(总共38条指令)的演示之后,编译后的输出为4,624字节的RAM和53,710字节的闪存。  To flash an LED!

那里 seems to be a lot of library code included in the build but since I can'找不到链接器映射文件(或如何打开它),我不知道如何解决此问题。  The size doesn'当我注释掉#include时,似乎变化不大<stdio.h>我也不知道为什么它被包含在项目中。

那里'提供IDE的压力在于,初学者只想从知道谁在哪里工作,喜欢拥有功能齐全的库的人那里获取代码,而专业人士则需要小的代码。我们绝对尽可能地默认为前者。专业人士拥有必要的知识,可以根据需要缩减尺寸。而且该板有16 * mega * bytes的程序闪存,因此它'对于初学者来说不是一个大问题。

我没有'尚未尝试关注这些视频,但不要'不知道他们到底使用了什么工具链'重新使用,但对于Newlib来说大小似乎正常。 Newlib实际上是为PC使用而不是嵌入式设计的。甚至Newlib Nano也没有't help much. We'意识到并正在努力...

它没有'不能通过使用软件FP库来减小ARM C库的大小'不能达到IEEE 754的要求,而我们却可以。

使用SiFive'sfreedom-e-sdk我得到以下文本大小:

51498 HelloWorld与printf
 使用main()的2042程序"return 0"
 使用自定义最小printf的6924 Dhrystone //github.com/sifive/freedom-e-sdk/blob/master/software/dhrystone/dhry_printf.c

基本上,Newlib printf()尤其庞大。
 

离线 布鲁斯胡特

  • 超级贡献者
  • ***
  • 职位:1973
  • 国家: nz
  • 前身为SiFive,Samsung R&D
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下方面回复#6: 十二月09,2018,05:51:52上午 »
要添加Debug功能,您需要一个帐户,并且看来这只是暂时的,因为他们谈论大约一个月内发生的事情。 专业版的费用约为每月10美元,其中包括统一调试器和其他一些功能。 如果没有debugger选项,则可以免费使用IDE。 实际上,您在免费版本中放弃了很多功能。

现在我'我已经按照演示文稿的实际操作进行了:-)是的,使用他们的调试器需要"pro"版本的PlatformIO,每月10美元。您可以免费试用30天。

我想这是一个好消息,如果您付钱,那么您还可以与550左右其他主板一起使用:AVR,PIC,任意数量的ARM主板...

它看起来似乎应该可以直接使用gdb。它'在调试器菜单中作为选项提供

 

离线 lucazader

  • 定期贡献者
  • *
  • 职位:167
  • 国家: nz
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下方面回复#7: 十二月09,2018,08:58:08上午»
感谢您的帖子布鲁斯。
绝对希望看到所有Risc-V产品的去向。
尤其是您在SiFive推出的新内核/芯片设计人员。

就VScode而言,如果您是初学者,不想设置工具链等,那么PIO很棒。
但是,如果您稍微高级一些,那么在vscode中免费使用makefile和GDB就是超级容易的事情!无需安装庞大的PIO。
只是您的MCU的特定gcc(您可以从SiFive网站获得预编译的二进制文件),然后是具有正确脚本的GDB,您几乎可以在Internet上找到几乎所有电路板的脚本。

一定会对研究开发板和MCU感兴趣'是E20系列推出的,特别是集成ADC's etc...
 

离线 飞荷兰

  • 贡献者
  • 帖子:48
  • 国家: PL
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下方面回复#8: 十二月09,2018,09:06:59上午»
你好,

非常有趣的主题,但是此主板HiFive1非常昂贵,价格为59 $。我想评估一下"RISC-V"架构,但HiFive1主板对我来说太贵了。
我是否愿意使用FPGA板和RISC-V Ip-Core评估RISC-V体系结构?我的FPGA板很少(最大的是Artix7 17000逻辑单元)。我为RISC-V内核提供了链接:

//github.com/riscv/riscv-wiki/wiki/RISC-V-Cores-and-SoCs

是否有人尝试将R​​ISC-V作为运行在FPGA板上的IP核。开始之前有任何提示吗?

亲切的问候
 

离线 布鲁斯胡特

  • 超级贡献者
  • ***
  • 职位:1973
  • 国家: nz
  • 前身为SiFive,Samsung R&D
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下方面回复#9: 十二月09,2018,11:46:01上午»
就VScode而言,如果您是初学者,不想设置工具链等,那么PIO很棒。
但是,如果您稍微高级一些,那么在vscode中免费使用makefile和GDB就是超级容易的事情!无需安装庞大的PIO。
只是您的MCU的特定gcc(您可以从SiFive网站获得预编译的二进制文件),然后是具有正确脚本的GDB,您几乎可以在Internet上找到几乎所有电路板的脚本。

我完全同意。我自己几乎从来没有使用过IDE,只是emacs,gcc,openocd(或avrdude或其他适当的东西),gdb。但是显然本教程是针对初学者的,Western Digital恰好选择了带有PIO的VS Code ..所以我想'd最好了解一下。

我们的命令行自由e-sdk(PIO在内部下载和使用)本身非常易于使用。对于提供的项目之一,只需键入...

代码: [选择]
make software PROGRAM=led_fade
make upload PROGRAM=led_fade

那's it! Now it'在板上运行。如果您想编写自己的程序,只需复制示例程序之一,更改名称,然后're away.

我个人发现,与每两年学习一次最新的IDE相比,使用标准的工具(例如Shell命令,make,我最喜欢的编辑器等)更容易理解。

但是,我们确实提供了完全免费的基于Eclipse的IDE"Freedom Studio"支持GUI调试,就像PIO一样 //sifive.cdn.prismic.io/sifive%2F08af66c3-f408-4ffd-8e92-0428e5b8011a_freedomstudio_manual.v1p3.pdf

引用
一定会对研究开发板和MCU感兴趣'是E20系列推出的,特别是集成ADC's etc...

SiFive'公司的商业模式是使-鼓励-*其他人*决定对具有特定内核(或多个内核),内存,外围设备的芯片的需求,并自行制造(或Sifive可以组织批量生产,将徽标放在芯片上等)。随着2018年期间新增的IP合作伙伴,现在包括ADC等模拟外设。

FE310和FU540获奖'不是SiFive制造的最后一个芯片,但不要'希望在每种可能的配置中都能看到数十个或数百个。
 

离线 布鲁斯胡特

  • 超级贡献者
  • ***
  • 职位:1973
  • 国家: nz
  • 前身为SiFive,Samsung R&D
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下问题上回复#10: 十二月09,2018,12:01:21下午»
非常有趣的主题,但是此主板HiFive1非常昂贵,价格为59 $。我想评估一下"RISC-V"架构,但HiFive1主板对我来说太贵了。

第三方设计"LoFive"使用与HiFive1相同的CPU芯片,并且程序兼容,但是's在不同时间的价格为25到30美元。 //store.groupgets.com/products/lofive-risc-v 请注意,它确实需要JTAG编程器,而HiFive1是使用USB编程的,因此如果您不这样做,'还没有赢得一个't see much savings.

您还可以在HiFive1 CrowdSupply页面上以25美元的价格购买裸露的FE310芯片,价格为5美元,并构建自己的电路板。 LoFive的完整设计文件可在github上找到 //github.com/mwelling/lofive

引用
我是否愿意使用FPGA板和RISC-V Ip-Core评估RISC-V体系结构?我的FPGA板很少(最大的是Artix7 17000逻辑单元)。我为RISC-V内核提供了链接:

//github.com/riscv/riscv-wiki/wiki/RISC-V-Cores-and-SoCs

是否有人尝试将R​​ISC-V作为运行在FPGA板上的IP核。开始之前有任何提示吗?

当然!实际上,有数十种内核和带有外设设计的内核,可用于各种制造商的FPGA。

在TinyFPGA BX上运行的picorv32 / picosoc可能是最容易上手的一种(并使用100%开源软件) //discourse.tinyfpga.com/t/riscv-example-project-on-tinyfpga-bx/451

VexRiscv也非常值得一试。它适用于来自不同供应商的各种FPGA,包括Artix 7: //github.com/SpinalHDL/VexRiscv
 
以下用户感谢这篇文章: 飞荷兰

离线 rstofer

  • 超级贡献者
  • ***
  • 帖子:7909
  • 国家: 我们
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下方面回复#11: 十二月09,2018,03:48:21下午»

这里'在我偏离轨道的地方: 在演示包含10行C和3个微型汇编语言文件(总共38条指令)的演示之后,编译后的输出为4,624字节的RAM和53,710字节的闪存。  To flash an LED!

那里 seems to be a lot of library code included in the build but since I can'找不到链接器映射文件(或如何打开它),我不知道如何解决此问题。  The size doesn'当我注释掉#include时,似乎变化不大<stdio.h>我也不知道为什么它被包含在项目中。

那里'提供IDE的压力在于,初学者只想从知道谁在哪里工作,喜欢拥有功能齐全的库的人那里获取代码,而专业人士则需要小的代码。我们绝对尽可能地默认为前者。专业人士拥有必要的知识,可以根据需要缩减尺寸。而且该板有16 * mega * bytes的程序闪存,因此它'对于初学者来说不是一个大问题。

基本上,Newlib printf()尤其庞大。

是的,newlib是头猪! 但是在演示项目中,从未调用任何库函数。 是的,我想可能会调用某些C库函数,但是鉴于所编写的代码,这似乎不太可能。  I can'看不到newlib进入该项目的地方。

我需要在IDE中四处查看并找到编译/链接选项。 他们必须在某个地方。 我想查看程序集输出和链接映射。

真正的好消息是: 参考书,'RISC V Reader'从亚马逊发货不到20美元。 另外两本书价格昂贵,但视频的作者指的是'Reader' as THE book to buy.  So I did...

RISC ISA有趣的部分是硬件如何处理危险。 管道越深,它就越复杂。 丢弃部分执行的指令,因为已采取分支但无法执行'无法预测,因为条件代码没有'已从没有的算术运算更新'完成-变得复杂!

下一个问题: 编译器使用多少个更深奥的操作代码? 构建FPGA版本的问题是确保您已经实现了足够的指令集,以允许编译器生成可行的代码。 或者,准备重写C编译器的代码生成!

目前,RISC V还处于起步阶段。  It'大约有一段时间,但ARM竞争激烈,ARM涵盖了相当广泛的计算领域。  In the meantime, it'值得一提的是RISC V的工作原理。 如果您想了解这种东西...
 

离线 遗产

  • 超级贡献者
  • ***
  • !
  • 帖子:4415
  • 国家: ch
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下问题上回复#12: 十二月09,2018,04:13:35下午»
但是这个主板HiFive1非常昂贵59 $

昂贵的? 60美元对董事会来说算不了什么。
 
以下用户感谢这篇文章: 基拉

离线 rstofer

  • 超级贡献者
  • ***
  • 帖子:7909
  • 国家: 我们
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下问题上回复#13: 十二月09,2018,05:21:57下午»
但是这个主板HiFive1非常昂贵59 $

昂贵的? 60美元对董事会来说算不了什么。

从本质上讲,它是精简的Arduino,至少在形式上,运行速度快得多。 Arduino UNO在亚马逊上的售价为19美元。 它还没有ADC限制了其适用性。 它确实有很多内存。

I'摇摇欲坠,我想从整体上了解更多关于ISA的信息,实际上,60美元是'是我关心的一个数字。 但是我必须意识到a)我不'b)即使我需要,它也缺少某些功能。

所以,这本书星期二到这儿,我浏览一下之后,我'我可能会买板子玩。 与我购买的FPGA板相比,60美元什么都不是!

流水线处理器很有趣,并且在硬件级别上RISC V绝对是可以接受的(而不是仅仅购买ARM)<whatever>). 如果我愿意的话,我可以选择其中一个FPGA内核,并深入了解硬件设计。 我喜欢硬件设计!

仍在动摇...
 

离线 遗产

  • 超级贡献者
  • ***
  • !
  • 帖子:4415
  • 国家: ch
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下问题上回复#14: 十二月09,2018,06:40:48下午»
从本质上讲,它是精简的Arduino,至少在形式上,运行速度快得多。

英飞凌4500(带Cordic的臂芯)的价格约为45欧元,因此60欧元肯定不会太多。


 

离线 遗产

  • 超级贡献者
  • ***
  • !
  • 帖子:4415
  • 国家: ch
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下问题上回复#15: 十二月09,2018,06:53:34下午»
它还没有ADC限制了其适用性。 它确实有很多内存。

我的MIPS ATLAS评估板价格为600欧元。我花了120欧元买了一辆二手车。它没有ADC,DAC,SPI等,只是CPU,32 MB内存,PCI总线,两条串行线,一对计时器,LA接​​头连接器和e-Jtag。

It'没问题。简单吧'这不是我用来连接CNC或3D打印机的目标。它'这不是它的工作,为此有更便宜和更好的板(例如Sanguino)。

我很喜欢XINU的ATLAS板,以及在该处运行更舒适的其他软件。此外,e-Jtag从调试的角度来看,使体验更加舒适。

仍在动摇...

毫无疑问!无需将真正的32位RISC处理器与Arduino1(至少您应该考虑Arduino2,Arduino / Zero或Infineon 4500)进行比较!

无论如何,如果您喜欢RISC-V,请去购买该板  :D
 

离线 rstofer

  • 超级贡献者
  • ***
  • 帖子:7909
  • 国家: 我们
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下回复#16: 十二月09,2018,10:16:53下午»
无论如何,如果您喜欢RISC-V,请去购买该板  :D

我决定给自己买一件圣诞礼物-75美元(含税和运费)。   It'下周可能会在这里。
 

离线 布鲁斯胡特

  • 超级贡献者
  • ***
  • 职位:1973
  • 国家: nz
  • 前身为SiFive,Samsung R&D
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下方面回复#17: 十二月09,2018,10:58:42下午»
是的,newlib是头猪! 但是在演示项目中,从未调用任何库函数。 是的,我想可能会调用某些C库函数,但是鉴于所编写的代码,这似乎不太可能。  I can'看不到newlib进入该项目的地方。

.platformio / packages / framework-freedom-e-sdk / env / freedom-e300-hifive1 / init.c:225:25
代码: [选择]
printf("core freq at %d Hz\n", get_cpu_freq());

在较新的版本上've用自定义itoa()和三个puts()替换了它,这大大减少了膨胀。

引用
我需要在IDE中四处查看并找到编译/链接选项。 他们必须在某个地方。 我想查看程序集输出和链接映射。

PlatformIO不是't提供所有工具,例如,没有objdump :-(

如果您想更深入地戳'使用来自SiFive的命令行freedom-e-sdk会更好。我建议建立它'在四核处理器上为25分钟。 (但也有预编译的二进制文件)

//github.com/sifive/freedom-e-sdk

引用
RISC ISA有趣的部分是硬件如何处理危险。 管道越深,它就越复杂。 丢弃部分执行的指令,因为已采取分支但无法执行'无法预测,因为条件代码没有'已从没有的算术运算更新'完成-变得复杂!

有序CPU没问题,该CPU包括到目前为止任何人都已交付的所有产品。已获取并解码了分支之后的指令,并获取了它们的操作数,但它们没有't *执行*直到分支执行完之后..此时知道是否将分支。如果预测错误,那么将压缩已执行指令的执行,并在正确的位置再次开始获取/解码。

引用
下一个问题: 编译器使用多少个更深奥的操作代码? 构建FPGA版本的问题是确保您已经实现了足够的指令集,以允许编译器生成可行的代码。 或者,准备重写C编译器的代码生成!

他们都是!

如果要在FPGA中构建自己的CPU,则只需实现RV32I,它仅具有编译C代码所需的功能,而省略了乘除运算。 gcc将为此高兴地发出代码,使用库函数进行乘法和除法。

完整的RV32I指令集:

代码: [选择]
登记s r0 ... r31. r0 is always 0, can be used to discard unwanted results (e.g. jal/jalr)
PC is separate. There is no dedicated SP or LR at the hardware level.
全部 immediate values are signed.

OP rd, rs1, rs2  ; OP = add/sub, slt/sltu (rd=1 if less than, else 0), and/or/xor, sll/srl/sla (shifts)
OPi rd, rs1, 0xNNN ; OP = add, slt/sltu, and/or/xor, sll/srl/sra

lui rd, 0xNNNNN ; load immediate<<12 into rd
auipc rd, 0xNNNNN ; add immediate<<12 to the PC and store in rd

jal rd, 0xNNNNN ; add immediate<<1 to the PC. Store old PC in rd
jalr rd, 0xNNN(rs1) ; add immediate to rs1, clear the low bit, store in the PC. Store old PC in rd

bOP rs1, rs2, 0xNNN ; if rs1 OP rs2 is true add immediate<<1 to PC; OP = eq/ne/lt/ltu/ge/geu

sSZ rs2, 0xNNN(rs1); add immediate to rs1, use as address to store from rs2, SZ = b/h/w
lSZ rd, 0xNNN(rs1); load to rd. SZ = b/bu/h/hu/w (u zero extends, others sign extend)

ecall/ebreak ; no arguments. Call OS or debugger.

那里'那里没有很多脂肪。

可选:仅实现r0 .. r15,然后使用-march = rv32e来gcc("e" for embedded)

可选:实现乘/除-march = rv32im(或em)

可选:为SMP实现原子操作-march = rv32a

可选:实现16位操作码,该操作码复制最常见的32位操作码,其代码密度可与Thumb2而不是与ARM -march = rv32ic相比

可选:实现浮点数-march = rv32if或rv32ifd

您可以使用rv32i或rv32e编译任何普通的C / C ++代码和newlib。 linux内核和glibc至少需要rv32ia(实际上我认为他们目前需要rv64ia,但这是固定的)。

引用
目前,RISC V还处于起步阶段。  It'大约有一段时间,但ARM竞争激烈,ARM涵盖了相当广泛的计算领域。  In the meantime, it'值得一提的是RISC V的工作原理。 如果您想了解这种东西...

是的,它'早期,但势头正在增强。

与ARM或MIPS相比,没有技术上的巨大优势,但是也没有劣势。比较代码大小,比较Dhrystone或Coremark或SPEC ...'在大多数情况下可以完成照片处理。 MIPS代码最大(而microMIPS不'(最多可提供Thumb或rvc的帮助),rv32i可与ARM相提并论,rv32ic可与Thumb2相提并论。在64位中,rv64ic比其他任何东西都要小得多(ARM没有'认为适合以64位复制Thumb!)。

好处是,绝对任何人都可以自由实现自己的CPU(FPGA,ASIC,仿真器),将其称为"RISC-V"如果它通过一致性测试,并使用它,将其出售,请随意将其赠送。您不会收到任何讨厌的律师信。

实施自己的指令集的优势在于,其他人已经为您编写/移植了大量软件。
« 上次编辑:2018年12月10日,上午01:38:55 by brucehoult »
 

离线 rstofer

  • 超级贡献者
  • ***
  • 帖子:7909
  • 国家: 我们
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下方面回复#18: 十二月09,2018,11:24:57下午»
是的,newlib是头猪! 但是在演示项目中,从未调用任何库函数。 是的,我想可能会调用某些C库函数,但是鉴于所编写的代码,这似乎不太可能。  I can'看不到newlib进入该项目的地方。

.platformio / packages / framework-freedom-e-sdk / env / freedom-e300-hifive1 / init.c:225:25
代码: [选择]
printf("core freq at %d Hz\n", get_cpu_freq());

在较新的版本上've用自定义itoa()和三个puts()替换了它,这大大减少了膨胀。

是的!  I found the code. 当然,也有很多框架代码可以初始化CPU,并且向量还有很多空间。 这是现代处理器的典型特征。 在许多方面,向量表的感觉很像ARM7-TDMI。  So does 'start.S'.

我可能会修改代码以消除显示CPU频率。  Maybe I'我会试试看  happens.

引用

PlatformIO不是't提供所有工具,例如,没有objdump :-(

如果您想更深入地戳'使用来自SiFive的命令行freedom-e-sdk会更好。我建议建立它'在四核处理器上为25分钟。 (但也有预编译的二进制文件)

//github.com/sifive/freedom-e-sdk


I'下周将尝试构建工具。 没什么大不了的-我的主工作站双启动,并且具有足够的马力(I7-7700)。

我对"RISC-V Reader" book. 我想我的许多问题都会得到解答。
 

离线 rstofer

  • 超级贡献者
  • ***
  • 帖子:7909
  • 国家: 我们
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下问题上回复#19: 十二月09,2018,11:36:09下午»
是的,它'早期,但势头正在增强。

与ARM或MIPS相比,没有技术上的巨大优势,但是也没有劣势。比较代码大小,比较Dhrystone或Coremark或SPEC ...'在大多数情况下可以完成照片处理。 MIPS代码最大(而microMIPS不'(最多可提供Thumb或rvc的帮助),rv32i可与ARM相提并论,rv32ic可与Thumb2相提并论。在64位中,rv64ic比其他任何东西都要小得多(ARM没有'认为适合以64位复制Thumb!)。

好处是,绝对任何人都可以自由实现自己的CPU(FPGA,ASIC,仿真器),将其称为"RISC-V"如果它通过一致性测试,并使用它,将其出售,请随意将其赠送。您不会收到任何讨厌的律师信。

实施自己的指令集的优势在于,其他人已经为您编写/移植了大量软件。

我一直认为,在CPU上运行软件比CPU本身更为重要。 

同样,我正在研究微控制器而不是微型计算机。 我想要一堆外围设备。  I don'我不太在乎CPU架构,如果我想将芯片应用于某物,则需要外围设备。

I'我将研究RISC-V的一种FPGA实现,看看我是否真的可以启动一个工作的CPU。
 

离线 布鲁斯胡特

  • 超级贡献者
  • ***
  • 职位:1973
  • 国家: nz
  • 前身为SiFive,Samsung R&D
回复:YouTube上的RISC-V汇编语言编程教程
« 回复#20: 十二月10,2018,04:48:29上午»
如果有人对指令编码感兴趣...

 

离线 遗产

  • 超级贡献者
  • ***
  • !
  • 帖子:4415
  • 国家: ch
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下回复#21: 十二月10,2018,12:22:31下午»
哦,似乎有/将支持  劳特巴赫's debuggers  :o
 

离线 布鲁斯胡特

  • 超级贡献者
  • ***
  • 职位:1973
  • 国家: nz
  • 前身为SiFive,Samsung R&D
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下回复#22: 十二月10,2018,01:42:08下午»
哦,似乎有/将支持  劳特巴赫's debuggers  :o

已经一年了
和塞格
 

离线 eh

  • 常客
  • **
  • 帖子:406
  • 国家: 我们
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下回复#23: 十二月10,2018,01:56:25下午»
该核心的价值主张是什么?     看来,IC供应商的价值可能是避免来自ARM的许可费,但这与其他所有东西相比,简直是九牛一毛。     指令集不'似乎没那么有趣。   有一些有趣的ARM CM4指令(例如SMLAL),还有一些有趣的功能,例如位带和简单的中断处理。   

我在这里看不到任何特别有用的东西吗? 还是我错过了什么?

 

离线 布鲁斯胡特

  • 超级贡献者
  • ***
  • 职位:1973
  • 国家: nz
  • 前身为SiFive,Samsung R&D
回复:YouTube上的RISC-V汇编语言编程教程
« 在以下回复#24: 十二月10,2018,02:44:26下午»
该核心的价值主张是什么?

It's not a core, it'指令集,例如x86或ARM,可以在许多不同的内核中实现。来自商业和非商业来源的核心设计已经有数十种。

引用
看来,IC供应商的价值可能是避免来自ARM的许可费,但这与其他所有东西相比,简直是九牛一毛。

It's about "像演讲一样自由,而不像啤酒一样自由"。是的,您可以设计自己的内核或从github下载免费的内核。但是那'大量的工作,没有任何保证或支持。像ARM一样,SiFive,Andes,Syntacore,Esperanto等公司也希望获得许可费用(也许更少,也许不会)。

引用
指令集不'似乎没那么有趣。

It'不会很有趣。它'旨在非常无聊,简单,能够实现非常简单和小型的实现以及复杂的高性能实现,在技术上与其他实现一样有效,并且无需专利和免许可证。

RISC-V的标准部分特意只遵循陈旧的既定路径,这些路径要么首先是可证明是公共领域的,要么是已过期的专利所涵盖。

引用
那里 are a handful of interesting instruction for ARM CM4 (such as SMLAL) and there were interesting features such as bit-banding and simple interrupt handling.   

我在这里看不到任何特别有用的东西吗? 还是我错过了什么?

如果要在RISC-V中使用SMLAL,则可以自己添加。或要求您的芯片供应商为您添加它。你不'不必说服商标/专利/版权持有人'对您和其他许多用户来说是一个有用的说明,请等待他们将其纳入其标准的下一版本中并最终生产芯片。

好的,ARM已经在Cortex M4中进行了SMLAL。凉爽的。但是,如果您希望在诸如CM0这样的小型微体系结构中使用它,该怎么办?你'运气不好。如果要在CM0大小的内核(例如SiFive E20或Pulpino ZERO RISCY)中使用等效于SMLAL的方法,没问题,只需添加它,或让他们为您添加。

ARM和Intel有聪明的人,但他们会考虑可能使某人成为可能的每条指令'的程序快10倍或100倍?不,他们可以't。而且,更糟糕的是,如果他们添加了'将为每个人添加它-为您的竞争以及为您。每个人都有可能对任何人有用的任何功能..否则,没人会得到它。所以同时您可以'无法获得具有您真正想要的功能的芯片,而您却获得了具有许多您不想要的功能的肿芯片't want.

激进的个性化是许多行业的现在和未来。现在它'也可以在CPU中使用。
 


分享我

掘客  Facebook  SlashDot  可口的  Technorati  推特  谷歌  雅虎
中频