Introduction
!!! Warning !!! This project is under hard construction. If well is possible to use it, I do not recommend for any without advance experience with Linux/ARM/GCC.
The goal of this project is make a single framework to learn about microcontroller Cortex-M0+. The project is based on bare-metal ARM. In this moment I work actively in add the funcionality that I want. This is a "bare metal" runtime for the Freescale Freedom FRDM-KL25Z ARM development board ($12.95 at ). It builds with the GCC ARM toolchain, with no other external dependencies.
Quick start on Linux:
-
Clone the repo:
git clone https://github.com/1nv1/OpenKL25Z
-
Grab and unpack GCC ARM toolchain:
-
On Ubuntu/Debian/Fedora:
sudo apt-get install gcc-arm-none-eabi
also you can use$ make gcc-arm
to download it
-
On Ubuntu/Debian/Fedora:
- Important! For use the board under Linux do you need update the OpenSDA firmware
-
Mount the
FRDM-KL25Z
in your system -
For compile the example and burn it into the board, execute
$ make burn
(On other systems copy the .SREC file to the FRDM-KL25Z volume.) - If everything is working, the RGB LEB will flash very quickly
-
Now you can interact with the program using
screen
command:$ screen /dev/ttyACM0 115200
- Using the capacitive touch you can navigate for the menu and select items. The part of capacitive sensor near of QR code in the board is for navigate, the rest is for select action
Downloads
Walkthrough
The interrupt vectors and reset code are in _startup.c
. The CPU comes out of reset in _reset_init()
which:
- Copies initialized constant values from flash ROM to RAM
- Configures the main clock (48Mhz)
- Jumps to
_start()
in the Newlib C library
After the C library is done initializing, it invokes main()
(implemented in main.c
).
Also I promote the use of protothreads with this «framework».
Status
Warning! This project is in alpha stage.
History
- 0.0.2 (02/20/2015)
- Several improvements
- Driver for SysTick timer
- Better example to run
- 0.0.1 (02/12/2015)
- A new repository was created and it is called OpenKL25Z.
- Now the main.c has a experimental example using state-machines and protothreads.
- 0.0.1 (01/05/2015)
- The structure has been improved on experimental branch (at old repo, inspired for CIAA's firmware).
- 0.0.1 (08/26/2014)
- ADC full support.
- It adds big quantity of documentation with doxygen.
- Better performance of size using newlib-nano in compilation.
- 0.0.0 (07/26/2014)
- Warning of readme about the goals and status of project.
- For the "ADC" support I use CooCox development files as base. When I get the idea of how it works, is more "cheaper" if you already get the APIs constants. Also the license of them are "open/free" style.
Contact
If you have any doubt, question or whatever (I like know people from anywhere and share) feel free to write me nelson.lombardo@gmail.com
I have a blog, lately I write it in English.
Now I'm testing my "personal" site, if you like see it nelsonLombardo.tk