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/orpsoc
cd ~/orpsoc/boards/altera/de0_nano/syn/quartus/run
make asm
Make (.sof)
De0_nano USB BLASTER(.rules)
cd /etc/udev/rules.d/
gedit 51-usbblaster.rules
killall jtagd
sudo /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.c
Portmacro.h
Portasm.S
Port_spr_defs.h
FreeRTOS
 Select De0_nano
DemoOpenRISC_OR1200_GCCarchboard.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/run
make 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)

Programming OpenRISC on Altera De0_nano