本帖最后由 我爱下载 于 2022-4-8 18:23 编辑
测试RISC-V的软核处理器
以下测试采用官方提供的pico tiny例程完成PicoRV32处理器的测试,测试包括串口、GPIO、Flash等。 1.2 打开工程
工程中包含了内核picoRV32,存储器,时钟,串口,外设,HDMI接口等。
1.3 完成物理约束 首先对代码综合一下,然后点击FloorPlanner完成物理约束定义。根据原理图的要求,和固件程序的处理要求,完成引脚分配和定义。
由于系统中用到了spi接口操作内嵌的flash存储器,所以还需要完成双目的引脚的定义,如图中所示选择。
1.4 布局布线 双击“Place & Route”,通常情况下是没有问题。 1.5 烧录到FPGA 烧录的目标由前面的”SRAM program“,更改为“embFlash Erase,Program”。点击“program/cofigure”按钮,将前面完成的布局布线结果烧录到系统中。
2、系统固件 系统中为我们提供了系统固件的例程,存储在fw目录下。 2.1 工具链准备 我在windows环境下直接编译固件,所以需要windwos版的RISC-V的编译器。 然后安装处理器软件开发环境。 2.2 python环境 这个不详细写了,我们应该下载python3.6以上版本安装,同时应该选择将python的路径添加到系统的Path变量中。 2.3 编译固件准备 在picotiny目录的根目录下包含一个Makefile,我们打开它,然后调整 1)其中的RISCV_PATH的路径,选择前面我们安装的开发环境中 risc-v的工具链的路径; 2)COMx调整为系统中实际枚举出的串口号。 保存后退出。 由于编译的过程中还需要make工具,所以,还需要将目录 盘符:GMDtoolchainGNU MCU EclipseBuild Tools2.11-20180428-1604bin 添加到系统路径中。
- PYTHON_NAME?= python
- RISCV_NAME ?= riscv-none-embed
- RISCV_PATH ?= C:/GMD/toolchain/RISC-V_toolchain
- MAKE ?= make
- FW_FILE =fw/fw-flash/build/fw-flash.v
- PROG_FILE ?= $(FW_FILE)
- COMx ?=COM11
- exportPYTHON_NAME
- exportRISCV_NAME
- exportRISCV_PATH
- .PHONY: allbrom flash clean program
- all: bromflash
- $(FW_FILE):flash
- brom:
- $(MAKE) -C fw/fw-brom
- flash:
- $(MAKE) -C fw/fw-flash
- clean:
- $(MAKE) -C fw/fw-brom clean
- $(MAKE) -C fw/fw-flash clean
- program:$(PROG_FILE)
- $(PYTHON_NAME) sw/pico-programmer.py$(PROG_FILE) $(COMx)
复制代码
2.4 编译固件 打开一个windows终端,并且进入到picotiny的根目录。编译固件,需要在终端中执行“make”,输出如下,我们可见它编译了fw-brom和fw-flash这两个固件,通常直接编译通过了。
2.5 烧录处理器固件到flash’存储器中 同上,我们直接在刚才的终端中执行“makeprogram”,可见通过一个python的烧录工具pico-programmer.py将fw-flash固件烧录到嵌入式存储器中。
3、测试演示 完成前面的准备工作后,我们就可以正式开始测试工作了。这里采用xshell工具打开枚举出的串口,这个串口和刚才前面的烧录固件的串口是相同的。
我们可见通过串口,打印出了一个建议的操作菜单。
picotiny
|