This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to jump somewhere in my firmware?

Hi,

I have finished concatenation boot loader and firmware codes. The boot loader can jump somewhere in firmware startup segment when I checked the signature passed in boot loader during the boot sequence.

The question is how do I debug the mechanism? [jump to firmware startup] Concatenation two different code is not supported by hardware.

Any suggestions will be fine. very thanks.

  • Are you saying that you embarked on this endeavor of designing a bootloading mechanism of firmware code without so much as an inkling of a notion as to how you would test whether it achieved your design goals?

  • Hi Dan,

    Definitely. I don't know how to test this mechanism.
    If you have any suggestions, I look forward to hearing from you.

    Very Thanks.

  • Well, if caused your bootloader to load and start a target-executable image of, let's say, the infamous "Hello world" program and you then observed "Hello world" at said program's output means, wouldn't that be an cursory test?

  • Yes.
    I just test my bootloader program can jump to the start segment of another program like the infamous "Hello world". Finally, I can use the passed method on our C51 platform.

    Or another some suggestions? I can certainly test my mechanism. Thx

  • The question is how do I debug the mechanism?

    I can think of many ways
    e.g. with the SILabs JTAG debugger you can load first the bootloader, then the app and the app will be just like another (loaded) app to the debugger even when startd through the booter.

    This is probably not what you need, but an example of why the question:

    WITH WHAT TOOLS do you want to debug?

    Erik

  • Did you concatenate two separate stand-alone binaries, or did you let the compiler/linker create a single binary expected to contain two disjoint programs?

    More than one developer of boot loader mechanisms have managed to create binaries that shares a common set of functions, such as helper functions used by the compiler. In that case, they may test the boot sequence, and everything will look good. But at a later time, when they create a new version of the replaceable application, that application will have resulted in a move-around of the common routines, so the boot loader already in shipped units may fail after an upgrade.

    Obviously, the used test methods will differ, depending on how you merged your two applications.

  • Hi Per,

    Thanks for your replied this discussion.
    I concatenate two separate stand-alone binaries[boot loader and test program like "Hello World" program]

    Our objective is to reuse OTP[one time programming] space. When I ship our boot loader in the OTP and the OTP has another enough of spaces to put our firmware code in it. My boot loader only capability is to check the newest firmware code to execute in OTP.

    Now I want to know how to test this mechanism without hardware supported.

    Thx