Seite 1 von 2

LPCXpresso + sblib Starthilfe

Verfasst: 11. Jan 2018, 00:11
von Doumanix
Servus zusammen,

ich habe ehrlich gesagt noch nie was mit Hardware- / ARM-Programmierung zu tun gehabt, aber ein OM13087 hab ich mir dann halt doch besorgt. 8-)

Was mich irritiert / bei den ersten Schritten zum Stolpern bringt: die mitgelieferten Blink-Beispiele (jaha, man muss ja mal klein anfangen!) laufen alle wunderbar. Aber wenn ich das SB example-blink versuche zum Laufen zu bringen, passiert rein gar nichts.

Grund ist wohl: bcu.applicationRunning() steht in der sblib/main.cpp in Zeile 55 immer auf FALSE.
Wenn ich da einfach ein if (!bcu.applicationRunning()) draus mache, blinkts wunderbar.

Was mache ich falsch? Hat sich was mit dem OM13087 verändert? Stimmt was in der sblib nicht :?:

Hoffe, ihr könnt mir auf die Sprünge helfen.

Grüße
Christian

Re: LPCXpresso + sblib Starthilfe

Verfasst: 11. Jan 2018, 08:17
von oldcoolman
Es wäre möglich dass die ETS das runnimg bit auf true setzt.( so ist es denke ich spezifiziert.)

Re: LPCXpresso + sblib Starthilfe

Verfasst: 12. Jan 2018, 08:43
von Florian
Das ist genau richtig. Solange die ETS keine Applikation runtergeladen hat, bleibt applicationRunning() auf false. Genau das ist auch der Zweck der Funktion.

Oder um es genauer zu sagen: Es werden 3 Tabellen von der ETS geschrieben: Die Application Table, Address Table und Association Table. Der Zustand aller drei Tabellen wird am Ende des Downloads auf "Loaded" gesetzt. Und darauf prüft applicationRunning()

(Achtung: Das habe ich aus meinem Gedächtnis gekramt, ist schon ein bischen her...)

Re: LPCXpresso + sblib Starthilfe

Verfasst: 12. Jan 2018, 09:37
von Doumanix
Danke für die Hilfe euch beiden!
Verstehe ich und konnte ich auf die Schnelle so halbwegs im Code nachvollziehen.

Dann aber ne Frage zu den Codebeispielen im SB-Repo: die können dann ja so wie sie sind nicht funktionieren oder? Die laufen ja isoliert einfach ohne ETS. Dann ist da immer das Running-Bit auf FALSE und wenn darauf geprüft wird, wird das Beispiel nie auf meinem LPCExpresso laufen??

Re: LPCXpresso + sblib Starthilfe

Verfasst: 12. Jan 2018, 19:37
von oldcoolman
Ich denke das ist historisch gewachsen. Ich hatte schon mal ein blinky am laufen, aber ich denke das war das beim expresso mitgelieferte. Vermutlich kam 'aplication running' erst viel später in die LIB und man hat an das Blinkbeispiel nicht mehr gedacht.

Re: LPCXpresso + sblib Starthilfe

Verfasst: 13. Jan 2018, 18:37
von StefanT
Die Mini Beispiele sind ziemlich alt, die Lib hat sich seither sicher verändert.
Sie brauchten auf jeden Fall keine ETS um zu funktionieren, einfach nur flashen.

Wobei die Beispiele auf den LPCxpresso zugeschnitten waren - eventuell blinkt da z.B. der falsche Pin.

Re: LPCXpresso + sblib Starthilfe

Verfasst: 13. Jan 2018, 22:15
von Doumanix
Doch der Pin ist schon der richtige. Ich habe es ja hinbekommen. Musste aber in der sblib das appRunning umdrehen auf if (!applicationRunning()) ...

Da kam also was in der lib dazu...

Re: LPCXpresso + sblib Starthilfe

Verfasst: 13. Jan 2018, 23:36
von StefanT
Wir könnten da ein setApplicationRunning(true) in die Lib einbauen.
Mit einer Warnung dass man das bei normalen Geräten nicht verwenden soll.

Re: LPCXpresso + sblib Starthilfe

Verfasst: 14. Feb 2020, 22:43
von Doumanix
Ich greife den Thread auf, da es hier besser passt, als im Thread von Marios Dachfenstersteuerung über allgemeine sblib-Beispiele zu diskutieren.

@Mario: Es gibt in der sblib auf jeden Fall diverse Beispiele, auch wie man nen ds18x20 einbinden kann: https://github.com/selfbus/software-arm ... re-ds18x20

Auch hatte "klamm" mal ein Projekt gestartet, den ds18x20 an die TS ARM zu hängen. Ich habe sein Projekt auch vorliegen (die Sourcen), aber ich bekomme es nicht zum laufen. Ich habe insgesamt zu viele Stränge am laufen, da komme ich dazu aktuell einfach nicht. Ich könnte es also einfach mal ins Git laden, auch auf die Gefahr hin, da vielleicht eine neue Leiche zu erzeugen.

Aber zurück zum Beispielprojekt: das lief bei mir schon mal passabel. Ich hatte es auf einen 4TE ARM Controller gespielt. Wichtig ist, dass man mit dem bcu.running() aufpassen muss: im Beispiel wird die BCU nicht initialisiert. Dadurch tritt das Programm durch die fehlschlagende Prüfung nie in die Main-Loop loop() ein.
Workaround wäre, in der sblib/main.cpp auf (!applicationRunning()) zu ändern. Achtung: dann müssen natürlich die sblib und das Projekt neu übersetzt werden. Auf Dauer ist das natürlich nicht sauber, denn man muss immer dran denken, das wieder zurück zu drehen, wenn man ein nicht-Beisppiel-Projekt übersetzt. Aber zum Testen ist's erst mal ganz OK.

Grüße
Christian

Re: LPCXpresso + sblib Starthilfe

Verfasst: 16. Feb 2020, 00:47
von Olli
Hallo,

ich habe den DS18B20 im Projekt RTR_lcd_voc_rh_sensor-bcu1 erfolgreich eingesetzt.
In der Datei https://github.com/selfbus/software-arm ... ensors.cpp kann man sehen, dass das ganze recht einfach funktioniert.

Grüße,
Olli