We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Dear Keil,
We are using the STM32F3 discovery board, and used the RTX with the demo code. When we compile, it says SVC_Handler multiply defined; Systick multiply defined etc.
I was wondering if you have met this problem before and know how to solve. Many of us have this problem.
Thanks. Jack
Hi Andrew,
But my additions were the most basics of the Keil RTX. That just tells me that Keil RTX has internal functions that conflicts with user code.
I was hoping for a solution but seems like a dead end. I even tried switching to timer-based-RTX instead of using systick but exactly the same problem occurs.
The only way out is to go back to interrupts-coding without Keil RTX ?
Please note that the demo code functions are crucial for my development so I need to give the STM32 libraries priority of use so I cannot start coding using a blank template from scratch.
Best regards, Jack
You can't just dump an RTOS onto any arbitrary piece of code and expect it to "just work".
You need to understand the requirements of the RTOS, and ensure that your code is structured suitably.
"the demo code functions are crucial for my development"
What "demo code"?
"only way out is to go back to interrupts-coding without Keil RTX ?"
Is that a problem?
Why did you want to use RTX anyhow?
Apologies for the confusions. Would like to clarify:-
The demo code I am using is the one provided for stm32F3 discovery board. It's supposed to work hand in hand with Keil - it does compile but not when you include a RTX in it. Quite surprizing for 2 big partnership companies.
The main requirement for the Keil RTOS for stm32f3 is the systick timer. The funny thing is, systick is taken up (or stolen) by the demo code itself which initializes it and uses it for all sorts of stuff including USB interface.
So, there is a conflict - i.e. you can't use stm32 demo code (i.e. standard peripheral drivers) with Keil RTX. That's bum.
Thanks anyway - I wonder if Keil knows about this, I bet they're too busy.
Best regards, Jack (from your message I know you don't know the answer anyway - but thanks for your passion to help others, it's nice)
It's 'C' source code for an ARM Target; Keil provides 'C' tools for ARM targets.
"it does compile but not when you include a RTX in it. Quite surprizing for 2 big partnership companies"
Not at all!
It's provided as "bare-metal" code; it is not designed for use with an RTOS; it makes no claim to do so.
"The main requirement for the Keil RTOS for stm32f3 is the systick timer"
Eh??!!
There is no need to go to the lengths of an RTOS just to use a timer!!
As the demo itself illustrates, the SysTick timer is perfectly usable without any RTOS!
"The funny thing is, systick is taken up (or stolen) by the demo code itself"
Why is that funny?!
The demo is demonstrating the use of the chip's features - including the SysTick timer.