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

如何做明星的个人网站深圳推广优化公司

如何做明星的个人网站,深圳推广优化公司,做那种的视频网站有哪些,济南专门做网站的公司今天在GitHub上看到一个C语言项目,用大约600行代码实现了一个RISC-V CPU核,甚为感叹,分享一下。不管是学习C,还是学习RISC-V,这个项目都有非常高的学习价值,开源万岁! 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.h"rv_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 -march=rv32imc -mabi=ilp32 -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.hkea.cn/news/192004/

相关文章:

  • 沧州网站建设制作设计优化能打开的a站
  • 石家庄网站建设推广报价怎么让百度快速收录网站
  • 建设局网站上开工日期选不了制作网站需要多少费用
  • 犬舍网站怎么做网页推广怎么做
  • 镇江核酸检测最新通知如何优化网页加载速度
  • wpf入可以做网站吗竞价托管外包费用
  • 公司设计网站需要包含什么资料优化排名软件
  • 日本樱花云服务器wan亚马逊seo关键词优化软件
  • layui框架的wordpress厦门站长优化工具
  • 微网站设计尺寸培训课程总结
  • 保险平台官网湖北搜索引擎优化
  • 西安微信小程序制作公司关键词优化方法
  • 手机网站建设用乐云seo搜索引擎是什么意思啊
  • 昆明做大的网站开发公司google网页搜索
  • 做网站运营需要什么证宁波靠谱营销型网站建设
  • 天津进口网站建设电话青岛网站建设公司
  • 游戏币网站建设win7优化大师官方网站
  • 技术专业网站建设班级优化大师网页版登录
  • 外国网站上做雅思考试台州百度推广优化
  • 男女做那种的的视频网站国内最好的搜索引擎
  • 泉州做网站优化价格成功品牌策划案例
  • 做网站去哪个平台资源优化排名网站
  • 备案的网站名称可以改吗百度青岛代理公司
  • 专做进口批发的网站关键词优化多少钱
  • 做网站有了空间在备案吗百度权重高的网站有哪些
  • 做空间的网站著名的网络营销案例
  • 做网站客户尾款老不给怎么办百度推广年费多少钱
  • 想要将网站信息插到文本链接怎么做百度关键词搜索
  • 江苏网站备案要多久seo域名综合查询
  • 大型网站建设机构津seo快速排名