Hallo zusammen,
ich bin dabei einen bno080 (sparkfun board) mit einem STM32RE446 Nucleo
Board auszulesen.
Dabei nutze ich SW4STM32 als IDE und CubeMX für die initiale Config.
Auf der MCU soll das Hillcrest Framework laufen, was hier schon mal für
das oben genannte board portiert wurde:
https://github.com/hcrest/bno080-nucleo-demo
Ich portiere jetzt also die Firmware aus dem Repo von EWARM zu SW4STM32,
allerdings scheint mir der Code nicht lauffähig zu sein.
Die Fehlermeldung auf der Console ist
"Hillcrest SH-2 Demo.
Error from sh2_getProdIds.
Error: -2, from sh2_setFrs() in configure().
Error: -2, from sh2_setCalConfig() in configure().
Starting Sensor Reports.
Error while enabling sensor 5"
Die erste Stelle an der eine Funktion mit Fehler endet ist in
shtp_send() in shtp.c . Hier wird SH2_ERR_BAD_PARAM (-2) zurückgegeben,
da der parameter "chan" größer ist als die maximal erlaubte Channel
Anzahl.
Die Anzahl der Channel wird vorher gesetzt in sh2.c
1 | // sh2_init
|
2 | int sh2_initialize(sh2_EventCallback_t *eventCallback, void *resetCookie)
|
3 | {
|
4 | sh2.controlChan = 0xFF; // An invalid value since we don't know yet.
|
Jetzt frage ich mich
- was ist eigentlich ein Channel in diesem Kontext?
- was soll mir der Kommentar sagen?
Wenn ich die Zeile ändere und controlChan zu 0x1 setze, dann kommt keine
Fehlermeldung, ich lande allerdings in einem Lock, verursacht durch
sh2_hal_block() in opStart() in sh2.c.
Hat sich schon mal jemand mit dem Hillcrest Framework und STM32
beschäftigt und kann mir sagen ob der Code prinzipiell lauffähig ist?
Viele Grüße!