Download - Programming OpenRISC on Altera De0_nano
Programming OpenRISC on Altera De0-nano
Yi-Chiao Lin
Path set
1.安裝 quartus:
chmod +x ~/Downloads/altera_installer.external.sh
~/Downloads/altera_installer.external.sh
2.vim .bashrc
3.Add $PATH:
Make (.sof)
git://openrisc.net/stefan/orpsoccd ~/orpsoc/boards/altera/de0_nano/syn/quartus/runmake asm
Make (.sof)
De0_nano USB BLASTER(.rules)
cd /etc/udev/rules.d/gedit 51-usbblaster.rules
killall jtagdsudo /opt/altera/12.1sp1/quartus/bin/jtagd
Programming Hardware
make pgm(quartus_pgm --mode=jtag -o p\;orpsoc.sof)
OpenOCD install
(1)git clone git://repo.or.cz/openocd.git
(2) cd ~/openocd (3) ./bootstrap
(4) ./configure --enable-ftdi --enable-usb_blaster_libftdi --enable-maintainer-mode
(5) make
OpenOCD Troubleshooting
1.error:libusb-1.x
Solution:sudo apt-get install libftdi-dev libusb-1.0-0-dev
OpenOCD Troubleshooting
2.TCL error:
Solution:Remove $PATH : /opt/altera/12.1sp1/quartus/bin
Check Uart pin
cd ~/orpsoc/boards/altera/de0_nano/syn/quartus/tcl
vim UART0_pin_assignments.tcl
Check Uart pin
TX
RX
De0_nano FPGA
OpenOCD Start
cd openocd sudo ./src/openocd -s ./tcl -f ./tcl/interface/altera-usb-blaster.cfg -f ./tcl/board/or1k_generic.cfg
FreeRTOS Path
Project:FreeRTOS_OpenRISC/Demo/OpenRISC_OR1200_GCC
Port layer:FreeRTOS_OpenRISC/Source/portable/GCC/OpenRISC
Port.cPortmacro.hPortasm.SPort_spr_defs.h
FreeRTOS
Select De0_nano Demo\OpenRISC_OR1200_GCC\arch\board.h
FreeRTOS
Check toolchain PATH
FreeRTOS
Make
FreeRTOS(main.c)
Or1ksim
Running for simulator
Programming Software(.or32 or .ihex)
telnet localhost 4444
halt; load_image /<path to yours>/<file>; reg npc 0x100; reset
FreeRTOS
GDB-Debug
cd ~/orpsoc/boards/altera/de0_nano/quartus/runmake pgm (programming hardware)
GDB-Debug
cd openocd sudo ./src/openocd -s ./tcl -f ./tcl/interface/altera-usb-blaster.cfg -f ./tcl/board/or1k_generic.cfg
GDB-Debug
or32-elf-gdb xxx.or32 --eval-command='target remote localhost:3333'
GDB-Debug
load
GDB-Debug
jump *0x100
GDB-Debug
b <symbol> (Breakpoint) br *0xffff (Memory address breakpoint) x/3uh 0xffff (Memory address value) n (Next step) c (Countinue)