Please consider registering

Log In Register

Register | Lost password?
Advanced Search

— Forum Scope —


— Match —


— Forum Options —


Minimum search word length is 4 characters - maximum search word length is 84 characters

Topic RSS
86duino SDK for linux issue - high load
2020 年 02 月 26 日
Forum Posts: 26
Member Since:
2015 年 02 月 11 日

I use linux on all 86duino boards and I am facing an issue and I have no answer/solution for this.

When I write a simple program using 86duino sdk under linux and upload to the 86duino, the program can run and do tasks, but the system load jumps to 1.0 and more.
Checking the tasks list (htop), I can see two processes running as the application and both of them are 99-100% load.
I guess, when the 86duino board working only as a 86duino/arduino board (not using linux and 86duino sdk on it but the 86duino and its native code) it is ok, all resources for the only program runs on it, but in linux this situation is not good.

The problem
Due to that, I want to use linux and other programs on it in parallel by the 86duino program (like as simple as read some digital/analog values, nothing special really), the response of the system getting very bad, even logging in via ssh takes long time etc,
It is not really a good situation when all cpu resources goes to the 86duino code, even it has delay/or sleep with 1 sec to read/write digital io in every seconds, the high load still exists, both processes takes 100% of cpu.

The question
Is there any way to solve this issue or this is by design?


2020 年 03 月 02 日
Forum Posts: 26
Member Since:
2015 年 02 月 11 日


I found the reason of the high load of the executable.
It is by design and not a bug.

The situation is that, handling external interrupts needs a 2nd thread which continuously running and check installed interrupts to invoke if necessary.

WInterrupts.h contains the thread: void *intrMain(void*pargs) function, which will run and call callbacks if necessary.
It seems when the user do not need external interrupts, it safe to disable interrupt_init in 86Duino_Init.cpp and recompile the whole library with make.

Only modification necessary to achieve it:
File: 86Duino_Linux_SDK/cores/86Duino_Init.cpp
Line 6 should be commented out (diff like syntax):
- interrupt_init();
+ // interrupt_init();

Any hint about sideffect from developers?


2020 年 04 月 27 日
Forum Posts: 228
Member Since:
2014 年 04 月 01 日

Hi, pongraczi,
Thank your response and we improve for the issue, you can get the latest version on 86Duino GitHub :
Update it for your 86Duino Linux SDKSmile

2020 年 05 月 29 日
Forum Posts: 26
Member Since:
2015 年 02 月 11 日

Thanks, I checked it with a program I tried to port to the SDK.
Somehow, I got 2 threads, like this snippet from pstree -p:


One process is running at 93-95%, the other one is almost zero.

My question, how can I get external interrupt work on linux/sdk, because it seems I failed to port rc-switch into the SDK with linux.
It only uses external interrupts and main goal is to be able to receive RF433.92 signals (rcswitch).
I have working arduino nano and uno configs and 86duino one/zero in arduino mode (no linux, but 86duino IDE).

Do you have any idea, what to test/check to get external interrupts work on 86duino one?


Forum Timezone: Asia/Taipei

Most Users Ever Online: 229

Currently Online:
3 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Dinosaur: 27

leutenecker: 13

mrZagg: 10

hippy: 9

UIdahoCIT: 8

smeezekitty: 8

Ekkehard: 8

lukeross: 8

tomka: 8

blaxxun: 7

Member Stats:

Guest Posters: 11

Members: 1488

Moderators: 14

Admins: 5

Forum Stats:

Groups: 2

Forums: 11

Topics: 248

Posts: 1114

Newest Members: fungus, MixThors, Shcookius, modtra, alan1974, Sergeyfup, mitunsclusa, Dennissot, bb4000, Ovendaanalolymn

Moderators: Glaux: 70, uaa: 11, guigra: 17, Android_Lin: 228, bcarroll: 12, cucubutter: 84, recycled-air: 12, stevemork: 16, zerozaber: 52, pongraczi: 26, jejump: 14, George Andrews III: 56, poto: 11, garpastym: 20

Administrators: eveshih: 1, anthony: 31, viky6: 0, roboard: 135, hcl: 1