《自己动手写CPU》学习记录(4)——第4章/Part 2
创始人
2024-03-29 16:46:21




目录

引言

致谢

拥有Linux开发环境

1、Linux虚拟机安装

2、共享文件夹

GNU工具链安装

Makefile

RAM.ld

Bin2Mem.exe

注意

路径

测试


引言

上篇文章实现了 ori 指令,并且搭建验证平台,验证了功能的正确性。但是有一个问题就是,当时验证的思路并不是将C语言通过编译器编译之后产生一系列指令码,而是手写 ori 指令,写入指令存储器内,完成的是简单的设计功能验证。本片将着手配置MIPS的编译环境。

致谢

感谢书籍《自己动手写CPU》及其作者雷思磊。一并感谢开源精神。



拥有Linux开发环境

1、Linux虚拟机安装

由于本人之前学习EDA软件时,电脑就安装了 Ununtu16.04 的虚拟机,所以此处直接跳过。当时安装的记录:

我的LINUX入门记录(1)https://blog.csdn.net/qq_43045275/article/details/127418509?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167049134716800182786680%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167049134716800182786680&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-127418509-null-null.nonecase&utm_term=linux&spm=1018.2226.3001.4450

2、共享文件夹

参考下面链接:VMware下共享文件夹的实现

GNU工具链安装

终端输入:

mips-linux-gnu-gcc -v

可以按照提示的安装命令安装。

建议将下面的所有文件置于共享文件夹目录下!

Makefile

分享一下:

ifndef CROSS_COMPILECROSS_COMPILE = mips-linux-gnu-
endif
CC = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)ldOBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdumpOBJECTS = ISTC_ROM.o
export CROSS_COMPILE
all:ISTC_ROM.data ISTC_ROM.om ISTC_ROM.o ISTC_ROM.bin ISTC_ROM.asm%.o:%.s$(CC) -mips32 -EB $< -o $@ISTC_ROM.om:RAM.ld $(OBJECTS) $(LD) -EB -T RAM.ld $(OBJECTS) -o $@ISTC_ROM.bin:ISTC_ROM.om$(OBJCOPY) -O binary $< $@ISTC_ROM.asm:ISTC_ROM.om$(OBJDUMP) -D $< >$@ISTC_ROM.data:ISTC_ROM.bin./Bin2Mem/Bin2Mem.exe -f $< -o $@clean:rm -rf *.o *.om *.bin *.data

RAM.ld

MEMORY{      ram(RW)    : ORIGIN = 0x00000000, LENGTH = 0x00001000}
SECTIONS
{/*For some reason the linker script can't see the _reset_vector symbol (even if we declare it global), so we explicitly set it. */.text :{*(.text)} > ram.data :{*(.data)} > ram.bss :{*(.bss)} > ram.stack  ALIGN(0x10) (NOLOAD):{*(.stack)_ram_end = .;} > ram
}
ENTRY (_start)

Bin2Mem.exe

这个文件网上有很多,找不到可以私信我。

注意

路径

测试

编写源程序文件 ISTC_ROM.s:

.org 0x0 		
.global _start 	
.set noat		_start:
ori $1,$5,0x1100
ori $2,$6,0x0020
ori $3,$7,0xFF00
ori $4,$8,0xFFFF
nop 
nop 
ori $2,$8,0x0020
ori $3,$9,0xFF00
ori $4,$10,0xFFFF

在源文件所在的路径下,右键——>打开终端:

首先清除:

make clean

生成初始化文件:

make all

打开 .data 文件查看:



有问题可以评论区留言~~~

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...