This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RE: Board can't boot up without debug

Other Parts Discussed in Thread: HALCOGEN

Hello Pablo,

          I am facing the same issue. My board is working fine when I connect the JTAG, but once I remove the JTAG and power up the board, it is not booting up in standalone. and the nError pin is LOW.

Can you please elaborate on the VFP and initVFP() function. Because I could not find such function in my HALCOGEN generated files and also share the version of initialization manual you are using.

Please suggest.

  • Can you please create a new post on the forum with your question? This is a closed thread.

    Regards,
    Sunil
  • Hello Sai,


    Forst of all I wasn't using HALcogen, I wrote the bootloader on my own, so I did a few mistakes I probably shouldn't have made. I doubt we have the same problem, but I'll try to help you in any way I can.

    My problem was the following:

       In the reset function (_c_int00), the first function I was calling was written in assembly (initVFP). This by itself is not a problem. The problem was that I called this function before initializing the Stack Pointers and the initVFP function was using the "stmfd   sp!, {r0}" instruction which stores the value of r0 to the area pointed by the stack pointer. This was bad because when the processor is initialized, it is not possible to guarantee that the registers will start with a "good" value, they might end up pointg to a memory region where there is nothing and that was causing my problem. I resolved it by initializing the Stack Pointer registers AND THEN calling the initVFP fucntion.

    In order to find out what's going on, and why your board isn't booting and the error pin is low, I suggest you load a new program with the jtag, then when everything is loaded, disconnect from the board (right click on the target and the press disconect) without leaving the debug mode. After that remove power from your board and the right click on the target and click connect. At this point you will be able to see exactly where your code is and probably find out what is causing your problem.

    PS: Did you click on auto ECC generation in the debug configurations?

  • Hello Pablo,
    Sorry for a very late reply first,
    As you suggested, I could sort out the issue, and ours is also the same problem that _c_int00 is a C function which is called first before Initializing the Stack Pointers. So I had to write an assembly function which would branch to the Stack pointer intialisation first and then the actual _c_int00 call.

    Thanks for the support,

    Regards,
    Sai