# 159: Flying Rainbow Children

- Show: [Embedded.fm](https://hardwarepodcasts.com/podcast/embedded-fm)
- Published: 2016-07-05
- Length: 1h 02m
- Page: https://hardwarepodcasts.com/podcast/embedded-fm/2016-07-05-159-flying-rainbow-children
- Listen: https://makingembeddedsystems.libsyn.com/embedded-ep159mp3

## Summary

Hosts Elecia White and Christopher White discuss compiler optimizations, explaining how levels like -O2 or -O3 trade size for speed via loop unrolling and inlining, which complicates debugging by hiding variables and altering timing. They define bit-banging as software-controlled GPIO toggling for protocols like I2C, noting that implementing it in an FPGA constitutes hardware design rather than bit-banging. The conversation covers the challenges of unit testing in embedded systems, particularly for drivers and legacy code, and references games like Human Resource Machine and TIS-100 for learning assembly.

## Chapters

- [0:06](https://hardwarepodcasts.com/podcast/embedded-fm/2016-07-05-159-flying-rainbow-children#t=6) Introduction: Show notes, StickerMule, and Parade
- [4:25](https://hardwarepodcasts.com/podcast/embedded-fm/2016-07-05-159-flying-rainbow-children#t=265) Bit-banging I2C in FPGAs and GPIO
- [12:45](https://hardwarepodcasts.com/podcast/embedded-fm/2016-07-05-159-flying-rainbow-children#t=765) Compiler Optimizations: Levels, Inlining, and Debugging
- [26:33](https://hardwarepodcasts.com/podcast/embedded-fm/2016-07-05-159-flying-rainbow-children#t=1593) Unit Testing in Embedded Systems: Legacy Code and Drivers
- [44:50](https://hardwarepodcasts.com/podcast/embedded-fm/2016-07-05-159-flying-rainbow-children#t=2690) Assembly Games: Human Resource Machine and TIS-100
- [51:55](https://hardwarepodcasts.com/podcast/embedded-fm/2016-07-05-159-flying-rainbow-children#t=3115) Interview.io Voice Changing Study and Resilience

## Topics

- [Embedded firmware](https://hardwarepodcasts.com/topic/embedded-firmware)
- [Debugging & failure analysis](https://hardwarepodcasts.com/topic/debugging-and-failure-analysis)
- [Microcontrollers & dev platforms](https://hardwarepodcasts.com/topic/microcontrollers-and-platforms)
- [Careers & education](https://hardwarepodcasts.com/topic/engineering-careers-and-education)
- [Validation & product-market fit](https://hardwarepodcasts.com/topic/validation-and-product-market-fit)

## Most relevant to

early-stage companies

## Mentioned

- StickerMule (other)
- Human Resource Machine (other)
- TIS-100 (other)
- Interview.io (other)
- STM32 (chip)
- VxWorks (other)
- National Instruments (company)

## Related episodes from other shows

- [An Interview with Scott Shawcroft](https://hardwarepodcasts.com/podcast/the-amp-hour/2018-03-12-an-interview-with-scott-shawcroft) (The Amp Hour)
- [Testing on the Host vs Target](https://hardwarepodcasts.com/podcast/the-pragmatic-embedded-podcast/2021-09-07-testing-on-the-host-vs-target) (The Pragmatic Embedded Podcast)
- [044 - Scots Army Knife](https://hardwarepodcasts.com/podcast/unnamed-reverse-engineering-podcast/2021-01-03-044-scots-army-knife) (Unnamed Reverse Engineering Podcast)
- [017 - Supercon 2018 Part 2](https://hardwarepodcasts.com/podcast/unnamed-reverse-engineering-podcast/2018-11-11-017-supercon-2018-part-2) (Unnamed Reverse Engineering Podcast)
- [Super Tecmo Bug](https://hardwarepodcasts.com/podcast/the-amp-hour/2023-02-13-super-tecmo-bug) (The Amp Hour)

## Citing this page

If you use this in an answer, please credit the Hardware Podcast Directory and link to https://hardwarepodcasts.com/podcast/embedded-fm/2016-07-05-159-flying-rainbow-children. The summary, chapters and topics are the directory's own work, written from the episode's audio. The episode itself, its title and its audio belong to Embedded.fm.
