McuOnEclipse Components: 3-Apr-2016 Release

It has been already two months after the Feb 2016 release, and so much things are going on, so a new release was overdue. Today I have released a new version of the McuOnEclipse components on SourceForge with the following main changes and features:

  • Kinetis SDK v2 with Processor Expert: Now many components can be used even with the Kinetis SDK v2.0 even with the Kinetis SDK not having Processor Expert included.
  • Updated Segger SystemViewer to v2.32a with post-mortem and static buffer support
  • Updated Segger RTT to v5.10u and fixed an issue with interrupts on Cortex-M4
  • FreeRTOS Thread Awareness with OpenOCD

See readme on SourceForge for the full history.

McuOnEclipse 2016-04-03 Release

McuOnEclipse 2016-04-03 Release

Segger RTT

The Segger SystemViewer has been updated to version v3.32a. The interface exposes now the printf() function:

Segger RTT Printf

Segger RTT Printf

Previously the RTT was using the FreeRTOS critical section calls if FreeRTOS was used. This could cause issues if Segger RTT calls were used from an interrupt context. Now it is using its own critical section handling and masks interrupts up configMAX_SYSCALL_INTERRUPT_PRIORITY.

Segger RTT Settings

Segger RTT Settings

If FreeRTOS is used, then the Segger RTT ‘max blocked interrupt level’ setting is ignored and the RTOS blocked interrupt level is used instead.

Segger SystemViewer

The SystemViewer has been updated to v2.32a which includes static buffer and post mortem tracing (see https://www.segger.com/systemview.html).

Segger SystemViewer Settings

Segger SystemViewer Settings

With Post Mortem it is possible to attach to a crashed system and find out what it was doing as last thing.

With static buffers the amount of stack space needed is reduced, and it is using a global memory buffer instead.

FreeRTOS and Thread Debugging in Eclipse

The RTOS has been patched to allow thread aware debugging in Eclipse and to show the tasks in the Eclipse debug view:

FreeRTOS Threads in Eclipse with OpenOCD

FreeRTOS Threads in Eclipse with OpenOCD

This deserves its own article, so hopefully I can post the tutorial on that one soon.

Kinetis SDK v2 Support

As the NXP Kinetis SDK does not include any Processor Expert support, I was looking into ways how to continue to use the McuOnEclipse components with the Kinetis SDK v2.x.

For this, many of the components have now a reference to the Kinetis SDK component:

Kinetis SDK Reference in component

Kinetis SDK Reference in component

With using newer components, you might be asked to add the Kinetis SDK component to your project and specify that in the component settings. That change is backwards compatible, so you can open ‘newer’ projects with ‘older’ versions of the components. But using the new components might mean that you need to update your project component settings.

Inside the Kinetis SDK component there is now a setting to specify the SDK to be used for the project:

Kinetis SDK Setting

Kinetis SDK Setting

With this, it is now possible for some components to create code for the Kinetis SDK v2.x:

Using Processor Expert Components with Kinetis SDK v2.0

Using Processor Expert Components with Kinetis SDK v2.0

For example I can now use the LED component and others with the Kinetis SDK 🙂

Using LED component with Kinetis SDK

Using LED component with Kinetis SDK

The functionality is still ‘experimental’, so I will continue to work on that support. And this feature alone probably deserves an article on its own :-).

Summary

This release comes with a set of bug fixes and new features, and can be installed over an existing component installation. With the added support for the Kinetis SDK v2.0 existing projects needs to update the settings which should be be very easy. I plan to write follow-up articles about the FreeRTOS thread debugging in Eclipse plus how to use the new concept and components with the Kinetis SDK v2.0.

Happy Updating 🙂

Links

Advertisements

24 thoughts on “McuOnEclipse Components: 3-Apr-2016 Release

    • Hi Henry,
      yes, that’s correct: you cannot create a project with the SDK v2.0 wizard with Processor Expert enabled. There is no Cpu component for the KL27Z. What I’m showing in this post basically is to have two projects: one with Processor Expert (for a dummy Kinetis device which is supported), and a normal SDK v2.0 project. I’m using then the generated code from the Processor Expert project in the SDK project. Of course I don’t have all the hardware components (low level drivers), but that’s not a big problem as they are covered by the SDK files.

      Like

  1. Thanks again for your work Eric!

    I would appreciate a tutorial on the thread aware debugging in Eclipse when you get to it. In the meantime do you have any reference links I could read relating to what you’ve achieved.

    Like

  2. Hi, I’ve spent enough time trying to create a square wave pulse and variable and achieved but I need the variable that is controlled by the pulse also has a counter. How can I do this?

    PS: Also I would like to know if there is any component to handle 4×4 matrix keypads

    Like

    • Hi Julian,
      I’m not really clear what kind of square wave you want to generate? Using the Kinetis FlexTimer you should be able to do pretty much anything?

      About the 4×4 matrix keyboard: I started an article and a component for this a long time ago, but never really finished it 😦

      Like

      • Thank you for answering now I have solved the problem of the generation of pulses with variable frequency. With regard to serious matrix keyboard much help it could finish, also thanks for answering your page me has been very helpful.

        Like

  3. Hi Erich,
    may be i dont understand somethings…
    In my old project, developed in CW MCU 10.6.4 with an MK64F and with PE and without any SDK, i have used yours components LED (with pwm) and WAIT…
    After update this components-packages, at compile/builder time, every of this components (LED and WAIT) mark an error, because the builder/compiler dont found any SDK.
    Where i make a mistake?

    Like

  4. Hello I think I’ve found something of a bug….

    Updating CriticalSection (CS1) to 1.008 seems to cause the SDHC sub-component of my FAT_FileSystem/FatFsMemSDHC break. it somehow decides that sdhc1_SetWriteProtecton is ill-defined??

    ‘Building file: ../Generated_Code/SDHC1.c’
    ‘Invoking: Cross ARM C Compiler’
    arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -g3 -I”C:/Code/kinetis/SF4V/Static_Code/PDD” -I”C:/Code/kinetis/SF4V/Static_Code/IO_Map” -I”C:/Code/kinetis/SF4V/Sources” -I”C:/Code/kinetis/SF4V/Generated_Code” -std=c99 -MMD -MP -MF”Generated_Code/SDHC1.d” -MT”Generated_Code/SDHC1.o” -c -o “Generated_Code/SDHC1.o” “../Generated_Code/SDHC1.c”
    ../Generated_Code/SDHC1.c:1474:12: error: conflicting types for ‘SDHC1_SetWriteProtection’
    LDD_TError SDHC1_SetWriteProtection(LDD_TDeviceData *DeviceDataPtr, LDD_SDHC_TWriteProtectType Type, uint32_t Address, bool Protected)
    ^
    In file included from ../Generated_Code/FATM1.h:64:0,
    from ../Generated_Code/SDHC1.c:129:
    ../Generated_Code/SDHC1.h:597:12: note: previous declaration of ‘SDHC1_SetWriteProtection’ was here
    LDD_TError SDHC1_SetWriteProtection(LDD_TDeviceData *DeviceDataPtr, LDD_SDHC_TWriteProtectType Type, uint32_t Address, bool Protected);
    ^
    make: *** [Generated_Code/SDHC1.o] Error 1

    I don’t really understand /how/ such a change can effect things but ????

    Like

  5. Pingback: FreeRTOS Thread Debugging with Eclipse and OpenOCD | MCU on Eclipse

What do you think?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.