Giter VIP home page Giter VIP logo

Comments (5)

LOorts-Aloxy avatar LOorts-Aloxy commented on August 18, 2024

Hi! Is this still the case with other sleep modes (changing FRAMEWORK_SCHEDULER_LP_MODE to 0, 1 or 255)? Can you also reproduce it in an independent, bare-bones application?

from sub-iot-stack.

ijager avatar ijager commented on August 18, 2024

Changing FRAMEWORK_SCHEDULER_LP_MODE does not seem to have any effect, However I did manage to make a minimum reproduction of this issue:

#include "framework_defs.h"
#include "hwleds.h"
#include "platform.h"
#include "scheduler.h"
#include "timer.h"

// this is needed as we're not using the filesystem, also possible to remove blockdevices from platf_main.c
uint8_t d7ap_volatile_files_data[FRAMEWORK_FS_VOLATILE_STORAGE_SIZE];

static void end_flash() { led_off(0); }

void led_flash()
{
    led_on(0);
    timer_post_task_delay(&end_flash, TIMER_TICKS_PER_SEC * 0.1);
}

void repeating_task()
{
    led_toggle(0);
    printf("Repeating task\n");
}

void bootstrap()
{
    printf("Device booted at time: %ld\n", timer_get_counter_value());

    sched_register_task(&repeating_task);
    sched_register_task(&end_flash);

    led_flash();

    timer_post_task_prio(
        &repeating_task, timer_get_counter_value() + 1, DEFAULT_PRIORITY, TIMER_TICKS_PER_SEC / 2, NULL);
}

It seems that calling led_flash() which schedules a task, just before starting the repeating task causes the repeating task to only be run twice before it crashes.

The serial output is:

Device booted at time: 0
Repeating task
Repeating task
Device booted at time: 0
Repeating task
Repeating task
Device booted at time: 0
Repeating task
Repeating task

So we can see that it reboots due to the watchdog. If it wouldn't crash we would see Repeating task printed ad infinitum.

Tested on the B_L072Z_LRWAN1 platform. I just replaced simple_leds/app.c content with the code above and ran cmake ../Sub-IoT-Stack/stack -DAPP_SIMPLE_LEDS=y; make

from sub-iot-stack.

LOorts-Aloxy avatar LOorts-Aloxy commented on August 18, 2024

I created a pull request (#121) with a possible fix, tried it on the example, and it seems to work, could you test if it's also working for your actual application?

from sub-iot-stack.

ijager avatar ijager commented on August 18, 2024

That's fast! Just tested it and it seems to work indeed!

from sub-iot-stack.

LOorts-Aloxy avatar LOorts-Aloxy commented on August 18, 2024

that's great news! Happy to help!

from sub-iot-stack.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.