Showing results for 
Search instead for 
Did you mean: 
Honored Contributor I

The HPS GPIO registers are unavailable


I am starting a bare-metal development on DE0-Nano-SoC_Computer. 

I use the development tool: DS5 AE. 

I begin by a timer program found in the document “DE0-Nano-SoC Computer System with ARM Cortex-A9”: 





equ bit_24_pattern, 0x01000000 






/* this program provides a simple example of code for the arm a9. it: 






* 1. starts the arm a9 private timer 






* 2. loops forever, toggling the hps green light ledg when the timer expires 




















.global _start 













ldr r0, =0xff709000 // gpio1 base address 






ldr r1, =0xfffec600 // mpcore private timer base address 






ldr r2, =bit_24_pattern // value to turn on the hps green light ledg 






str r2, [r0,# 0x4] // write to the data direction register to set 






// bit 24 (ledg) of gpio1 to be an output 






ldr r3, =200000000 // timeout = 1/(200 mhz) x 200×10∧6 = 1 sec 






str r3, [r1] // write to timer load register 






mov r3,# 0b011 // set bits: mode = 1 (auto), enable = 1 






str r3, [r1,# 0x8] // write to timer control register 













str r2, [r0] // turn on/off ledg 






wait: ldr r3, [r1,# 0xc] // read timer status 






cmp r3,# 0 






beq wait // wait for timer to expire 






str r3, [r1,# 0xc] // reset timer flag bit 






eor r2, r2,# bit_24_pattern // toggle ledg value 






b loop 













The HPS GPIO registers are unavailable, it’s impossible to see the values in the registers tab of DS5. 

The values of addresses 0xFF709000 are 0x00000000 in the memory tab of DS5. 


Is it necessary to initialize the GPIO before launching the program? 


Thanks for your help. 

0 Kudos
0 Replies