Forum: Mikrocontroller und Digitale Elektronik Platformio: esp8266-rtos-sdk


von Tim S. (Firma: Google) (tuxut83)


Lesenswert?

Hallo Gemeinde,

ich bin jetzt auf PlatformIO umgestiegen und würde ganz gerne meinen 
ESP8266 damit "bespaßen".

Als Platform würde ich gerne das offzielle RTOS SDK verwenden, um mich 
im Umgang mit einer Echtzeitumgebung zu schulen.

Das einfache "blink-Beispiel" das mitinstalliert worden ist konnte ich 
problemlos übersetzen und hochladen.

Jetzt scheitert es aber mehr und mehr an zusätzlichen Bibliotheken, die 
ich noch unter Arduino gewohnt war.
Zum Beispiel würde ich gerne den BMP280 anschließen und über I2C die 
Messwerte auslesen.
Woher bekomme ich nun einen Treiber oder eine passende Bibliothek?
Im Internet finde ich kaum etwas hierzu...

Und: Was hat es hiermit auf sich
https://github.com/SuperHouse/esp-open-rtos

Was ist das für ein RTOS? Im Ordner "extras" finden sich hier zahllose 
Quellen für die verschiedensten Devices...
Kann ich diese auch für das offizielle Espressif SDK hernehmen?

Fragen über Fragen.

Herzlichen Dank!

von daniel (Gast)


Lesenswert?

Hallo Tim,

ich habe meine unter Arduino benutzten Bibliotheken einfach in den 
Projektordner unter Lib rein kopiert. Dann ging es auf jeden Fall. Ob 
dies der richtige Weg ist?

MbG Daniel

von Sneef (Gast)


Lesenswert?

Tim S. schrieb:
> Jetzt scheitert es aber mehr und mehr an zusätzlichen Bibliotheken, die
> ich noch unter Arduino gewohnt war.
> Zum Beispiel würde ich gerne den BMP280 anschließen und über I2C die
> Messwerte auslesen.

Normalerweise kannst du das doch einfach über den Bibliotheks-Tab auf 
der Home-Seite im PlatformIO installieren.

von Tim S. (Firma: Google) (tuxut83)


Lesenswert?

daniel schrieb:
> Hallo Tim,
>
> ich habe meine unter Arduino benutzten Bibliotheken einfach in den
> Projektordner unter Lib rein kopiert. Dann ging es auf jeden Fall. Ob
> dies der richtige Weg ist?
>
> MbG Daniel

Danke, dass müsste ich ausprobieren...
Muss ich in der platform.ini noch irgendein zusätzliches Verzeichnis 
definieren wo nach header-Dateien gesucht wird?

Wie sieht es hier mit den Abhängigkeiten aus?
Ich gehe stark davon aus das eine BME280 Bibliothek die I2C-Bibliothek 
benötigt...
Dies wird alles automatisch aufgelöst?

DANKE!

von Tim S. (Firma: Google) (tuxut83)


Lesenswert?

Sneef schrieb:
> Tim S. schrieb:
>> Jetzt scheitert es aber mehr und mehr an zusätzlichen Bibliotheken, die
>> ich noch unter Arduino gewohnt war.
>> Zum Beispiel würde ich gerne den BMP280 anschließen und über I2C die
>> Messwerte auslesen.
>
> Normalerweise kannst du das doch einfach über den Bibliotheks-Tab auf
> der Home-Seite im PlatformIO installieren.

Das geht leider nicht wirklich für die "esp8266-rtos-sdk" Platform.
Ich finde dort ausschließlich Bibliotheken für Arduino und mbed.

von Trembel (Gast)


Lesenswert?

Ich empfehle dir, das Arduino SDK zu verwenden, und darin kannst du 
FreeRTOS nutzen. Als Includes nutzt du:
1
#include "freertos/FreeRTOS.h"
2
#include "freertos/task.h"
3
#include "Arduino.h"

