Arduino Forum

Development => Other Hardware Development => Topic started by: elfallino on Dec 07, 2014, 09:29 pm

Title: free bootloader for Teensy OR recommendation for a 32Bit CPU
Post by: elfallino on Dec 07, 2014, 09:29 pm
Hello,

I've been developing using the Arduino plattform for years and I really love it.
Now I am working on something that would require the speed and ROM/RAM-size a Cortex CPU would offer.

I recently buyed a Teensy3.1 board that I really like. But I just noticed that the bootloader on that second Chip is not open or free what would be neccessary to me.

Unfortunately I have no clue when it comes to writing an own bootloader.
I think I understand what they are doing and how they work basically but I do not feel that I could write one myself.

So I am looking for a solution that could either be a free Bootloader that I can install to the K20 (M4) Proessor and cutting of the secondary Chip or another developement board that uses a 32Bit ARM CPU with either an open bootloader or an integrated bootloader that can be used also for small commercial projects.

The very and golden best would be something that brings an Arduino IDE Plugin but I would also use something else (Eclipse with Plugin for Example).


Many thanks in Advance
Title: Re: free bootloader for Teensy OR recommendation for a 32Bit CPU
Post by: robtillaart on Dec 07, 2014, 09:32 pm
Have you checked this (teensy) forum - http://forum.pjrc.com/forum.php - ?
Title: Re: free bootloader for Teensy OR recommendation for a 32Bit CPU
Post by: elfallino on Dec 07, 2014, 10:15 pm
Not really - I was aware that there is a forum but I guessed that the "owner" does not want to have discussions about that because as far as I noticed the proprietary bootloader is the only thing that makes sure people buy either the teensy itself or at least the small secondary chip with the preinstalled bootloader.

Title: Re: free bootloader for Teensy OR recommendation for a 32Bit CPU
Post by: westfw on Dec 08, 2014, 04:07 am
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=KBOOT (http://"http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=KBOOT")  ??  You'd presumably need to re-work the compilation of sketches to not occupy the same space as the bootloader.

The current Teensy bootloader is sort of brilliantly non-invasive.  The "bootloader chip" connects to the ARM via the jtag lines, and presumably it loads code into the ARM RAM and executes it at poweron.  Then the RAM code implements USB bootloader, without using any of the ARM flash, or needing multiple USB connections, or anything.

Many ARM chips (include the Atmel SAM3X chip used on Due, the STM32F chips (originally used on Maple, and currently generating some discussion here), the TI Tiva (Launchpad/Energia)) have some sort of ROM-resident bootloader.  Of course, some of them are more expensive than the whole Teensy3 board...

Title: Re: free bootloader for Teensy OR recommendation for a 32Bit CPU
Post by: ron_sutherland on Dec 09, 2014, 12:47 am
I've been looking into this problem also, but do not have a solution. I'm going to list some of what I found just for referance

One Option for Teensy (K20) is an OpenSDA bootloader, but it is not for gcc.
https://github.com/mbedmicro/CMSIS-DAP (https://github.com/mbedmicro/CMSIS-DAP)

The Arduino Zero will allow OpenOCD loaded in its debug chip, and that may have a bootloader also (not looked at it much yet).
http://openocd.sourceforge.net/ (http://openocd.sourceforge.net/)
Title: Re: free bootloader for Teensy OR recommendation for a 32Bit CPU
Post by: elfallino on Dec 09, 2014, 07:46 am
Yes, Teensy rendered as unusable when it comes to creating your own PCB unless you are willing to use the preflashed chip and to pay the 8$ per chip and to hope that it will still be available in a year or two.


The ArduinoZero definately is an interesting one - but it is not available yet (does anybody know when it will be?).

As faw as I know (that might not be very much) the Zero's second chip is not holding a bootloader but creating an interface to the debugging pins of the MCU (I guess it is a bridge to UART or something?).
The MCU itself contains the Atmel factory bootloader and theArduinoIDE is modified to be compatible with this bootloader (which should be finde).

Please correct me if I got something wrong.
Title: Re: free bootloader for Teensy OR recommendation for a 32Bit CPU
Post by: westfw on Dec 09, 2014, 12:09 pm
Quote
Teensy rendered as unusable when it comes to creating your own PCB
huh?  You can always dispense with bootloading and load your sketch via JTAG or EzPort...  It's not like the PJRC bootloader chip loads any library code or magic keys; it JUST provides the bootloader.
(Or you can create your own version of the bootload chip (and your own bootloader.  It shouldn't be too hard; you have lots of RAM to play with, and you should be able to fit plenty of code in, say, a ATmega328 chip at ~$3...))

Title: Re: free bootloader for Teensy OR recommendation for a 32Bit CPU
Post by: elfallino on Dec 09, 2014, 12:58 pm
You are right, you can use ezPort or JTAG but that is not a very comfortable way when you want to provide updates to the user, later.
A simple uploader like avrdude (that is also available on most common platforms) or something like that is what makes it interesting (at least for me).

And yes - I could write my own bootloader - but I do not know how. I guess thats a disadvantage and the price to pay when you live in the arduino-world. I do not even know how to start and where to find suitable information or what a bootloader should do at all. Definately something I should look into and.

Title: Re: free bootloader for Teensy OR recommendation for a 32Bit CPU
Post by: ron_sutherland on Dec 10, 2014, 03:39 am
The Due bootloader:
http://forum.arduino.cc/index.php/topic,128913.0.html (http://forum.arduino.cc/index.php/topic,128913.0.html)

The Due has a built in (ROM not flash) bootloader for serial or USB loading. Will the Zero work same?, if so then no worries, I can make a board and tell user to update with Arduino IDE, or bossac or...

I guess the debug chip has this bootloader also, so I can load OpenOCD into it with that. The K20 may not have a bootloader so that could be why I found one with the OpenSDA stuff.
Title: Re: free bootloader for Teensy OR recommendation for a 32Bit CPU
Post by: bobcousins on Dec 11, 2014, 12:44 am
The K20 like other Kinetis chips do not have ROM bootloaders, one of a few problems I have with Freescale chips. We use their DSP chips at work, and always seem to be running into one problem or another.

I have considered doing an Open Source bootloader for Teensy 3x, but Kinetis would not be my first choice of chip. It's a lot easier to use Atmel or STM32 which have ROM bootloaders.

The mbed OpenSDA bootloader might be an interesting option, sometime I was going to have detailed look at it.

Hopefully Zero will start shipping soon....
Title: Re: free bootloader for Teensy OR recommendation for a 32Bit CPU
Post by: elfallino on Dec 11, 2014, 07:21 am
I got a bootloader-code for a STM32 MCU from a friend to play with.

But I ordered an Atmel MCU (SAM3S series) which I do prefer.
It has the same bootloader (SAM-BA) as the DUE.

I just started to play around with the Arduino IDE to create a new variant. Seems not to be that hard beside of changing the pin-aliases :D
Fortunately the manual for that chip is quiet clear so I easily found the Memory Layout and Memory Mapping to modify the linker scripts.

I hope this will work - there are a lot of Atmel SAM XPlained - Boards out there as well as some from Olimex (which one of them I ordered).