About Erich Styger

18 thoughts on “McuOnEclipse Components: 25-June-2016 Release”

Hi Erich, sorry for so many querries.
I am trying to keep my tools up-to-date. Some 14 days ago I have downloaded your PEx Component Package ‘Components 2016-05-29’, it contains FreeRTOS component version 01.489. This is exactly what my project shows by examining Repository for the FreeRTOS component.
I have found a newer package on your web ‘Components 2016-06-25’ and I have imported both files into the same folder (MyComponents) thus replacing the previous ones. The FreeRTOS version says 01.502.
Then I realized I have no idea how to freshen the selected component in my project. Just to rebuild it seems to be not enough. And of course I do not want to delete the previously (painfully) configured revision and instert the new component instead.
What is the correct method of “freshening” the already used component in my project?

No worries for questions, as long as I’m able to answer them 🙂
If you would subscribe to this blog (there is a link on the right side for several ways), you would get automatic notes about new posts. I post articles like https://mcuoneclipse.com/2016/06/25/mcuoneclipse-components-25-june-2016-release/ to inform about new releases and the changes.
FreeRTOS 01.502 is the correct (latest) version. You can see this in the versions.txt inside the zip file.
So if you load the new components (both parts), it will automtically update your components with the new ones. I work hard to keep things compatible and easy to upgrade (not always possible).
Good news is that you have now the latest version of the components.
To get the new code, usually you simply need to generate code again. To be sure that you get everything newly generated, you might delete the Generated_Code folder inside your project.
After importing the new components, it is recommended to restart Eclipse. That way it will refresh the list of components too.

Hi Erich,
inexperienced (and stupid) me. The way to force the project to use the newest installed components is to press ‘Generate Processor Expert Code’ button. Yes, deleting the Generated_Code folder might force the system to regenerate it as well. During the code generation I get messages:
Loading MK10_t1 project components – component “My Components/FreeRTOS UUID: version:01.489” taken from repository “My Components”, with different component version:01.502
Loading MK10_t1 project components – component “My Components/Utility UUID: version:01.120” taken from repository “My Components”, with different component version:01.124
which is exactly what I was looking for.
Ludek

Hi Erich,
For my current project what I want to use is KDS 3.2, SDK1.3, Processor Expert, and some of the beans you’ve written for processor expert – notably FLS_USB_CDC_Device.( from this June 25 release)

When I try to compile my code which is just this in main,c:
CDC1_Init();
for(;;) {
CDC1_SendString(“USB works!”);
}

I get errors when the CDC1.c file builds, it is looking for “hidef.h” and not finding it.
also types.h and derivative.h are not found compiling other CDC source files in generated code.

There is obviously something I am missing, could you tell me what it is?

You can clone the GitHub repository (https://github.com/ErichStyger/McuOnEclipse_PEx) to your local disk where Processor Expert has stored the components. The location depends on the host machine (it is C:\ProgramData\Processor Expert\PEXDRV_PE5_3 on my Windows 10 machine, see https://mcuoneclipse.com/2012/06/30/cde-hacking-where-is-my-stuff-a-dissection/). The layout in the GitRepo is exactly that structure. So yes, you can import from the file system, but it needs to be placed in a special folder.
>>I grabbed the release off sourceforge and so have the Segger 2.4 things.
SourceForge currently hosts the Segger V2.36 version. V2.40 is on GitHub.

MQXLite: I have not used MQXLite for a long while. The bigger issue is that SystemView does not support MQX or MQXLite. SystemView comes with a manual which details the needed steps to port it, but this is really more expert stuff, and problably a few days of work. But you might give it a try.
My recommendation would be to use FreeRTOS instead: then you are ready for the future, have a better RTOS and tools.

Converting this to FreeRTOS isn’t all that easy either… it doesn’t like to play nice with the PE things all that well…..

One of the interesting things I ran into immediately:

Using KDS3.2 on a non-SDK project (use this to avoid adding the OSA layer in PEX). Using FreeRTOS 9.0.0 from github (newest as of this posting 22-Aug-16)

If you select the “static Sources” custom port option in the component inspector (PEX) it creates the whole of the FreeRTOS tree in the “Generated_Code” directory tree which is a good thing from a git viewpoint but nothing can find any of the .h files and compiles crash missing these (cleanup involves a LOT of “look here” in the compiler directives.

If you don’t select the “static Sources” custom port option, PEX creates the .h file associated in that directory directly so everything finds them just fine.

I also ran into conflicting data types… particular the definition of bool is different at time in the project. It’s that “at times” that’s a bit of an interesting problem.. I haven’t tracked that down just yet.

Still, I’m thinking that, yes, FreeRTOS is probably the future so I’m biting this bullet and attempting to run with it.

Hi Randy,
I had created that ‘static’ option to easier compare/take out the sources out of Processor Expert structure. But that requires to manually add the path to the header files as they are nto in the root of the Generated_Code folder. I have not found an automatic way to add the paths to the compiler settings, so this has to be done manually.
About bool: yes, this has been a big pain recently because of include order, and other libraries are defining ‘bool’ types too. Then it depends on what is included first. I have been burnt several times by this already, and adding the Kinetis SDK files makes things even worse. FreeRTOS adds to this as with the default include of “FreeRTOS.h” not all headers are included, you need to include “tasks.h” and others. I had that solved with the include of “FRTOS1.h” (or whaterver name you gave the component. So including that one first might solve your issue.

I should note that I’m not using the SDK but using the PEX LDD structures. It looks like FreeRTOS has a different version of bool than PEX does and depending on how PEX is putting together the .c files for the LDDs depends on how bool gets defined (often out of sync with its .h file)