Hello,
I'm a bit new to micro-controllers, and I encounter some difficulties to port the FreeRTOS to the MSP430F5438, using MSPGCC.I'm working on the Olimex MSP430-5438-STK evaluation board;
As i haven't found any port to this configuration ( MSPGCC && MSP430x5438 ), i've started with a new project, using official demos/examples, and tried to edit them to make FreeRTOS work with the MSP430-5438-STK board.
My actual "little" problem, is that it looks like tasks never switch from one to another.It looks like that the macros to save/restore the context make the program crash... And as they are implemented in assembler, and that i dunno a single thing about it, i'm quite a bit lost...
Has someone already done a FreeRTOS port to a MSP430 using MspGCC ? If so, could you help me?
That's probably not big deal, but i can't find it out :-/
Thanks a lot
Matt
I'm not familiar with FreeRTOS, and especially not with its source code.
However, the 5x family has an MSP430X core. This means, the processor and all its registers have 20 bit, not just 16. While the core is backwards compatible with older core instructions (16 bit address range and registers), latest compiler versions use the 20 bit addressing to overcome the 64k boundary and access the flash above 64k. I'm not sure which version of MSPGCC you use, but if this version does the same, then it might be that the macros are only savng the lower 15 bits of the registers (including the program counter), whcih will lead to a crash if the code should jump back to an address above 64k after a task switch.
Well, it's just guessing.
_____________________________________Before posting bug reports or ask for help, do at least quick scan over this article. It applies to any kind of problem reporting. On any forum. And/or look here.If you cannot discuss your problem in the public, feel free to start a private conversation: click on my name and then 'start conversation'. But please do so only if you really cannot do it in a public thread, as I usually read all threads. And I prefer to answer where others can profit from it (or contribute to it) too.
Thanks :)
However, the 5x family has an MSP430X core.
I didn't realize that, so the first problem probably was the use of a demo for MSP430 cores. As no Demo exist for MSP430X cores with MSPGCC, i'm trying to port it from the IAR one, but i'm confronted to difficulties as some macros are written in assembler in a .s43 file. Looks like i don't have the right assembler syntax.
I'm not sure which version of MSPGCC you use
It's the v. 4.4.3 (MSPGCC4_r4-20100210)
Thank you for your answer, it helped me a lot
Mathias GoIt's the v. 4.4.3 (MSPGCC4_r4-20100210)
Personally, I still use the latest MSPGCC3.2.3 build which supports MSP430X on assembler level but not in C (which is sufficient to use the additional flash as data storage space and for loadable constant data tables)But that's mainly because the compiler output is used in produciton, and has been tested with this compiler. So unless I have to switch...
Thanks one again :)
So i'll try to install an up-to-date version of mspgcc for Linux :)