AnsweredAssumed Answered

Help! SysTick_Handler() and more can't be found in _boot.S using the KDS new project guide.

Question asked by Sean MacKay on Apr 30, 2015
Latest reply on May 21, 2015 by Sean MacKay

Following the guide provided here (How To: Create a New MQX RTOS for KSDK Project in KDS) you end up with a fundamentally broken new project. Despite Hello World compiling and running, the moment you make things more complex (specifically, introduce more than 5 ms of execution) the system attempts to (i believe) increment tick time, and calls the SysTick_Handler() ISR. I believe this is supposed to be located in _boot.S. The new project can not find the ISR and halts on a generic ISR which never returns. This leads to things like _time_delay() seeming to freeze, printf() stopping half way through output, etc.


A workaround is mentioned in the comment thread to define a new function as such:

void SysTick_Handler(void) {}

However, this seems far from ideal: it has to break whatever functionality that call is supposed to handle (which could be dire if that's how the system tracks time). It also doesn't fix any other functions that are not properly linked that may come up less frequently.

I can't see much difference between the setup of an example project and a new KDS project, and even when changing as many settings as I can to match instead of having it work I find more compile issues.

Does anyone know for sure where this function may be defined, and why it's not being included/linked properly?