Der Blätterkatalog benötigt Javascript.
Bitte aktivieren Sie Javascript in Ihren Browser-Einstellungen.
The Blätterkatalog requires Javascript.
Please activate Javascript in your browser settings.
03 2020 Elektronik 23 embedded Listing 1 Device-Tree-Beispiel für einen ZynqUltrascale+-Prozessor von Xilinx In dem Beispiel lädt die Accelerating Processing Unit die Raid Processing Unit und remoteproc VirtIO und RPMsg laufen im Kernel Listing { 2 reservedmemory{ 3 #addresscells=<2> 4 #sizecells=<2> 5 ranges 6 rproc_0_dma_reserved rproc@3ed40000{ 7 nomap 8 compatible=shareddmapool 9 reg=<0x00x3ed400000x00x100000> 10 } 11 rproc_0_fw_reserved rproc@3ed00000{ 12 nomap 13 reg=<0x00x3ed000000x00x40000> 14 } 15 } 16 zynqmprpu{ 17 compatible=xlnx zynqmpr5-remoteproc-1 0 18 #addresscells=<2> 19 #sizecells=<2> 20 ranges 21 core_conf=split 22 23 r5_0 r5@0{ 24 #addresscells=<2> 25 #sizecells=<2> 26 ranges 27 memoryregion=<&rproc_0_fw_reserved> <&rproc_0_dma_reserved> 28 pnodeid=<0x7> 29 mboxes=<&ipi_mailbox_rpu00> <&ipi_mailbox_rpu01> 30 mboxnames=tx rx 31 32 tcm_0_a tcm_0@0{ 33 reg=<0x00xFFE000000x00x10000> 34 pnodeid=<0xf> 35 } 36 tcm_0_b tcm_0@1{ 37 reg=<0x00xFFE200000x00x10000> 38 pnodeid=<0x10> 39 } 40 } 41 } 42 zynqmp_ipi1{ 43 compatible=xlnx zynqmpipimailbox 44 interruptparent=<&gic> 45 interrupts=<0294> 46 xlnx ipiid=<7> 47 #addresscells=<1> 48 #sizecells=<1> 49 ranges 50 51 _APU<->RPU0IPImailboxcontroller_ 52 ipi_mailbox_rpu0 mailbox@ff90600{ 53 reg=<0xff9906000x20> 54 <0xff9906200x20> 55 <0xff9900c00x20> 56 <0xff9900e00x20> 57 regnames=local_request_region 58 local_response_region 59 remote_request_region 60 remote_response_region 61 #mboxcells=<1> 62 xlnx ipiid=<1> 63 } 64 } 65 } riespeichersysteme 2 an dem die Firma Mixed Mode und der Autor beteiligt sind Im Projekt wird OpenAMP auf einem Zynq-Ultrascale+-SoC von Xilinx eingesetzt um die komplexe Steuerung und Regelung eines netzgebundenen Multilevel-Umrichters für Batteriespeichersysteme umzusetzen Bild 4 Listing 1 Das Koppeln von Linux mit einem RTOS war eine strategische Design-Entscheidung um den Entwicklungsaufwand zu reduzieren Viele Aufgaben wie die Kommunikation mit dem Netzbetreiber die Überwachung der Batteriemanagement-Komponenten das Logging und Überwachen sowie weitere nicht echtzeitkritische Aufgaben werden unter Linux umgesetzt Dazu dient beispielsweise die High-Level-Sprache Python Aufgaben mit Echtzeitanforderungen werden auf eine Realtime Processing Unit RPU und ein Field Programmable Array FPGA ausgelagert Dabei besteht die RPU aus einem Dualcore-Cortex-R5-Prozessor der im Lock-Step-Verfahren betrieben wird Als Accelerated Processing Unit APU dient ein Dualcore-A53-Prozessor mit SMP Linux Sehr flexibel ist die auf der RPU befindliche Regelung wobei ganze Sub-Module im laufenden Betrieb des Umrichters deaktiviert gewartet und reaktivierbar sind Das FPGA dient einerseits zur Entlastung der RPU über das selbstständige Auslesen diverser Analog-DigitalWandler ADC andererseits als spezielle Input Output I O -Erweiterung OpenAMP unter Linux Im Projekt MBatt ist Linux wie meist üblich der Master im System Somit gibt es zwei Varianten zur Integration von OpenAMP ➔ Die Komponenten remoteproc VirtIO und RPMsg laufen im Kernel nur die Anwendungen im Userspace Dazu ist der RP von Linux zu starten indem der unter lib firmware liegende Dateiname der Firmware in die Datei firmware geschrieben und dann start in die Datei state eingetragen wird Beide liegen unter sys class remoteproc remoteprocX Nach dem Initialisieren der Kommunikation wird das serielle Device File dev rpmsgX angelegt das von der Anwendung zur Kommunikation genutzt wird Zum Beenden des RP wird dev rpmsgX geschlossen wodurch ein shutdown gesendet wird Zum Schluss wird der RP über Eintrag von stop in sys class remoteproc remoteprocX state angehalten Für MBatt wurde die Variante gewählt da die Verfügbarkeit der RPU beim Systemstart nicht erforderlich ist Die Möglichkeit sie nach Bedarf zu starten und anzuhalten vereinfacht jedoch das Entwickeln sowie das Benutzen Bild 3 Schematische Darstellung eines Systems mit mehreren Mastern Ein Linux-System ist der Master für das RTOS Nucleus das selbst wieder Master einer Baremetal-Anwendung ist In der Mitte ist die Aufteilung des Speichers im Gesamtsystem dargestellt Bild 4