Support for Stellaris Launchpad LM4F120 board.

Hello everyone,

I have ported RIOT-OS to Stellaris Launchpad Evaluation board. This is just a basic port with only ADC, TIMER and UART modules currently supported. I have done basic sanity test on the board and it seems running fine.

These boards are very low cost and powerful boards. The LaunchPad board features an 80MHz LM4F120H5QR microcontroller, on-board emulation and BoosterPack XL format expansion pins. The LM4F120H5QR microcontroller has 256KB of flash memory, 32KB of RAM, 2KB of EEPROM,

For this porting, I have included strip down version of the StellarisWare library available from TI, which will be useful to include support for all the Stellaris Launchpad boards. Kindly let me know your views on this and I will start working with Wiki on this board.

Meanwhile, I had a separate query from the fellow developers. I was also working on porting RIOT-OS to a 8-bit PIC18F uC for one of my application. Newlib library is too fat for it and I have decided to discard it. I was wondering if anyone is already working on small sized minimal library for the same. Also, can someone help me with list of functions RIOT is actually using from Newlib. ?

Thanks and Regards, Rakendra Thapa Mob +91-7760038308

Hi,

I have ported RIOT-OS to Stellaris Launchpad Evaluation board.

Nice! I've got some of these lying around, will review soon.

Meanwhile, I had a separate query from the fellow developers. I was also working on porting RIOT-OS to a 8-bit PIC18F uC for one of my application. Newlib library is too fat for it and I have decided to discard it.

I've got a branch for integrating musl somewhere, but that is just a little smaller than newlib.

Also, can someone help me with list of functions RIOT is actually using from Newlib. ?

The RIOT core itself mainly uses printf for debugging. If you disable that (or provide your own minimal version of printf), it should compile without any C library.

Apart from that, some modules use the string functions (strcmp, strtok), memcpy, memmove, memset, malloc, printf/sprintf, ...

Really depends on the used modules and application.

Kaspar

Hi!

> Also, can someone help me with list of functions RIOT is actually using > from Newlib. ? The RIOT core itself mainly uses printf for debugging. If you disable that (or provide your own minimal version of printf), it should compile without any C library.

Apart from that, some modules use the string functions (strcmp, strtok), memcpy, memmove, memset, malloc, printf/sprintf, ...

Really depends on the used modules and application.

You could add -nostdlib to the LINKFLAGS and compile, e.g. hello-world to see what is missing withoug Newlib. For some boards (most of the ARM Cortex-M boards) you'll have to comment out this line:

export LINKFLAGS += -specs=nano.specs -lc -lnosys

in boards/${BOARD}/Makefile.include.

Core and cpu itself reveals requirements for: * __libc_init_array * printf * strncpy * puts * memcpy

Cheers, Oleg

Hi Rakendra!

Welcome aboard!

I have ported RIOT-OS to Stellaris Launchpad Evaluation board. This is just a basic port with only ADC, TIMER and UART modules currently supported. I have done basic sanity test on the board and it seems running fine.

Can you maybe split up the PR in commits so that the import of TI files is separated in one commit? Otherwise it's literally impossible to review your code (at least on Github).

Cheers, Oleg

Thank you for feedbacks. Okay, so that is quite a minimal set of Newlib functionality being used. Even my application wont be requiring more than these but only memset.

Kaspar,

  • Can you please share the branch with me you working on regarding the library.

  • Also, for testing purposes, you might will have to configure some tools to get it working with Stellaris Launchpad. Its pretty straightforward. Also, we need to build OpenOCD with ICDI support to flash and debug launchpad. You might take a look into the link.

http://processors.wiki.ti.com/index.php/Stellaris_Launchpad_with_OpenOCD_and_Linux

  • We have pending discussion regarding using StellarisWare lib or not. Once, we are done, I will commit StellarisWare on a separate PR.

Thanks and Regards, Rakendra