This is surely an interesting question as I have quite a few boards I would like to add. The problem is that every one of them seams to have its own requirements and uses other tools.
1/ the NXP LPC1114:
Switch Science has a small mbed platform using LPC1114FN28 (a lpc1114 in DIP form factor) that is supported in platformIO.
However, the LPC1114FN24 chips I have are just standalone chips and as a result uploading is done differently: lpc21isp uploading the hex-file over the serial port of the chip…
I like these chips as they are in a “DIP” package, and therefor very breadboard / perfboard friendly.
ST has the Nuclea-F103RB (mbed) board but there are certain other platforms out there that also uses that chip. One of them is the maple.
The original maple was designed by leaflabs (however not supported anymore since march 2015), but you can find clones of these boards from other vendors:
- olimex has a clone board based on the STM32F103RB (like the original maple)
On that board, code is uploaded over USB (using the DFU-protocol), using a tool like dfu-utils
- in the well-known Chinese webshops, you can order “maple-mini” compatible devices, based on a STM32F103C8T6. This also uses DFU.
For me, fhe big advantage of these devices is that it is a complete board stacked on a DIP “breadboard friendly” socket and that they are very cheap (less then 4 euro)
The STM32F103C8 has half of the memory of the STM32F103RB, so this probably needs some tuning of the linking process.
The maple originally used the maple hardware library (which is a arduino/wiring compatible library for STM32F103) but -just like the hardware- that isn’t supported anymore neither, so the other STM32 libraries that also already in platformIO are probably a better option now.
BTW. There also is a project called “stm32duino” which creates a arduino/wiring compatible library for the STM32F103 chips.
- in the same webshop, you can also find devices based on the STM32F103RC. These chips are interesting as the chip has more FLASH and RAM then the 103RB and because more importantly they have a hardware DAC.
These boards have a jtag socket so I used openocd to upload code.
(But I do guess openocd does require some tuning as its configuration-file depends on the jtag hardware you use).
Now, I may have missed it but sofar I have not really found a document what are the different options to create a new platform and how to do this in a generic way.
Certain elements (like the configuration-file for openocd, or linker-map files that describe the amount of memory in a chip) are quite hardware dependant, so I wonder how one can crate a platform for these devices in a as-generic as possible way.
Also, my developement platform at home is linux. I have no idea how to implement this for windows or mac.
So what would you propose?
Does it make sence to work on this?
Cheerio! Kr. Bonne.