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

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

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

1,524 Views
ironsean
Contributor V

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?


Sean

Labels (1)
Tags (3)
7 Replies

917 Views
Carlos_Musich
NXP Employee
NXP Employee

Hi,

Sometime after I published this document I found those errors. I kept investigating and know I have a fully functional project created from scratch. You can find it attached.

I will fix this and publish the new version with KSDK1.2 and KDS3.0 very soon.

Sorry for the inconvenience.

Carlos

917 Views
mozturk
Contributor I

Hi Carlos,

Can you please describe how you fixed the SysTick_Handler issue? I created a new KDS project following the latest version of the guide you posted here and have run into the same problem. I don't see any differences between my project configuration and your working example.

0 Kudos

917 Views
ironsean
Contributor V

Are you using KSDK 1.2 and KDS 3.0?

0 Kudos

917 Views
RadekS
NXP Employee
NXP Employee

I could confirm that SysTick works correctly in this example.

I tested it on frdmk64f board. For that purpose I just replaced “twrk64f120m” by “frdmk64f” string in project paths.

Have a great day,
RadekS

917 Views
ironsean
Contributor V

Thanks. Even copying settings didn't change the project built from the guide, so I'll wait for the next release to give the new project wizard a try, I've just taken one of the example projects for now to work in.

0 Kudos

917 Views
RadekS
NXP Employee
NXP Employee

Could you please look at my answer here:

https://community.freescale.com/message/511192#511192

and check whether it solve described issue?

I hope it helps you.

Have a great day,
RadekS

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

917 Views
ironsean
Contributor V

Unfortunately it does not. I replied there with more detail, but the SysTick_Handler() issue only becomes apparent when the program executes long enough for the interrupt to fire. Hello World prints fine before any issues can happen, but _time_delay() calls or longer printf statements (or simply more complex programs) will halt even with the changes suggested.

0 Kudos