2016-04-10 20:58:07 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								RISCV_TOOLS_PREFIX = /opt/riscv32ic/bin/riscv32-unknown-elf-
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								CXX = $(RISCV_TOOLS_PREFIX)g++
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								CC = $(RISCV_TOOLS_PREFIX)gcc
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								AS = $(RISCV_TOOLS_PREFIX)gcc
							 | 
						
					
						
							
								
									
										
										
										
											2015-11-04 08:12:37 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								CXXFLAGS = -MD -Os -Wall -std=c++11
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								CCFLAGS = -MD -Os -Wall -std=c++11
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								LDFLAGS = -Wl,--gc-sections
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								LDLIBS = -lstdc++
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2016-05-04 14:57:16 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								test: testbench.vvp firmware32.hex
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									vvp -N testbench.vvp
							 | 
						
					
						
							
								
									
										
										
										
											2015-11-04 08:12:37 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2016-05-04 14:57:16 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								testbench.vvp: testbench.v ../../picorv32.v
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									iverilog -o testbench.vvp testbench.v ../../picorv32.v
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									chmod -x testbench.vvp
							 | 
						
					
						
							
								
									
										
										
										
											2015-11-04 08:12:37 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-11-17 21:22:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								firmware32.hex: firmware.elf start.elf hex8tohex32.py
							 | 
						
					
						
							
								
									
										
										
										
											2016-04-10 20:58:07 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									$(RISCV_TOOLS_PREFIX)objcopy -O verilog start.elf start.tmp
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									$(RISCV_TOOLS_PREFIX)objcopy -O verilog firmware.elf firmware.tmp
							 | 
						
					
						
							
								
									
										
										
										
											2015-11-04 08:12:37 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									cat start.tmp firmware.tmp > firmware.hex
							 | 
						
					
						
							
								
									
										
										
										
											2015-11-17 21:22:19 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									python3 hex8tohex32.py firmware.hex > firmware32.hex
							 | 
						
					
						
							
								
									
										
										
										
											2015-11-04 08:12:37 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									rm -f start.tmp firmware.tmp
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								firmware.elf: firmware.o syscalls.o
							 | 
						
					
						
							
								
									
										
										
										
											2017-01-14 00:04:22 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									$(CC) $(LDFLAGS) -o $@ $^ -T ../../firmware/riscv.ld $(LDLIBS)
							 | 
						
					
						
							
								
									
										
										
										
											2015-11-04 08:12:37 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									chmod -x firmware.elf
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								start.elf: start.S start.ld
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									$(CC) -nostdlib -o start.elf start.S -T start.ld $(LDLIBS)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									chmod -x start.elf
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								clean:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									rm -f *.o *.d *.tmp start.elf
							 | 
						
					
						
							
								
									
										
										
										
											2015-11-17 21:22:19 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									rm -f firmware.elf firmware.hex firmware32.hex
							 | 
						
					
						
							
								
									
										
										
										
											2016-05-04 14:57:16 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
									rm -f testbench.vvp testbench.vcd
							 | 
						
					
						
							
								
									
										
										
										
											2015-11-04 08:12:37 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								-include *.d
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								.PHONY: test clean
							 |