Largest Program Size?

are there any optimization done on that 20k thing like optimal graphics or a simplified font/icons?
bitmap date usually an easier part to optimize

No, there is not a lot of optimization yet. We will get to optimizing when the entire functionality is mapped out and work nice.

I would need to go into details to explain this all but UART bootloaders (Arduino IDE), USBISP bootloader of the NXP LPC11U68 (used in Pokitto) and the SD loader that we are talking about here are completely different animals. Yes, they all write the flash of the device, but the core idea is totally different. We should not compare them based on size, its apples to oranges comparison.

The ROM-based bootloader of the LPC11U68 is really free. You do not need any code to use it. There is also an UART ISP bootloader in ROM as well! I donā€™t use it yet but could if I wanted to. Not only that but there are EEPROM routines and DIV routines also in the ROM.

The LPC11U6x is a beautiful design, I fell in love with it immediately when I saw it. But being able to harness all the cool features it has is going to take time and a community effort. The resouces of 1 guy (me) are nearly not enough to tap into all the potential the chip has.

Youā€™ll be able to roll your own code everywhere. No worries. The chip is NXP LPC11U68.

As for mbed being bloatwareā€¦ hmm. I have no skin in the game, Iā€™ve used both Arduino and mbed dev kits and programmed both on bare metal. In my opinion mbed was designed for hardware abstraction first and foremost. The idea is to get access to a new chip as fast as possible and then start developing. Having used many mbed boards and built one from scratch as well as programmed bare chips with mbed, I honestly can say I understand what they are trying to do. In fact I have benefitted alot from being able to pull sources from many different platforms with relatively little effort. Maybe lately with the IoT brouhaha mbed has gotten a bit bloaty. But on the other side of the fence, core Arduino libs ainā€™t all that great code either. If you want to optimize for speed or size on either platforms, its down the rabbit hole to register land. And thatā€™s good.

In any case, my work flow with new features is always to build it first using mbed code, then look at what the code is actually doing by stepping through it with a debugger, then read the manual to understand the registers and finally I cut out all the intermediate code. There is actually relatively little ā€œmbedā€ code in the Pokitto libs, its mostly pure C++ with direct access to registers.

I hope this now concludes the answer to your questions.

Ahh I understand now. I was confused by calling the 20kB the bootloader. Sounds like itā€™s more of the entire OS of the pokitto which makes a lot more sense now. Thanks for the details! Time to go review the LPC11U68 datasheet! :slight_smile:

1 Like