Go Down

Topic: free bootloader for Teensy OR recommendation for a 32Bit CPU (Read 4576 times) previous topic - next topic

elfallino

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

robtillaart

Have you checked this (teensy) forum - http://forum.pjrc.com/forum.php - ?
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

elfallino

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.


westfw

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...


ron_sutherland

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

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/
my projects: https://github.com/epccs

elfallino

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.

westfw

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...))


elfallino

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.


ron_sutherland

The Due bootloader:
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.
my projects: https://github.com/epccs

bobcousins

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....
Please ask questions in the forum so everyone can benefit. PM me for paid work.

elfallino

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).


Go Up