We all know that for an application to develop, for a project to work we need hardware along with the software. So here we are with our FRDM-K64F development boards, but the question is-how to make them work? I wrote in my second blog about the new getting started process by Freescale for the FRDM-K64F: http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=FRDM-K64F&tab=In-Depth_Tab
This link gives me the opportunity to download the very helpful Kinetis Software Development Kit (SDK) along with the Integrated Development Environment which includes the toolchain Kinetis Design Studio. Let us talk a bit about the Kinetis SDK in this blog. So what does Kinetis SDK is responsible for? In simple terms, it is just software framework which helps us in developing applications across all Kinetis Microcontrollers. It is a package of pre-written code that developers can re-use in order to minimize the amount of unique code that they need to develop themselves.
Let us have an overview for Kinetis SDK. It has two major components: Hardware Abstraction layer (HAL) and the Peripheral Drivers. There is a common application programming interface (API) for different platforms or peripherals, what shortens the application developing time. Moreover, with the help of abstraction layers it’s more intuitive and concise for programmers.
The Getting Started with Kinetis SDK v.1.2 document under the doc folder which I wrote about in my last blog : https://mcuoneclipse.com/2015/07/16/getting-to-know-frdm-k64f-and-more/,gave me a lot of information about the HAL, like this diagram. HAL primarily focuses on the functional control, configuration, and realization of basic peripheral operations.
The Kinetis SDK v.1.2 API Reference Manual will tell you about all the information regarding the HAL as well as the supporting components like CMSIS, you can find more about this here: https://developer.mbed.org/handbook/CMSIS-DAP; System services like clock manager, interrupt manager, low power manager- which can be used with HAL, PD and Application; Operating System Abstraction (OSA) layer which can adapt to different OS (MQX, FreeRTOS and uCos) through corresponding OSA, Board Support Packages (BSP) which involves the Board Configuration, Pin Muxing, GPIO Configuration, Stacks and Middleware which include USB stack, TCP/IP stack, Audio, Graphics, Boot Loader. It supports multiple toolchains like GNU GCC, IAR, Keil, Atollic, and Kinetis Design Studio. The following diagram is from one of the presentations from Freescale presented during Freescale Technology Forum 2015.
The latest version is the Kinetis SDK1.2 Mainline. It is even easier for new users with improved documentation, demo structure, and board support. Now let us talk about few things that we will notice when we open the KSDK1.2 folder in our system. The directory is a commendable source of information for us.
The above figure again taken from FTF15 presentations, tries to give a brief summary what all is in there in the folders inside the KSDK_1.2.0 directory. If we try to search for the HAL, the HAL drivers can be found in the KSDK platform/hal directory.
Similarly what do they mean by middleware having FATFS (File Allocation Table File System), you can find it here : http://cache.freescale.com/files/microcontrollers/doc/user_guide/MSDFATFSUG.pdf
So, with this blog I have tried to give you a very brief overview of the Kinetis SDK so that you are not overloaded with any information. We are in the process of discovering the various aspects of the Kinetis design studio and Kinetis Software Development Kit and thus can imply them in our project. In my next blog I will try to tell you more about how to use the Kinetis SDK and KDS with our cool project: https://mcuoneclipse.com/2015/07/10/lets-play-with-freescale-frdm-k64f/
I’m looking at KDSK with some interest, and recently included it in a basic KL16Z build – it came out to use text/bss 9904/1696. However a basic build just using a PE project was 1636/1052. So it might be interesting to explore what the basic framework is.
A thought might be to try a K654 KBOOT build (to make into a component) – its been hinted at here freescale community docs/DOC-105132
and all encompassing code FSL_Kinetis_Bootloader_1_2_0 ~ just an idea.