因为毕设是CPU的低功耗设计,所以开始看cpu,打算还是先从这个tinyriscv学起,昨天把环境下好了,第一步是用git去clone代码,这个首先要下载git,然后在目标文件夹鼠标右键,选择“open git bush here”,再输入项目的url,就可以了。方法不难。b站有详细教程

  接下来是安装工具,我用的是windows,就按照以下步骤,唯一有一个地方有出入的是,安装GNU工具链的时候,工具路径不是他这样的,是散开的,为了考虑周全,我自己又建了一个“gnu-mcu-eclipse-riscv-none-gcc-8.2.0-2.2-20190521-0004-win64”的文件夹,然后又在这个文件夹里解压了(后面测试指令的时候也没有报错)

  make和python比较特殊,需要加入环境变量,具体操作是“右键电脑——属性——高级系统设计——环境变量”,在用户变量里双击“path”,会发现里面有很多路径,直接新建一个路径然后加进去就行了(我是这样做的,后面测试也没有问题)

  安装好之后就开始测试了,这里懒得放截图了,然后就是运行c程序,就是这一步,具体来说也就是在cmd里面输入指令,我的运行是没有错误的,关于如何在cmd中更换路径,这个可以看我这篇文章:如何在cmd中转入其他文件夹

  关于这个测试c程序,我昨天问了师兄,师兄说这个“python .\sim_new_nowave.py ..\tests\example\simple\simple.bin inst.data”就是一个python脚本,原因是机器肯定是不能直接理解c语言的,需要转换成机器所能理解的指令,因此先转成bin文件,但是bin文件又不能说是直接打开,所以又转换成了一个inst.data文件(所以在走完这个步骤之后,会发现sim文件夹里多出来了一个名字叫inst.data的文件,如下图所示)

  关于这个inst.data,打开之后发现是一堆16进制的数字,这里面的每一行实际上就对应的是一条指令。




  以上就是,配置环境和测试的内容,还有一些问题,师兄做了解答:

  1.为什么装了很多东西,比如iverilog、GNU、make,结果在测试的时候看起来没用到?实际上虽然这里只是说执行了一条指令,但实际上他们内部是相互调用的,c程序之所以能够翻译成机器所理解的,原因还是因为上面的工具起作用,例如GNU里面的gcc(也不能说是程序,只能是一个类似“包工头的玩意”)实现了c的编译器,具体的可以参考这篇文章:编译工具链

  2.这个c程序测试是做什么的?实际上,他这个测试就是说,比如1+1=2,那么在实际测试中,就是把运算结果,从寄存器取出来,然后人为的比对一下,如果一样,就说明测试成功

  3.我能自己写一个c吗?好像不行。。原因记不太清了。。。

  4.接下来我应该做什么:不要看那个tinyriscv的配套文档,那个只是针对这个cpu写的,直接去看计组的书或者网课

