utasker

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
514 Views
DamonGibson
Contributor III

Has anyone used utasker Serial Boot Loader with an MQX application?

If so, how do I relocate my MQX application to make room for the boot loader at 0x00000000?

0 Kudos
1 Solution
341 Views
mjbcswitzerland
Specialist V

Hi Damon

The uTasker boot loader has been used with a number of MQX projects (often USB-MSD but also SD card and memory stick loading). There is a post here explaining the configuration needed:
http://www.utasker.com/forum/index.php?topic=1866.0

In addition, there are further details in appendix B of the serial loader document: http://www.utasker.com/docs/uTasker/uTaskerSerialLoader.PDF

Some points for Arduino users at http://www.utasker.com/forum/index.php?topic=1869.0 are also given.

For MQX you need to make sure that interrupt vectors are located in SRAM (usual and simplest method - I understand there is a define somewhere) or relocated to a suitable area in Flash and the vector location register updated accordingly.
The linker script used just needs to have its Flash locations starting at the serial loader's address (rather than 0).
Finally, the most problems with MQX is due to its clock configuration routine often hangs when the loader has already configured the clocks (it seems it assumes a reset and gets stuck otherwise). A simple workaround is to ensure the serial loader is configured to already set up the clock as required by the application and then the MQX clock configuration code can be skipped.

Regards

Mark

View solution in original post

0 Kudos
1 Reply
342 Views
mjbcswitzerland
Specialist V

Hi Damon

The uTasker boot loader has been used with a number of MQX projects (often USB-MSD but also SD card and memory stick loading). There is a post here explaining the configuration needed:
http://www.utasker.com/forum/index.php?topic=1866.0

In addition, there are further details in appendix B of the serial loader document: http://www.utasker.com/docs/uTasker/uTaskerSerialLoader.PDF

Some points for Arduino users at http://www.utasker.com/forum/index.php?topic=1869.0 are also given.

For MQX you need to make sure that interrupt vectors are located in SRAM (usual and simplest method - I understand there is a define somewhere) or relocated to a suitable area in Flash and the vector location register updated accordingly.
The linker script used just needs to have its Flash locations starting at the serial loader's address (rather than 0).
Finally, the most problems with MQX is due to its clock configuration routine often hangs when the loader has already configured the clocks (it seems it assumes a reset and gets stuck otherwise). A simple workaround is to ensure the serial loader is configured to already set up the clock as required by the application and then the MQX clock configuration code can be skipped.

Regards

Mark

0 Kudos