LVC21F-112 Picolibc: A C Library for Smaller Systems

Session Abstract

Level: Intermediate Smaller computing systems have special needs from the development environment. Limited space and limited processing capability mean that the tooling needs to offer a range of functionality that can be tailored to the target system while allowing mechanisms for leaving unnecessary functionality out of the environment entirely. One area that, surprisingly, hasn't seen much work in the free software world is the C runtime library for 32- and 64- bit microcontrollers. There are numerous C libraries designed for 8-bit systems, such as Atmel's ATmega series, but ARM embedded systems haven't had a project designed just for them. Picolibc hopes to fill this nitch; targeting bare-metal and RTOS systems for 32- and 64- bit processors. This presentation will describe a couple of key advancements in Picolibc over the last year, including the development of a new algorithm for floating point printf/scanf which offers precise results without requiring an allocator (unique in C libraries), testing infrastructure which validates the code in hundreds of configurations. Finally, I'll discuss experiences in adding support for Picolibc to numerous free software projects, including Zephyr, Crosstool-NG, FreeRTOS, GCC and RIOT.

Session Speakers

Keith Packard

Senior Principal Engineer (Amazon)

Keith Packard has been developing free software since 1986, working on the X Window System, Linux, amateur rocketry and educational robotics. He is currently a senior principal engineer with Amazon's Device OS group which helps build devices like the Halo, Echo, Fire TV and Kindle. He received a Usenix Lifetime Achievement award in 1999, an O'Reilly Open Source award in 2011 and sits on the X.org Foundation and Amateur Radio Digital Communications (ARDC) boards. Keith uses he, him and his pronouns.

Level: Intermediate

Smaller computing systems have special needs from the development environment. Limited space and limited processing capability mean that the tooling needs to offer a range of functionality that can be tailored to the target system while allowing mechanisms for leaving unnecessary functionality out of the environment entirely. One area that, surprisingly, hasn’t seen much work in the free software world is the C runtime library for 32- and 64- bit microcontrollers. There are numerous C libraries designed for 8-bit systems, such as Atmel’s ATmega series, but ARM embedded systems haven’t had a project designed just for them. Picolibc hopes to fill this nitch; targeting bare-metal and RTOS systems for 32- and 64- bit processors. This presentation will describe a couple of key advancements in Picolibc over the last year, including the development of a new algorithm for floating point printf/scanf which offers precise results without requiring an allocator (unique in C libraries), testing infrastructure which validates the code in hundreds of configurations. Finally, I’ll discuss experiences in adding support for Picolibc to numerous free software projects, including Zephyr, Crosstool-NG, FreeRTOS, GCC and RIOT.

comments powered by Disqus

Other Posts

Sign up. Receive Updates. Stay informed.

Sign up to our mailing list to receive updates on the latest Linaro Connect news!