12  Projektvorschläge

Hier sind einige Vorschläge für Projekte die man selbständig bearbeiten kann. Wir haben das im WS2023 gemacht.

12.1 RTOS

Ideen

  • Mehrere quasiparallele Tasks definieren
  • Synchronisationsmittel testen
  • Taskwechsel auf dem Logikanalysator untersuchen
  • Resourcen verwalten (“Gatekeeper Task”)
  • RTOS und Low-Power, “Tickless” Betriebsart
  • Alternative RTOS, z.B. RIOT, https://www.riot-os.org, Wikipedia, Zephyr-OS (https://www.zephyrproject.org).

Lesestoff

  • Siehe Kapitel 6.

  • Elecia White, Making Embedded Systems, Kap. 6, Managing the flow of activity

  • Jim Ledin, Architecting High-Performance Embedded Systems, Kap. 3 Operating in Real Time

  • Joseph Yiu, Kap. 19, Using Embedded Operating Systems

  • Daniele Lacamera, Kap. 10, Parallel Tasks and Scheduling

  • Beispielprogramme im CubeF4 Repo

    STM32CubeF4/Projects/STM32446E_EVAL/Applications/FreeRTOS/FreeRTOS_*

12.2 Programmierung

12.3 Low-Power Programmierung

12.4 Debuggen

12.5 USB

Ideen

  • USB Maus simulieren (HID Class); STM32 als USB Device
  • USB UART (CDC Class); STM32 als USB Device
  • USB Massenspeicher (MSC Class); STM32 als USB Host
  • USB OTG (Host und Device abwechselnd)

Hinweise

  • Das Nucleo F446 hat keine USB Buchse die direkt an den F446 geht, deshalb benötigt man noch ein USB Breakout Board:

    https://www.berrybase.de/usb-micro-b-breakout-board

  • STM32CubeF4/Middlewares/ST/STM32_USB_Device_Library

  • STM32CubeF4/Middlewares/ST/STM32_USB_Host_Library

  • Beispiele unter

    • STM32CubeF4/Projects/STM32446E_EVAL/Applications/USB_Host
    • STM32CubeF4/Projects/STM32446E_EVAL/Applications/USB_Device

Literatur

12.6 Bootloader

Boot-Kanäle: USART, CAN, SPI, I2C, USB DFU