Hallo, ich steige dieser Tage in das NRF Connect SDK von Nordic ein. Das nutzt Zephyr mit DeviceTree. Steile Lernkurve ist schon mal milde ausgedrückt. Wenn man da nicht täglich mit arbeitet, wird man das Meiste wohl wieder vergessen. Zephyr wimmelt ja wieder von vielfachen defines, so daß ich letztendlich gar nicht mehr weiß, was da im Hintergrund gemacht wird. Hat bei großen und Komplexen Programmen sicherlich auch seinen Vorteil. Jedenfalls will ich jetzt mal nachschauen, wie viele Takte z.B. eine Funktion benötigt. Bei den allermeisten IDE ist immer irgendwo ein Cyclecounter, der beim Steppen abgelesen werden kann. Sowas habe ich bei VSCode bzw. dem ganzen Nordic-Bundle nicht gefunden. Irgendwelche Funktionen zur Laufzeit kommen wegen Aufwand gar nicht in Frage. Sonst hatte ich mir im ungünstigsten Fall mit DWT->CYCCNT geholfen, nur leider hat mein derzeitiger nrf52810 das nicht implementiert. Kennt jemand eine andere Lösung? VSCode ist ja auch (fast) unendlich konfigurierbar.
Schwierig schrieb: > . Bei den allermeisten IDE ist immer irgendwo ein Cyclecounter, der beim > Steppen abgelesen werden kann. Basiert der dann nicht auf dem DWT Cycle Counter? Ohne den kann die IDE ja kaum die Takte zählen. Du kannst dir zwar mit dem SysTick oder sonstigen Hardware Timern behelfen aber die zählen ja nicht die eigentlichen CPU Takte.
Genau. Mit einem frei laufenden Timer geht das auch, aber dann muß man schon wieder selber rechnen (bzw. sich einmal eine Meßfunktion schreiben, was ja auch doof ist). nrf52810, ein Cortex M4 ohne DWT. Sachen gibt's. Ich habe mir jetzt so beholfen: Da ich ein nRF52DK mit einem nrf52832 habe (emuliert dann einen nrf52810), mache ich einfach eine weitere build configuration für den nrf52832 und nutze da die vorhandene DWT-Einheit für diese Messungen. Es gibt natürlich noch andere Unterschiede (keine FPU bei einem M4...), aber ich nutze ja den selben code.
:
Bearbeitet durch User
Schwierig schrieb: > Genau. Mit einem frei laufenden Timer geht das auch, aber dann muß man > schon wieder selber rechnen Und der misst halt Echtzeit und zählt auch die Zeit mit, die die CPU im Idle ist... Schwierig schrieb: > ich einfach eine weitere build configuration für den nrf52832 und nutze > da die vorhandene DWT-Einheit für diese Messungen Klingt nach der besten Lösung...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.