07-13-2017 03:21 PM
I can build the system and make a simple test application, however when I connect via XMD and program the bitstream, then connect with mb-gdb and load the file, no matter what I do, even a simple stepi, results in the GDB freezing,and the following coming over the XMD interface.
XMD% Error: MicroBlaze Pipeline Stalled on a Blocking Instruction or Invalid Bus Access Stalled PC: 0x00000014 Try Resetting the Processor to Continue..Processor is stalled at address 0x4. UNABLE to STOP MicroBlaze
I have tried programming it, ensureing that the I & D BRAMS are on the same memory address, downloading the file via XMD, downloading and loading the file via XMD, and just using the GDB load operation. but every time it stalls at 0x14. and I can never get out of _start() at 0x0000000000
Can anyone shed some light on this issue?
07-14-2017 10:38 AM
I've now tried to read and write to the `microblaze_bram_I` , `microblaze_bram_d` as well as their AXI counterparts to ensure that I can write to the memory. It appears there is some kind of application running as the values change periodically, however when I write to them, only some of the buts change, and keep flopping back and forth to different values.
I program the device with the system_bmm.bit file in the applications Debug/ directory, and the system.bmm file that is in the hardware description directory. I have tried without the system.bmm file and there is no change whatsoever.
07-14-2017 11:53 AM
After attempting to write to the `MCB_DDR3` `axi_s6_ddrx` module and running a simple hello_worl program, I have found that this data stays zero no matter what. I have programed the FPGA before and after to ensure that it isn't a mistake.
I wrote to it after connecting XMD to the device.
mcb_ddr3_S0_AXI_BASEADDR = 0x80000000 -- size = 0x80000000
Connected to "mb" target. id = 0 Starting GDB server for "mb" target (id = 0) at TCP port no 1234 XMD% mwr 0x81000000 0xbeefdead XMD% mrd 0x81000000 81000000: 00000000 XMD% mrd 0x81000000 81000000: 00000000 XMD% mrd 0x80000000 80000000: 00000000 XMD% mrd 0x80001000 80001000: 00000000 XMD% mwr 0x80001000 0xdeaddead XMD% mrd 0x80001000 80001000: 00000000
07-14-2017 03:26 PM
07-14-2017 04:19 PM
Can you try use bram (lmb bram) for the boot vectors. Or, hold the microblaze in reset until the DDR is up.
The microblaze is stalling as it is executing invalid instruction (0x00000000).
Also, looks like you have issued with your ddr
How do I go about that? Currently upon reset the microblaze sits at 0x00000000 . My understanding was that it starts there an then loads the address of the main function and jumps to it. Is that incorrect?
The microblaze is held in reset. It sits at reset until after I load the symbol table in GDB.
Yes, it would seem so. However I have used this board before and there were no issues with it, so there is something wrong with the system and not the board. It is a SP605 Dev Board.
07-14-2017 04:21 PM