目录
引言
致谢
拥有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_COMPILE
CROSS_COMPILE = mips-linux-gnu-
endif
CC = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)ld
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
OBJECTS = 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 文件查看:
有问题可以评论区留言~~~