Wie finde ich heraus, ob ein Mikrocontroller genug Verarbeitungsgeschwindigkeit hat, um besonders "intensive" Aufgaben zu bewältigen?
Insbesondere bin ich ein Universitätsstudent, der einen Roboter entwerfen möchte, der OpenCV und ein LADAR verwendet. Unser Team hat einen ODROID X2. Ich denke, der ARM ist schnell genug, aber wie kann ich das sicherstellen?
Oft wird die Leistung nicht durch die reine Verarbeitungsgeschwindigkeit der CPU begrenzt, sondern durch andere Engpässe im System – RAM, Flash, serielle I/O usw. Dies wird bei komplizierteren Peripheriegeräten zu einem größeren Problem. Sie können zwar theoretisch die Prozessorlast berechnen, aber das ist sehr, sehr schwierig. Der richtige Weg, dies zu tun, ist Benchmarking. Testen Sie, wie viel Ihre LIDAR-Schnittstelle und andere Schnittstellen benötigen, und testen Sie auch (das ist sehr wichtig) während des gesamten Entwicklungsprozesses weiter. Wenn die Prozessorauslastung nach dem Hinzufügen einer bestimmten Funktion ansteigt, können Sie zurückgehen und herausfinden, ob es einen besseren Weg gibt .
Am Ende des Tages ist Hardware aber billig – im Zweifelsfall groß raus.
Sie können einen Simulator ausführen und Code-Benchmarks auf dem Simulator ausführen. Oder führen Sie Code auf einem Evaluierungsboard mit einem vergleichbaren Prozessor aus und führen Sie dort Benchmarks durch.
Ich weiß nicht, was OpenCV und LADAR sind, aber ich gehe davon aus, dass Sie den Code selbst kompilieren, also sollten Sie denselben Compiler verwenden, den Sie für den Zielprozessor verwenden werden.
Selbst wenn es zu laufen scheint, möchten Sie wirklich wissen, wie viel Spielraum Sie haben, damit eine winzige Änderung den Code nicht beschädigt. Wenn Sie nur Zugriff auf ein Evaluierungsboard haben, können Sie grobe Dinge tun, z. B. einen Ausgangspin umschalten, wenn der Prozessor im Leerlauf ist. In diesem Fall kann die durchschnittliche Ausgangsspannung verwendet werden, um grob zu bestimmen, wie viel Prozessorbandbreite noch verfügbar ist.
Ignacio Vazquez-Abrams
Ninja48
Venny
Ignacio Vazquez-Abrams
EEd
EEd