Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Source code or static library for SysAL

The Nordic SDK provides headers for a finite state machine, queue, ringbuffer and other utilities in the 802_15_4 library in nRF5_SDK_17.0.2_d674dde/components/802_15_4/api/SysAL/ (sys_fsm.h, sys_queue.h, sys_ringbuffer.h etc).  Object code is provided in static libraries:

$ ar t components/802_15_4/raw/802_15_4_lib_gcc.a | grep sys_
sys_crc.o
sys_debug.o
sys_events.o
sys_fsm.o
sys_init.o
sys_memory_manager.o
sys_queue.o
sys_ringbuffer.o
sys_slab_allocator.o
sys_sleep.o
sys_task_scheduler.o
sys_time.o

Is it possible to use this functionality standalone in application code using just the base NRF SDK, or is it completely tied to the 802_15_4 library?

Is the source code for these modules available?

Many thanks,

Roger

Parents
  • Hello,

    While it is possible to use this without the 802.15.4, I don't know if I would recommend it. Basically, the 802.15.4 is just a shell containing more or less empty libraries. E.g. the sys_sleep only provides events that allows you to go to sleep. To actually go to sleep, you need to implement this yourself.

    In addition, this library is written externally, so we don't have the implementation, making it difficult to support (and it is not well documented). So feel free to use it, but unfortunately, you are more or less on your own. 

    That being said, the fsm.h/c is not part of this library, so yo can use these as you like. There is also an FSM implementation in our mesh sdk. The same applies to other modules you mention:

    SDK\components\libraries\ringbuf,

    SDK\components\libraries\queue.

    Best regards,
    Edvin

Reply
  • Hello,

    While it is possible to use this without the 802.15.4, I don't know if I would recommend it. Basically, the 802.15.4 is just a shell containing more or less empty libraries. E.g. the sys_sleep only provides events that allows you to go to sleep. To actually go to sleep, you need to implement this yourself.

    In addition, this library is written externally, so we don't have the implementation, making it difficult to support (and it is not well documented). So feel free to use it, but unfortunately, you are more or less on your own. 

    That being said, the fsm.h/c is not part of this library, so yo can use these as you like. There is also an FSM implementation in our mesh sdk. The same applies to other modules you mention:

    SDK\components\libraries\ringbuf,

    SDK\components\libraries\queue.

    Best regards,
    Edvin

Children
Related