Für unseren Kunden seba KMT, dem weltweit führenden Unternehmen in der Entwicklung und Herstellung messtechnischer Geräte für die Zustandsanalyse und Fehlerortung von Kabeln und Rohrleitungen, entwickelte LEBER Ingenieure einen Linux Treiber.
Die Herausforderung
Für die Treiberentwicklung wurde vom Kunden ein fertiges Hardwaresystem zur Weiterentwicklung bereitgestellt, welches nur ein eingeschränktes Debugging ermöglichte. Für eine effiziente Entwicklung musste auf das Beagle Bone Black Board ausgewichen werden, welches die Verwendung von Debug-PINs ermöglicht und Fehlerquellen von vornherein ausschließt. Für die Weiterentwicklung musste gewährleistet werden, dass ein Signal des RF Transceivers CC1101 innerhalb eines kritischen Zeitintervalls verarbeitet werden kann, da die Datenübertragung ansonsten unterbricht. Die Berücksichtigung der Timinganforderungen des RF Transceivers für die Treiberentwicklung eines komplexen Betriebssystems nahm deshalb eine ganz besondere Rolle ein.
Prozesse
Zum Projektstart stellte seba KMT eine Demoapplikation aus bestehenden Hardware- und Softwareteilen zur Verfügung. Mit dieser konnten grundlegende Operationen wie z.B. das Senden und Empfangen von Daten per Funk realisiert werden. Darauf aufbauend konnten Funktionen für den RF Transceiver CC1101 entwickelt und zusammen mit den Mitarbeitern von seba KMT in den kundenspezifischen Kernel integriert werden.
Technologie
Es gibt mehrere Möglichkeiten die Peripherie eines Prozessors an den Kernel anzubinden. Durch die wachsende Verbreitung der ARM-Prozessoren sind auch immer mehr Möglichkeiten entstanden diese umzusetzen. Das zuvor vom Kunden verwendete Baremetal-Modell sollte für zukünftige komplexere Anwendungen aufgerüstet werden. Im Embedded-Linux-Bereich ist der Device Tree hierzu am verbreitetsten und gilt deshalb als zukunftsreichste Hardwareschnittstelle zum Kernel. Aus diesem Grund entschlossen sich die Entwicklungsingenieure von seba KMT und LEBER Ingenieure den Device Tree den anderen Varianten vorzuziehen.
Fazit
Die Projektdurchführung gestaltete sich nach dem Grundsatz: „Gemeinsames Projekt“. Dies bedeutet kurze Dienstwege und gegenseitige Unterstützung der Partner, auch jeweils vor Ort. Aufgrund der guten Kommunikation zwischen den beteiligten Entwicklungsingenieuren konnte das Projekt agil gesteuert werden, so dass Lösungsansätze kurzfristig und bedarfsoptimiert umgesetzt werden konnten. Dabei wurde auf das bei agilen Projekten angewendete tägliche „Daily Standup-Meeting“ zurückgegriffen. Abschließend wurde die Linux-Treiberentwicklung in ein übergeordnetes Entwicklungsprojekt bei seba KMT implementiert.