Quality should contain the notion of value, not just efficiency. Russell L. Ackoff.
Whether you think you can, or you think you can't–you're right. Henry Ford.
Inventing on principle, Bret Victor
Teensy or 1bitsy (using the Black Magic Probe to get rid of OpenOCD)
Building bare metal and linux applications
Popular ARM variants are:
ARM stack traces and supervisor mode.
https://launchpad.net/gcc-arm-embedded
ELF 101, a Linux executable workthrough (ARM)
ARM assembly for embedded applications
ARM Cortex-M4 Technical Reference Manual
ARM Cortex-M4 instruction timing
https://interrupt.memfault.com/blog/asserts-in-embedded-systems
The amazing $1 microcontroller
https://embeddedartistry.com/blog/2019/4/16/exploring-startup-implementations-newlib-arm
15 steps to better embedded SW
Jay Carlson's embedded linux article
Microchip application notes on using peripherals under Linux
https://blog.thea.codes/the-most-thoroughly-commented-linker-script
Board | HW | Project links | Toolchain version / Build environment | SW Components |
---|---|---|---|---|
Infineon XMC4800 Relax | XMC4800-F144 @144MHz 2MB Flash 352KB RAM Segger J-Link | Board MCU_DS MCU_RM | Docker Ubuntu 18.04 with: gcc-arm-none-eabi-8-2018-q4-major (developer.arm.com) | XMCLib 2.1.22 JLink V634g |
ST Nucleo F429ZI | STM32F429ZIT6 @180MHz 2MB Flash 256+4KB SRAM Black Magic Probe (and incl. UART) | Board MCU_DS MCU_RM F4_PM | gcc-arm-none-eabi-9-2019-q4-major — gcc-arm-none-eabi-9-2019-q4-major — RTEMS toolchain | libopencm3 — CubeMX (168MHz) Flash and debug with gdb — RTEMS |
Pyboard D SF6W | STM32F767VIT @216MHz 2MB Flash 2MB QSPI Flash 512KB RAM | Board DIP68 MCU_DS MCU_RM F7_PM | (FW obtained from MicroPython ) | MicroPython 1.14-83 Flash with dfu-util |
ST STM32MP157A-DK1 | STM32MP157 (2A7 @650MHz + M4 @209MHz) 4-Gbit DDR3L On-board ST-LINK/V2-1 | Board MCU_DS MCU_RM | Docker Ubuntu 18.04 with: yocto thud | Real-time (RT-PREEMPT) |
ST B-G474E-DPOW1 | STM32G474RET6 @180MHz 512KB Flash 128KB SRAM Segger J-Link | Board MCU_DS MCU_RM M4_PM | gcc-arm-none-eabi-9-2019-q4-major — gcc-arm-none-eabi-9-2019-q4-major — RTEMS toolchain | libopencm3 — CubeMX (168MHz) Flash and debug with gdb — RTEMS |
TI Hercules 570LC43 | TMS570LC4357 (2R5F @300MHz) 4MB Flash 512KB RAM On-board XDS100 | Board MCU_DS MCU_RM | CCS 10.2.0 | HALCoGen 04.07.01 Flash and debug with CCS |
Trenz TE0802 | Zynq Ultrascale+ ZU2CG (2R5F @600MHz, 2A53 @1.5GHz) 32MB SPI Flash 1GB LPDDR4 RAM On-board USB JTAG | Board Board_Res Board_TRM MCU_DS MCU_RM | Vitis/Vivado 2019.2 — RTEMS toolchain | Vitis/Vivado 2019.2 — RTEMS |
http://www.keil.com/rl-arm/rtx_rtosadv.asp
RTEMS, very mature, high driver availability
FreeRTOS, very low resources
ThreadX, resource bound, deeply embedded
Mbed OS
Stuff related to Embedded Linux
http://ltsi.linuxfoundation.org/what-is-ltsi
https://marcin.juszkiewicz.com.pl/download/tables/syscalls.html
Some FreeBSD tips.
10 lessons from a sw engineer and freelancer
What not to do as a programmer
Nasa's ten commandments of programming
Autotest is an interesting testing framework that can be used to test big systems or e.g. to validate hardware.
http://throwtheswitch.org/white-papers/ceedling-intro.html
http://www.drdobbs.com/cpp/a-lightweight-logger-for-c/240147505
http://nathanleclaire.com/blog/2013/10/27/5-cool-unix-hacks-for-fun-and-productivity/
We can use sensor networks specific OSs like TinyOS or Contiki (see also the wiki), and standard RTOSs like FreeRTOS or uCOS-III. In systems with enough HW resources, embedded Linux can also be used.
Bayesian statistics presentation
http://svds.com/tensorflow-image-recognition-raspberry-pi/
http://partiallyderivative.com/podcast/2017/03/28/learning-machine-learning
http://dangerousprototypes.com/docs/Bus_Pirate
http://www.watterott.com/en/Bus-Pirate
https://interrupt.memfault.com/blog/four-favorite-firmware-debug-tools
https://github.com/papers-we-love/papers-we-love
Single board computers and modules
Porting from MIPS to ARM
Coding for Neon. Read also this post.
Boot sequence on an ARM-based system
http://www.kunen.org/uC/beagle/omap_dmtimer.html
http://www.bravegnu.org/gnu-eprog/
http://www.freertos.org/embeddedtcp.html
http://stackoverflow.com/questions/1160362/experiences-with-free-embedded-tcp-ip-stacks
http://lwip.wikia.com/wiki/Porting_For_Bare_Metal
http://mbed.org/forum/mbed/topic/2073/
http://andybrown.me.uk/wk/2012/09/01/ethernet-phy-stm32f107/
http://en.wikipedia.org/wiki/Wi-Fi_Direct
Coremark benchmark, intending to become an industry standard, replacing the aging Dhrystone benchmark. See http://en.wikipedia.org/wiki/EEMBC.