apache / apache/mynewt-nimble

Support for Bare metal/single task/thread

Open
#950 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
C
Stars
893
Forks
512
Avg merge
13d 31m
Merged PRs (30d)
7

Description

Multi task environment for simple applications like beacon/eddystone is kind of overkill and increases ROM/RAM requirements.
Also porting the lib to some new OS becomes challenging when time is scarce.

I would love to have an option to run the entire host stack in single task/thread (similar to LWIP in NO_SYS mode).
Here is the pseudo code that I am after.
```C
int main(){
AppInit(); // initialize system
NimbleHostInit(conf, transport, callbacks); // initialize nimble host

while (true) {
AppTask(); // handle all system operations here
NimbleTask(); // handle all nimble host operations here like read from/write to transport
}
return 0;
}
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the existing host initialization and task-processing entry points corresponding to NimbleHostInit and NimbleTask. Compare them with the AppInit/AppTask loop described in the issue. Done would be a supported bare-metal single-task/thread mode that handles host operations without the multi-task environment.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
embedded-iot
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.