06-12-2015 07:39 AM
During debuging microblaze, the program goes randomly to any code line when I run single step. I check the disassembly code, found that the address does not increase by 4, for example:
The red part address does not always increase by 4. I checked the stack size(0x800) and heap size(0x400). The memory size is 128K(0x20000), and program size is less than 0x15000. It's enough. So I can not figure out why.
This situation happends in a function which is in BSP. Other functions are OK. This function is at the end of the disassembly code.
Who can help me?
06-12-2015 08:18 AM
Is this only during debugging or is normal operation acting similarly indeterminate?
If you place and route the design does the performance change?
Double check your timing constraints and timing report to make sure the microblaze is being constrained correctly.
Is your clock clean and stable?
06-12-2015 08:50 AM
I find this problem only when debugging while I can not know the actual status if let the program free running. I place and route the design some times, and the results are same.
This problem only occurs when I use a function (XFlash initialization function). This function is in BSP generated with xilflash library selected. And only this function goes crazy. Other functions are always OK. When I comment out the function, the program run well. So I do not think the timing constraints or clock has problems. I find that the ELF file size increases significantly when using the function, but the memory size is enough.