Deine Libraries bindest du, wie im "readme.txt" beschrieben, wie folgt 
in dein Projekt ein:
1
This directory is intended for the project specific (private) libraries.
2
PlatformIO will compile them to static libraries and link to executable file.
3
4
The source code of each library should be placed in separate directory, like
5
"lib/private_lib/[here are source files]".
6
7
For example, see how can be organized `Foo` and `Bar` libraries:
8
9
|--lib
10
|  |
11
|  |--Bar
12
|  |  |--docs
13
|  |  |--examples
14
|  |  |--src
15
|  |     |- Bar.c
16
|  |     |- Bar.h
17
|  |  |- library.json (optional, custom build options, etc) http://docs.platformio.org/page/librarymanager/config.html
18
|  |
19
|  |--Foo
20
|  |  |- Foo.c
21
|  |  |- Foo.h
22
|  |
23
|  |- readme.txt --> THIS FILE
24
|
25
|- platformio.ini
26
|--src
27
   |- main.c
28
29
Then in `src/main.c` you should use:
30
31
#include <Foo.h>
32
#include <Bar.h>
33
34
// rest H/C/CPP code
35
36
PlatformIO will find your libraries automatically, configure preprocessor's
37
include paths and build them.
38
39
More information about PlatformIO Library Dependency Finder
40
- http://docs.platformio.org/page/librarymanager/ldf.html

Danach kannst du sie wie beschrieben nutzen.

Wenn du vom Arduino SDK wegkommen willst, würde ich das ESP-IDF SDK 
nutzen. ALlerdings müssen da die Libraries wahrscheinlich selbst 
geschrieben werden, da es nicht allzuviele Libraries gibt.

Nach
1
#include "Arduino.h"
 kannst du, wie gewohnt, auf alle Arduino Bibliotheken zurückgreifen, 
viele davon kannst du im Lib-Manager von Platformio direkt für das 
Projekt installieren.

von Trembel (Gast)


Lesenswert?


von Trembel (Gast)


Lesenswert?

Trembel schrieb:
> Ich empfehle dir, das Arduino SDK zu verwenden, und darin kannst du
> FreeRTOS nutzen. Als Includes nutzt du:#include "freertos/FreeRTOS.h"
> #include "freertos/task.h"
> #include "Arduino.h"
>
> Deine Libraries bindest du, wie im "readme.txt" beschrieben, wie folgt
> in dein Projekt ein:

Selbstverständlich mit Platformio (wie von dir gewünscht), und nicht mit 
der Arduino IDE

von Tim S. (Firma: Google) (tuxut83)


Lesenswert?

Trembel schrieb:
> Das ESP8266 SDK basiert auch auf FreeRTOS:
>
> https://github.com/espressif/ESP8266_RTOS_SDK
>
> https://www.freertos.org/
>
> https://de.wikipedia.org/wiki/FreeRTOS

Das weiß ich...
Ich hätte allerdings gerne gewusst was das esp-open-rtos ist?

https://github.com/SuperHouse/esp-open-rtos

Kann man das unter PlatformIO verwenden?
Dort sind alle Treiber für diverse Sensoren dabei + FreeRTOS V10.0.1.

Wäre schon cool, wenn ich darauf aufsetzen könnte.

von Trembel (Gast)


Lesenswert?

Tim S. schrieb:
> https://github.com/SuperHouse/esp-open-rtos
>
> Kann man das unter PlatformIO verwenden?
> Dort sind alle Treiber für diverse Sensoren dabei + FreeRTOS V10.0.1.
>
> Wäre schon cool, wenn ich darauf aufsetzen könnte.

Ich denke, das sollte funktionieren.
Vielleicht hilft dir das weiter:

https://community.platformio.org/t/adding-a-new-framework-to-platformio/297

Ansonsten postest du deine Frage am Besten zusätzlich direkt im 
Community-Forum

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.