This is a follow-up article of my earlier project presented in “FatFS, MinIni, Shell and FreeRTOS for the NXP K22FN512“. I wanted to extend it with a USB MSD (memory stick) device: The USB storage device gets automatically mounted, and depending on a configuration (.ini) file on the memory device I can perform various actions, for example automatically copy data from the SD card to the USB device. For example the system logs data, and to get the data I insert the memory stick, it copies the data on it and automatically unmounts it, and I can remove the memory stick.
An essential tool especially developing larger applications or distributed firmware is to use logging. This article presents an open source logging framework I’m using. It is small and easy to use and can log to a console, to a file on the host or even to a file on an embedded file system as FatFS.
I’m using the NXP Kinetis K22FN512 in many projects, either with the FRDM-K22F or on the tinyK22: with 120 MHz, 512 KByte FLASH and 128 KByte it has plenty of horsepower for many projects. The other positive thing is that it is supported by the NXP MCUXpresso IDE and SDK. I have now created an example which can be used as base for your own project, featuring FreeRTOS, FatFS, MinIni and a command line shell.
You might wonder what ‘Zork‘ is? Zork is one of the first and earlist fictive computer games, written around 1977 and 1979, written in MDL on a DEC PDP-10 by members of the MIT Dynamic Modelling group (see https://en.wikipedia.org/wiki/Zork). I believe the first time I have played Zork was around 1984 on a Commodore 64.
Time for a new major update of the McuOnEclipse components, with the fillowing main features and changes:
- FatFS component updated to R0.12 with patch 3 and exFAT support
- Extended support for Cortex-M7
- Extended support for Kinetis SDK V2.0
- USB component support for Kinetis SDK V1.3
- Improved FreeRTOS for NXP FreeRTOS TAD plugin
- Added C++ wrappers to multiple components
- Many smaller fixes and improvements
Breakout boards are great: they allow me to explore functions quickly, without to build my custom board: all what I need is some wires and ideally a bread board.
A new release is available on SourceForge, with the following main changes:
- Support for FreeRTOS and Cortex-M7
- Segger SystemView updated to V2.38
- Components for NXP Kinetis SDK V1.3
- Fixed bug in Wait component (register handling for GCC and ARM)
- FatFS supports FreeRTOS V9.0.0 with static memory allocation
- FreeRTOS shell and task list with static memory allocation
- Floating point conversion routines in Utility
- FreeRTOS component shows NVIC mask bits
Major changes in this new release:
- FreeRTOS V9.0.0 with static memory allocation.
- Shell with single character I/O function.
- FatFS File System with extra shell commands for memory dump and file creation.
- Segger SystemViewer library updated to V2.36a
Check out the article by Wesley Hunter about how to use the FRDM-K64F as a data logger. He describes all the steps how to use the Kinetis SDK v1.2.0 with FatFS.
Happy Logging 🙂
This blog is a guide on how to setup using the FatFs library included with the Kinetis SDK 1.2.0 using mostly the Processor expert within Eclipse Luna. FatFs is a generic FAT file system module for small embedded systems written by Chan. I prefer to use Processor Expert when possible as this will often generate code that is smaller in size than using the KSDK library files direct. I experienced many gotcha’s and complication setting this up and wanted to share how I finally managed to get it to work.
- Create New Project
- Open Processor Expert
- Add SD card component
- Add Init_Port component
- Add GPIO component
- Configure the clock
- Import FatFs
- Add Card detection code
- FAT file appender function
- Disable the MPU
Before you begin please make sure your development environment is setup and you can already compile and debug code using KSDK 1.2.0 on Eclipse Luna…
View original post 2,197 more words