Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • F firmware
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 74
    • Issues 74
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 29
    • Merge requests 29
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • External wiki
    • External wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • card10
  • firmware
  • Issues
  • #233

Closed
Open
Created Sep 19, 2021 by Rahix@rahixOwner0 of 1 task completed0/1 task

Follow-up from "Dynamically scale system clock based on load"

The following discussion from !481 (merged) should be addressed:

  • @rahix started a discussion:

    In this implementation, we have a kind of two-layer tickless idle implementation. First, the portSUPPRESS_TICKS_AND_SLEEP() implementation from the FreeRTOS Cortex-M4 port switches the systick to a lower speed when entering tickless idle. Then we use its hooks (configPRE_SLEEP_PROCESSING()) to implement our own tickless idle which kind of undoes the systick work from the FreeRTOS port.

    Instead, from looking at https://www.freertos.org/low-power-tickless-rtos.html we can just drop the FreeRTOS port code entirely and implement portSUPPRESS_TICKS_AND_SLEEP() directly. This reduces the amount of useless work done, allows us to theoretically sleep for as long as we want, and de-clutters the codepaths in our sleep routine.

Assignee
Assign to
Time tracking