Podcasts
- Embedded.fm (Jason Turner; Dan Saks; more on C++)
- C++ Podcast (homepage😉
- CPP Chat (Twitter; Homepage; Overcast; YouTube, Slack)
- LambdaCast (Twitter; Soundcloud)
Discussions and C++ & C
- Myths about C++ (pg 1 and pg 2)
- Modern C++ for programmers (pg 1 and pg 2)
- Discussion on Reddit about C++ in embedded devices
- Jens Gustedt‘s discussion on overlap b/w C and C++.
- Twitter conversation on C community & best practices.
Programming Teaching Methodologies
- Teaching C++
- Teaching C
- Teaching Debugging
- Debugging Skills Paper (RIT)
- Codeunion’s “Teaching Novice Programmers How to Debug Their Code“
- 1974 ACM paper on “Teaching Debugging“
Books & Online Book Equivalents
- C++17 in detail (ebook) by Bartlomiej Filipek
- C++17 the Complete Book (ebook) by Nicolai M. Josuttis.
- Embedded C Coding Standard (free PDF ebook) by Barr Group.
- The C++ Standard Library (ebook) by Rainer Grimm (up to C++17)
- Mastering the C++17 STL by Arthur O’Dwyle
- Practical C++ by Adam Singer
- Effective Modern CPP by Scott Adams (up to C++14)
- Modern C by Jens Gustedt (free PDF ebook)(up to C11, maybe C18)
- The C Book by Banahan, Brady & Dory (free HTML version)(1991; C89/C90)
- Essential C at Stanford (free webpage; date & standard tbd)
- C Tutorial on Microchip’s Wiki
Processor-Specific Books on C, C++ and Assembler
- Embedded C programming and the AVR (publisher page; Google page)
- Make AVR Programming (publisher page; 2014; code samples; Kindle)
- AVR by Mazidi (amazon; publisher page)
- Grover’s DSP in HC16 (out-of-print; ILL)
- Kinetis KL25 by Mazidi (Kindle eBook; amazon, publisher page)
- MBED Handbook for ARM.
- 8-bit PICs links.
- Programming with STM32 (Nucleo Board & C/C++) via York Library only.
Standards
- C ISO Standard: Open Standards C; C11 Draft. C18 @ Engg. Workbench.
- C++ ISO Standard: Open Standards C++; C++17 Draft; C++17 @ Engg WBench.
- Latest draft; PDFs of C++11 to C++17. (via Twitter)
- C++ Performance: 2006 Report. CSA 2012 Report.
- MISRA C (embedded / automotive safety rules): standards; discussion; discussion.
- Applied at JPL.
- Embedded C ISO Standard: Open Standards; 2006 Draft; ISO 2009 Report
- Barr Group Embedded C Standard.
- JPL’s C coding standard (PDF) and webpage.
- The ARM CMSIS standard
- targets C99 & C++03
- Is MISRA “compliant”
People
- Kate Gregory (twitter; keynote 2017)
- Dan Saks (embedded.fm, cpp podcast, keynote 2016, STL without Dynamic Memory)
- Michael Caisse (Twitter, cpp podcast, CPP Chat)
- Rainer Grimm (Embedded C++)
- Bartlomiej Filipek (C++ Blog)
- Odin Holmes. (Twitter; CPP Podcast ep 1; ep 2; CPP Chat )
- Matt Godbolt (Twitter, Compiler Explorer, YouTube)
- Michael Barr & Barr Group (Personal Twitte, Corporate Twitter, Site, embedded.fm podcast)
- Bartlomiej Filipek (Twitter)
- Jens Gustedt (Twitter; Blog on C; Book on Modern C; C & C++ overlap)
- Simon Brand (Twitter; Blog on C++)
- Arvid Gerstmann (Twitter; C and C++ person)
- Titus Winters (Twitter)
Conferences
- Meeting C++ (Nov 15 – 17, 2018 in Berlin)
- Meeting Embedded (Nov 14, 2018 in Berlin)
- emBO++ (2019 date not set; was in Bochum, Germany in 2018)
- C++ on Sea (Feb 2019)
- Pacific++ (webpage; Oct 2018 in Australia)
Teaching
- Pluralsight C++
- Learn CPP
- CPP Quiz (twitter; web page)
- Barr Group (Course Catalogue, Embedded C++ Quiz, Embedded C Quiz)
- Rainer Grimm’s Modern C++ Concurrency interactive course
Groups
- Discord #include C++
- Slack CPP Language Channel
- CPP Chat Slack on CPPLang
General C++ Resources
Embedded C++ resources
- CPP Con page on Dan Saks.
- C++ on AVR gcc hints.
- Barr Group C & C++ (Embedded C Standard)
- C++ with Arduino (plus Arduino C++ IDE)
- Pidgin C with Arduino
Compilers, Debugger and IDEs
- Arduino C++ IDE (based on Eclipse, separate from the standard Arduino IDE)
- A list of C and C++ compilers (Free Country)
- JTAG Explained
- IDE: MCUXpresso for NXP ARM overview.
Code Analysis Tools
- General / Multi-chip Tools
- Compiler Explorer. See Assembler in “real time” in a browser window (ARM, x86 & MIPS supported)
- Comparison of IDA Pro, radare2, Hopper and Binary Ninja.
- Disassembling with Radare2 ASCII Visual Mode.
- More visual analysis in Radare2 (tutorial) with Cutter. (GitHub page & install instructions)
- The Capstone project is a commonly used component in disassemblers and malware analysis tools, including Hopper (tutorial 1, tutorial 2), radare2 (cutter tutorial) and Binary Ninja.
- Course on disassembling / binary exploitation.
- Online disassembler, with graphing capability (HC11, AVR, ARM…)
- PIC-specific
- AVR-specific
- command-line with GNU tools
- AVR disassembler, disas, by Johannes Bauer.
- Using an ATMEL ICE to program an Arduino (ATMEGA328) in C++/C.
- AVR and radare2: how-to 1 and how-to 2.
- ARM Cortex M-specific
- command-line with GNU tools
- on Eclipse using GNU tools
- Example using radare2 to analyze an STM32 binary.
- Peripheral Memory view in MCUXpresso and GNU MCU Eclipse.
- Assembler on ARM with GCC: Ethernut. (MCUXpresso-10pt2-compatible)
Libraries and Support file for C++
- Electronic Arts STL (EASTL) for embedded / gaming platforms
- Embedded System Templates (ETL CPP)
- List of C++ libraries.
- hwcpp (hardware c++) library
- Abseil (webpage, Twitter) library from Google. Time zones, etc.
- Meeting C++ certified libraries.
- Music-related C++ discussion on Twitter.