feat: S08.03 slice 8 wire meta SD + FreeRtosSysUpTime adapter (#310)#311
Conversation
…eeRTOS example Adds Platform/FreeRtos/SolidSyslogFreeRtosSysUpTime (xTaskGetTickCount-backed, uint64 intermediate so the formula stays correct at any configTICK_RATE_HZ; uint32 cast wraps per RFC 3418 TimeTicks). Wires SolidSyslogStdAtomicOps -> AtomicCounter -> MetaSd into Example/FreeRtos/SingleTask/main.c alongside the slice-7 originSd, reusing Example/Common/ExampleLanguage_Get for the language callback. StdAtomicOps inlines to LDREX/STREX on Cortex-M3 + Thumb-2 — no FreeRTOS-specific atomic-ops adapter needed for this single-task example. Untags structured_data.feature (3 scenarios). FreeRTOS BDD sweep goes from 5 features / 14 scenarios to 6 / 17.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (11)
💤 Files with no reviewable changes (1)
📝 WalkthroughWalkthroughThis PR wires the meta structured-data block (sysUpTime + language) into the FreeRTOS single-task example by introducing a new SolidSyslogFreeRtosSysUpTime platform adapter that converts FreeRTOS tick counts to RFC 3418 TimeTicks (hundredths-of-second). Test fakes are extended to mock tick counts, unit tests verify boundary and mid-range conversion correctness, and the main example task is updated to create and manage the meta SD alongside the existing origin SD. ChangesFreeRTOS Meta Structured-Data with SysUpTime Adapter
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
☀️ Quality Summary 🚦 build-linux-gcc: 100% successful (✔️ 1105 passed, 🙈 3 skipped) Created by Quality Monitor v1.14.0 (#f3859fd). More details are shown in the GitHub Checks Result. |
☀️ Quality Summary 🚦 build-linux-gcc: 100% successful (✔️ 1105 passed, 🙈 3 skipped) Created by Quality Monitor v1.14.0 (#f3859fd). More details are shown in the GitHub Checks Result. |
Summary
Example/FreeRtos/SingleTask/main.calongside the slice-7 origin SD; newSolidSyslogFreeRtosSysUpTimeplatform adapter (uint64 intermediate,uint32_twrap per RFC 3418TimeTicks).SolidSyslogStdAtomicOpslinked into the Cortex-M3 ELF —_Atomic uint32_tinlines to LDREX/STREX, so no FreeRTOS-specific atomic-ops adapter was needed for this single-task example.structured_data.feature(3 scenarios). FreeRTOS BDD sweep is now 6 features / 17 scenarios green (slice 7 baseline 5 / 14).Closes #310.
Test plan
cmake --build --preset debugclean; all 6 host test executables green, including newSolidSyslogFreeRtosSysUpTimeTest(4 tests: zero, one, mid-range,UINT32_MAXboundary).cmake --build --preset freertos-cross --target SolidSyslogFreeRtosSingleTaskclean.behave --tags='not @wip and not @freertoswip and @udp' Bdd/features/structured_data.feature: 3 of 3 pass.clang-format --dry-run --Werroron touched files: clean.🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes
New Features
Tests