学习tinyriscv(1):安装tinyriscv的工具链的更多相关文章

  1. 64位的ubuntu14.04 LTS安装 Linux交叉编译工具链及32位“ia32-libs”依赖库

    ubuntu又迎来了其新一代的长期支持版本 14.04 LTS,其带来了许多令人期待的新特新,遂决定进行升级. 装好了64位版本及安装 Linux交叉编译工具链 运行GCC,${CROSS_COMPI ...

  2. 虚拟机快速下载安装配置aarch64-linux-gnu-gcc工具链

    方式一:软件仓库安装 此方法不用自己去配置交叉编译工具链 1.查看本地仓库有支持哪些版本哪些 输入命令: apt-cache search aarch64 2.下载安装 gcc-8-aarch64-l ...

  3. centos安装arm交叉工具链后常见的问题解决

    [root@localhost osdrv]# arm-hisiv400-linux-gcc -vbash: /opt/hisi-linux/x86-arm/arm-hisiv400-linux/ta ...

  4. centos 7安装freescale交叉编译工具链

    方法1:可以直接下载gcc包,把文件夹放到/usr/local下即可,然后修改PATH环境变量,既可以使用 方法2:可以下载.rpm包,在本地进行安装,下载地址为(http://www.panduod ...

  5. Ubuntu安装ARM架构GCC工具链(ubuntu install ARM toolchain)最简单办法

    一.安装ARM-Linux-GCC工具链 只需要一句命令: sudo apt-get install gcc-arm-linux-gnueabi 前提是你的Ubuntu系统版本是官网支持的最新的版本, ...

  6. 【转】Ubuntu安装ARM架构GCC工具链(ubuntu install ARM toolchain)最简单办法

    原文网址:http://www.cnblogs.com/muyun/p/3370996.html 一.安装ARM-Linux-GCC工具链 只需要一句命令: sudo apt-get install ...

  7. 使用GNU工具链进行嵌入式裸机开发

    Embedded-Programming-with-the-GNU-Toolchain Vijay Kumar B. vijaykumar@bravegnu.org 翻译整理:thammer gith ...

  8. 使用buildroot创建自己的交叉编译工具链【转】

    本文转载自:https://blog.csdn.net/linczone/article/details/45894181 使用buildroot创建自己的交叉编译工具链 关键字:buildroot ...

  9. xmake v2.5.2 发布, 支持自动拉取交叉工具链和依赖包集成

    xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能 ...

  10. GNU工具链学习笔记

    GNU工具链学习笔记 1..so为动态链接库,.a为静态连接库.他们在Linux下按照ELF格式存储.ELF有四种文件类型.可重定位文件(Relocatable file,*.o,*.a),包含代码和 ...

随机推荐

  1. mall:redis项目源码解析

    目录 一.mall开源项目 1.1 来源 1.2 项目转移 1.3 项目克隆 二.Redis 非关系型数据库 2.1 Redis简介 2.2 分布式后端项目的使用流程 2.3 分布式后端项目的使用场景 ...

  2. 《CTFshow-Web入门》01. Web 1~10

    @ 目录 web1 题解 web2 题解 web3 题解 web4 题解 web5 题解 原理 web6 题解 原理 web7 题解 web8 题解 web9 题解 原理 web10 题解 ctf - ...

  3. 搭建LNMP 架构

    搭建LNMP 架构 环境准备 lnmp 需要 安装 nginx mysql php 软件 #关闭防火墙 systemctl disable --now firewalld #临时禁用SELinux的强 ...

  4. 《Python魔法大冒险》002 编程是什么?

    魔法师:在这个充满魔法和奇迹的数字时代,你是否好奇过计算机是如何运作的?当你用手机玩游戏.在电脑上浏览网页.看动画电影,你是否想过这背后的秘密是什么?别担心,今天我们将揭开这神秘的面纱,一起来探索编程 ...

  5. [EasyExcel] 导出合并单元格

    前言 使用spring boot 对excel 进行操作在平时项目中要经常使用.常见通过jxl和poi 的方式进行操作.但他们都存在一个严重的问题就是非常的耗内存.这里介绍一种 Easy Excel ...

  6. 小知识:将普通用户加入到docker组

    新的OCI实例,OS选择的是OEL7.9,初始环境是没有安装docker的,我们可以直接使用yum安装,之后启动docker服务: [opc@oci-001 ~]$ sudo yum install ...

  7. SpringCloud搭建保姆级教程

    一.搭建服务注册与发现中⼼ 使⽤Spring Cloud Netflix 中的 Eureka 搭建服务注册与发现中⼼ 1.创建SpringBoot应用添加依赖 1.spring web 2.eurek ...

  8. modbus转profinet网关连接ABB变频器在博图程序案例

    modbus转profinet网关连接ABB变频器在博图程序案例 在博图里PLC无需编程利用兴达易控modbus转Profinet网关将ABB变频器接入到西门子网络中,用到设备为西门子1200PLC, ...

  9. Nuxt.js 生成sitemap站点地图文件

    Nuxt.js 生成sitemap站点地图文件 背景介绍 ​ 使用nuxt框架生成静态文件支持SEO优化,打包之后需要生成一个 sitemap.xml 文件方便提交搜索引擎进行收录.官网有提供一个插件 ...

  10. 数据链路层传输协议(点到点):停等协议、GBN、SR协议

    数据链路层的传输协议:停等协议.GBN.SR 停止等待协议(单窗口的滑动窗口协议) 滑动窗口协议:GBN.SR GBN协议 GBN发送方需响应的三件事 1. 上层调用(网络层) 上层要发送数据时,发送 ...