当前位置: 首页 > news >正文

网站论坛模板成都工信部网站

网站论坛模板,成都工信部网站,网站开发费 无形资产,紧固件网站建设今天在GitHub上看到一个C语言项目#xff0c;用大约600行代码实现了一个RISC-V CPU核#xff0c;甚为感叹#xff0c;分享一下。不管是学习C#xff0c;还是学习RISC-V#xff0c;这个项目都有非常高的学习价值#xff0c;开源万岁#xff01; rv 用 ANSI C 编写的RISC…今天在GitHub上看到一个C语言项目用大约600行代码实现了一个RISC-V CPU核甚为感叹分享一下。不管是学习C还是学习RISC-V这个项目都有非常高的学习价值开源万岁 rv 用 ANSI C 编写的RISC-V CPU 内核。 特征 RV32IMC用户级实现通过 riscv 测试中所有支持的测试~600 行代码不使用任何大于 32 位的整数类型即使对于乘法也是如此简单 API两个函数加上您提供的两个内存回调函数无内存分配 应用程序接口 /* Memory access callbacks: data is input/output, return RV_BAD on fault, 0 otherwise */ typedef rv_res (*rv_store_cb)(void *user, rv_u32 addr, rv_u8 data); typedef rv_res (*rv_load_cb)(void *user, rv_u32 addr, rv_u8 *data);/* Initialize CPU. */ void rv_init(rv *cpu, void *user, rv_load_cb load_cb, rv_store_cb store_cb);/* Single-step CPU. Returns 0 on success, one of RV_E* on exception. */ rv_u32 rv_step(rv *cpu);用法 #include stdio.h #include string.h#include rv.hrv_res load_cb(void *user, rv_u32 addr, rv_u8 *data) {if (addr - 0x80000000 0x10000) /* Reset vector is 0x80000000 */return RV_BAD;*data ((rv_u8 *)(user))[addr - 0x80000000];return RV_OK; }rv_res store_cb(void *user, rv_u32 addr, rv_u8 data) {if (addr - 0x80000000 0x10000)return RV_BAD;((rv_u8 *)(user))[addr - 0x80000000] data;return RV_OK; }rv_u32 program[2] {/* _start: */0x02A88893, /* add a7, a7, 42 */0x00000073 /* ecall */ };int main(void) {rv_u8 mem[0x10000];rv cpu;rv_init(cpu, (void *)mem, load_cb, store_cb);memcpy((void *)mem, (void *)program, sizeof(program));while (rv_step(cpu) ! RV_EECALL) {}printf(Environment call %08X: %u\n, cpu.pc, cpu.r[17]);return 0; }为rv编译程序 使用 riscv-gnu-toolchain 工具链和 rv链接脚本。 建议使用gcc命令行 riscv64-unknown-elf-gcc example.S -nostdlib -nostartfiles -Tlink.ld -marchrv32imc -mabiilp32 -o example.o -e _start -g -no-pie然后用obj工具将0x80000000起始的二进制代码生成能被rv加载的二进制文件 riscv64-unknown-elf-objcopy -g -O binary example.o example.bin支持的指令列表 参见 支持指令列表。 公众号 | FunIO 微信搜一搜 “funio”发现更多精彩内容。 个人博客 | blog.boringhex.top
http://www.ho-use.cn/article/10815481.html

相关文章:

  • 商务网站建设期末考试企业vi设计欣赏
  • 固原网站建设wordpress mysql储存
  • 免费网站无需下载直接观看网站建设结论及体会
  • 山西省消防总队建设工程备案网站兰州网站建设招聘
  • 智慧旅游网站开发与设计小程序开发制作
  • 基金公司网站建设昆明网站建设教学视频
  • 注册博客域名做视频网站会怎么样南京高端网站建设工作室
  • 艾睿网站建设中国114黄页网站宣传广告
  • 戴尔网站建设目标网站开发易语言
  • google网站打不开了wordpress 固定链接如何设置
  • 电视剧在线观看完整版免费网站wordpress qq相册插件
  • 电商网站排名中国建筑网官网招聘网
  • google搜索引擎优化上海网站seo排名
  • 网站建设项目的工期计划品牌设计logo
  • 建设网站思路中国建设银行国际互联网网站
  • 网站开发和合同装修公司哪家产品好
  • 微信优惠券网站怎么做的wordpress登录非常慢
  • 搭建织梦网站视频教程深圳做男装什么网站容易找工
  • 成都网站商城建设安居客二手房出售信息
  • 怪兽网站模板网站建设费用估计
  • 校本教研网站建设方案动画制作软件an
  • 临沂网站建设费用最好看免费观看高清大全电影网站
  • 网站设计欣赏国外商城网站建设是 什么软件
  • 做面食视频网站忘记网站后台用户名
  • 阿里云网站空间申请公司网站建设技术
  • 专业的做网站的html编辑器在哪
  • 万网网站域名多少钱一年九江建网站报价
  • 网站视频你懂我意思吧app仙桃哪里做网站
  • 网站建设生存期模型软装设计培训班哪家好
  • 企业建立企业网站有哪些优势?德语网站域名