Hi…
Onchip memory is shared with NIOS II, when i execute…
printf(IORD(base_addr,0x00);
it returns jibrish “unknown character” :: I think it is able to read that memory location but not able to decode it in HEX…
how to read onchip memory through NIOS II and display in hex values ?
on reading onchip memory with IORD instruction,
IORD ( BASE_ADDRESS, 0X00);
It returns same value. even if there is different value present in the address…
It’s a printf formatting/“variable type” issue.
printf() doesn’t natively understand anything other than quoted strings…i.e.: printf(“Hello, World!”);
You’d need to use one of %x, %i…for the details of how to do that you can use Google as well as I. 
Cheers!
Brendan
1 Like
Thank you for the reply… But what if i want to store it in a integer type variable…?
Okay…sorry for the massive response delay on my end.
Usually, when displaying values I read from memory I, I use hex format for output.
So, for your above example, it would be something like so:
printf(“Value = 0x%x.\n”, IORD(…));
You may need to “cast” the IORD() result to a type that printf supports. In that case, you’d have something like so:
printf(“Value = 0x%x.\n”, (alt_u32)IORD(…));
Being pedantic, but the dots (…) represent your particular register reads.
Cheers!
Brendan
1 Like