Course Outline
Embedded C programming
- Fundamentals and overview of C programming
- Memory allocation
- Interrupts
- Multitasking and multithreading
- Synchronisation and intertask communication
- Peripheral communication
- Compilers
### Real-time Linux, RTOS, and embedded Linux
- Introduction to Linux: architecture, files, and directories - POSIX standards - Multithreading and task management - Toolchain, bootloader, kernel, and rootfs - Starting with Raspbian, followed by instructions for building a dedicated and compact image using Buildroot or Yocto - PREEMPT_RT, Xenomai - RTEMS - Cross-compilation and shared libraries - Networking
### Developing embedded Linux drivers
- Kernel and modules - Device characteristics - USB, GPIO, I2C, SPI, network, and block devices ### Hardware interfacing
- Serial, SPI, I2C - TCP/IP, UDP - Zigbee, Wi-Fi - ADC, Arduino
- Display interfaces - GSM modems - Networking ### Embedded C++, Qt
### Robust and fail-safe embedded software
- Effective and efficient programming techniques - Debugging and troubleshooting - Inspection and analysis - Defensive coding and self-test mechanisms - Watchdog timers
### ARM technology and programming
Testimonials (1)
Being able to ask for advanced subjects even if there were not planned initially.