Files

2.0 KiB
Raw Permalink Blame History

K16 — Integrated real-time application and evidence report

Position

  • Series: FreeRTOS C++
  • Lesson: L15, card K16
  • Duration: 30 minutes
  • Final integration card; no new wrapper primitive
  • Reproducible end-to-end evidence on Hazard3

Outcome

The student composes ownership, storage, task priorities, startup coordination, ISR/timer boundaries, queue pressure and memory/stack diagnostics into one defensible real-time service graph.

Lesson plan

Time Mode Evidence
05 inventory static services delta 0; dynamic report queue 128 B
510 startup EventGroup barrier=0x7; task priorities and ownership
1015 inputs real IRQ tick 1; timer ticks 5/10
1520 pipeline three samples, transform sum 120
2025 pressure peaks 2/2, sequence 4 dropped, end marker recovers
2530 report latency 6, stack HWM, 24-event digest c474ac09

Acceptance

  • no new wrapper primitive is introduced;
  • producer, processor and reporter are StaticTask instances;
  • startup EventGroup remains at mask 0x7;
  • external IRQ wakes producer at tick 1 and requests exactly one yield;
  • periodic timer callbacks occur at ticks 5 and 10, then timer becomes inactive;
  • three samples are produced, processed and reported with sum 120;
  • input and report queues both reach depth 2;
  • sequence 4 is explicitly drop-newest and the end marker later succeeds;
  • static services have heap delta zero;
  • exactly one persistent dynamic Queue costs 128 B;
  • oversized fallible allocation returns null without changing free heap;
  • producer/processor/reporter stack HWM are positive and recorded;
  • end-to-end latency is 6 ticks and trace digest is c474ac09;
  • target exits with PASS.

Main traps

  1. Adding abstraction without a new invariant.
  2. Hiding an unbounded allocation or queue wait in the periodic path.
  3. Treating a pressure drop as success or failing to count it.
  4. Performing transformation in ISR/timer callback instead of a task.
  5. Reporting screenshots without source, timestamped trace and repeatable gate.