Requests


This page is for you! If you’d like more information about something I’ve posted about, or if there is a topic you think I should post about, please leave a comment and I’ll get right to it (as fast as my schedule permits it)!

I have started to list things in my bucket list (still ongoing).

For feature requests or bug reports on the McuOnEclipse project end Processor Expert components, you should use the GitHub issue tracking system:

Advertisements

873 thoughts on “Requests

  1. Eric,

    I have followed your guide for porting PEx to MCUXpresso as shown here: https://mcuoneclipse.com/2018/07/27/porting-processor-expert-projects-to-mcuxpresso-ide/

    I’ve tried multiple times, however, I keep running into an error something to do with the vector files. The error it describes is, “undefined reference to `__thumb_startup’ within the vectors.o resource. I am using the MK22FN256LVH12. Not quite sure why it would not be defined since when I search for its source it goes to this.

    #elif defined(__GNUC__)
    #ifdef __cplusplus
    extern “C” void __thumb_startup( void );
    #else
    extern void __thumb_startup( void );
    #endif

    Thoughts?

    Like

    • Hi Chris,
      you might have a look at https://github.com/ErichStyger/mcuoneclipse/tree/master/Examples/MCUXpresso/tinyK22/tinyK22_RoomMonitor as a reference.

      It looks like you still have __thumb_startup in Vectors_Config.h?

      ‘undefined reference’ means that the function is not defined (implemented) anywhere.
      Check that the ‘startup/startup*.c’ file is indeed compiled and linked. The entry point of the reset vector with the SDK is ResetISR() inside that startup file.
      Now the _thumb_startup() one is the startup name for KDS and usually referenced from the vectors file.
      You need to change the ‘Static_code\System\Vectors.c’ (which it seems you have found). A few lines below there is
      VECTOR_1, /* 0x01 ivINT_Initial_Program_Counter */
      which means you need to change the definition of VECTOR_1which is in Generated_Code\Vectors_Config.h

      /* Vector Address No. Pri Name Description */
      #if 0 /* original Processor Expert code */
      #define VECTOR_SP_MAIN &__SP_INIT /* 0x00 – ivINT_Initial_Stack_Pointer used by PE */
      #define VECTOR_1 (tIsrFunc)&__thumb_startup /* 0x01 – ivINT_Initial_Program_Counter used by PE */
      #else /* needed by SDK startup */
      #define VECTOR_SP_MAIN &_vStackTop /* 0x00 – ivINT_Initial_Stack_Pointer used by PE */
      #define VECTOR_1 (tIsrFunc)&ResetISR /* 0x01 – ivINT_Initial_Program_Counter used by PE */
      #endif

      I hope this helps?
      Erich

      Like

  2. Erich, Your posts are always the most helpful in filling the gaps between the theory and practice! Thank you for that. I would love if you covered the topic of end-user OS updating in the field. It looks like there may be two existing options for the IMXRT: MCUBoot/Flashloader or OpenSDA/DAP-Link (which requires a co-processor?)

    Thanks!

    Like

    • The DAP-Link (or debug port) is more for debugging and development, but not for updating systems in the field. Sure you can use it for that as well, but this requires better trained operators. The bootloader/flashloader is more intended for such an update process if you have physical access to the system. Other ways are using a network link for this.

      Like

What do you think?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.