Nice,

Thanks for sharing

On 28-05-19 08:48, Oleg Artamonov wrote:
Hi.

Yes, but for emergency reboots only.
Implementations: https://github.com/unwireddevices/RIOT/blob/loralan-public/cpu/stm32_common/periph/iwdg.c and https://github.com/unwireddevices/RIOT/blob/loralan-public/cpu/nrf5x_common/periph/iwdg.c For task scheduling on sleepy devices we use RTC-based timers with 1 ms resolution and 1 week max period (https://github.com/unwireddevices/RIOT/tree/loralan-public/sys/rtctimers-millis; on STM32L, we use regular HW RTC with SSR register, on nRF52 — "software" RTC implemented on top of HW RTT unit).
--
/Sincerely yours,/
/Oleg Artamonov/
/+7 (916) 631-34-90/
/www.unwds.com/ <http://www.unwireddevices.com>
27.05.2019, 21:57, "Kees Bakker" <k...@sodaq.com>:

    Hey Oleg,

    Are you using the watchdog?
    On 27-05-19 07:30, Oleg Artamonov wrote:

        Hi
        We do. On STM32L0, STM32L1, nRF52, etc.
        Checking for interrupt flags is absolutely useless here - 1)
        WFI checks for any relevant interrupt flags, 2) interrupt
        still can happen between check and WFI.
-- /Sincerely yours,/
        /Oleg Artamonov/
        /+7 (916) 631-34-90/
        /www.unwds.com/ <http://www.unwireddevices.com/>
        26.05.2019, 18:40, "Kees Bakker" <k...@sodaq.com>
        <mailto:k...@sodaq.com>:

            Hey

            Is there anyone using cortexm_sleep for a real
            application? And if
            yes, would you want to share how exactly that's done?

            Let me say that I've never written a real application with
            RIOT, but
            I would like to. One of the important requirements is that
            the app
            must be in sleep (deep sleep) and only wake up to do some
            work.
            And another requirement is to use the watchdog.

            That said, I'm familiar with the following Arduino pseudo
            code.

                 while (forever) {
                     do stuff

                     disable interrupts
                     if !certain condition
                         __WFI();
                     enable interrupts
                 }

            That "certain condition" is mostly checking that no WDT or
            RTC interrupt
            occurred before disabling the interrupts. These interrupts
            are handled
            by ISR's and they set a flag. This is a fairly common
            thing to do, I think.

            I don't see (or understand) how this can be achieved with
            RIOT-OS and
            cortexm_sleep. It is essential to check the condition
            AFTER disabling the
            interrupts.

            --
            Kees Bakker
            _______________________________________________
            devel mailing list
            devel@riot-os.org <mailto:devel@riot-os.org>
            https://lists.riot-os.org/mailman/listinfo/devel

        _______________________________________________
        devel mailing list
        devel@riot-os.org  <mailto:devel@riot-os.org>
        https://lists.riot-os.org/mailman/listinfo/devel

    ,

    _______________________________________________
    devel mailing list
    devel@riot-os.org <mailto:devel@riot-os.org>
    https://lists.riot-os.org/mailman/listinfo/devel


_______________________________________________
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel

_______________________________________________
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel

Reply via email to