Uploaded image for project: 'Embedded Software & Tools'
  1. Embedded Software & Tools
  2. EXT_EP-8492

NoRTOS SemaphoreP_post can permanently disable power policy

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: High High
    • TI Device Drivers
    • TIDRIVERS-1284
    • 3.40.00
    • 3.40.00
    • Hide
      Posting a semaphore using the NoRTOS DPL API SemaphoreP_post() can disable the current power policy if the following circumstances are true:
      1) Two SemaphoreP_post() calls from Hwi context
      2) A thread is pending on a semaphore with SemaphoreP_pend()

      The DPL saves the old status as a global boolean so that the semaphore pend can enable the power policy again if it was originally enabled.
      However, if two SemaphoreP_post are called in close proximity in the Hwi context before the SemaphoreP_pend is processed, the global variable will be overwritten and the actual old value lost. This will result in SemaphoreP_pend never enabling the power policy again, and the device get stuck in a high power mode when it should not be.
      Show
      Posting a semaphore using the NoRTOS DPL API SemaphoreP_post() can disable the current power policy if the following circumstances are true: 1) Two SemaphoreP_post() calls from Hwi context 2) A thread is pending on a semaphore with SemaphoreP_pend() The DPL saves the old status as a global boolean so that the semaphore pend can enable the power policy again if it was originally enabled. However, if two SemaphoreP_post are called in close proximity in the Hwi context before the SemaphoreP_pend is processed, the global variable will be overwritten and the actual old value lost. This will result in SemaphoreP_pend never enabling the power policy again, and the device get stuck in a high power mode when it should not be.

      NoRTOS SemaphoreP_post can permanently disable power policy

            syncuser TI User
            syncuser TI User
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: