Skip to content

CS107E Assignment 1 ​

准备 ​

选择GPIO接口 ​

写个Makefile ​

抄 https://github.com/cs107e/cs107e.github.io/tree/master/cs107e/sample_build

makefile
PROGRAM = larson.bin

all: $(PROGRAM)

%.bin: %.o
	riscv64-unknown-elf-objcopy $< -O binary $@

%.o: %.s
	riscv64-unknown-elf-as $< -o $@

run: $(PROGRAM)
	mango-run $<

clean:
	rm -f *.o *.bin *.elf *.list *~

.PHONY: all clean run
.PRECIOUS: %.o
  • 编译程序用 make,生成 .o 和 .bin 文件
  • 运行程序用 make run,把 .bin 文件写入芒果派内存并启动
  • 删除编译后的二进制文件用 make clean

操作 ​

编写 larson.s ​

https://cs107e.github.io/guides/ProgramYourGPIOPins.pdf

  • PB0 至 PB7 设置 output
    • image-20240119103551021
    • 0001 0001 0001 0001 0001 0001 0001 0001
    • 0x11111111
  • 使用左移指令 SLLI

面包板 ​

我手上的面包板分三个区域

  • 1-15
  • 16-45
  • 46-60

跨区接地要重搭一根线

结果 ​

assig1

等等……做错了,我线都拆了

改larson.s ​

  • 加上右移指令 SRLI

再一次结果 ​

懒得重连了