Changes for page LPC11xx ARM Entwicklung

Last modified by Florian Völzke on 2020/09/27 10:55

From version 19.1
edited by Christian B.
on 2018/01/30 00:28
Change comment: There is no comment for this version
To version 18.4
edited by Christian B.
on 2018/01/07 12:45
Change comment: Kleine Textänderung, tote Links aktualisiert

Summary

Details

Page properties
Content
... ... @@ -1,53 +1,17 @@
1 -(% class="row" %)
2 -(((
3 -(% class="col-xs-12 col-sm-8" %)
4 -(((
5 -(% class="jumbotron" %)
6 -(((
7 -(% class="container" %)
8 -(((
9 -Überblick über die ARM-Entwicklung mit LPCXpresso
10 -
11 -)))
12 -)))
1 +[[[[image:arm_proto.jpg||style="float:right" width="200"]]>>attach:arm_proto.jpg||rel="__blank"]]Die Selfbus ARM Plattform ist die Plattform für zukünftige Selfbus-Projekte. Über viele Jahre waren der LP922FN bzw. der LP922FDH die gesetzten Prozessoren der Selfbusgeräte. Da diese jedoch schon lange nicht mehr produziert werden und immer schwerer zu beschaffen sind (Verfügbarkeit, Lieferdauer, Qualität (Teilweise Fakes, teilweise ohne Bootloader)), muss der ARM LPC1115 in den Fokus rücken.
13 13  
14 -(% class="wikigeneratedid" %)
15 -Die Selfbus ARM Plattform ist die Plattform für zukünftige Selfbus-Projekte. Über viele Jahre waren der LP922FN bzw. der LP922FDH die gesetzten Prozessoren der Selfbusgeräte. Da diese jedoch schon lange nicht mehr produziert werden und immer schwerer zu beschaffen sind (Verfügbarkeit, Lieferdauer, Qualität (Teilweise Fakes, teilweise ohne Bootloader)), muss der ARM **LPC1115** bzw. **LPC1114** in den Fokus rücken.
16 16  
17 -= Quickstart mit einem fertigen VirtualBox Image =
18 -
19 -Wer seine Entwicklungsumgebung sauber getrennt betreiben will oder wer einfach so schnell wie mögllich einen Blick in die Selfbus-Entwicklung mit dem ARM werfen will, kann mit diesem Image vom 29.01.2018 recht schnell los legen.
20 -
21 -Das image beinhaltet
22 -
23 -* Ubuntu 16.04 LTS
24 -* LPCXpresso 8.2.2 mit installiertem Git Client
25 -* GitKraken zur visuell unterstützten Sourcecode-Verwaltung
26 -
27 -Man kann sich also [[VirtualBox herunterladen>>https://www.virtualbox.org/wiki/Downloads]], das [[Selfbus ARM Developer Image (Selfbus Dev LPC11xx.ova)>>https://www.amazon.de/clouddrive/share/DrtE0xuvLclr7FxfR0KVj41ZiOwnxKHJ9pNwVsecX20]] herunterladen (3,41GB), extrahieren und in VirtualBox importieren. Ggf. sollte man noch die Einstellungen zu CPU (1 Kern) und Arbeitsspeicher (2GB) in der virtuellen Maschine anpassen.
28 -
29 -Nach dem Starten der Maschine wird man automatisch mit dem **Benutzer// //**//sbdeveloper //angemeldet. Das **Passwort **des Users ist //selfbus//. Die Entwicklungsumgebung kann mit einem Doppelklick auf das Symbol auf dem Desktop gestartet werden.
30 -
31 -Der** Eclipse Workspace** liegt im Verzeichnis des Benutzers unter //sb_development/sb_LPC11xx_workspace//
32 -Der aus Git geklonte **Selfbus Quellcode** liegt im Verzeichnis des Benutzers unter //sb_development/sb_sourcecode/lpc11xx//. Dort wiederum gibt es entsprechend der Github-Struktur ein Verzeichnis für die sblib und eines für software-arm-incubation.
33 -
34 -Das übersetzen der ersten Programme (Details siehe unten) sollte mit dem Image auf Anhieb funktionieren.
35 -
36 -= Schritt für Schritt Anleitung =
37 -
38 -[[[[image:arm_proto.jpg||style="float:right" width="200"]]>>attach:arm_proto.jpg||rel="__blank"]]
39 -
40 40  Im Bild sieht man den Testaufbau von StefanT mit dem LPCxpresso Board. Rechts im Bild: das Gira Rauchmelder Modul (ohne LPC922), das für den Bus Zugang verwendet wird.
41 41  
42 -== Prozessor ==
6 +=== Prozessor ===
43 43  
44 44  Es wird die Prozessor-Familie LPC11xx von NXP verwendet. Zum Einsatz kommt der [[LPC1115>>url:http://www.nxp.com/products/microcontrollers/cortex_m0_m0/LPC1115FBD48.html||rel="__blank"]]. Er hat 64k Flash und 8k RAM und viele nette Features. Die ARM Plattform von NXP gibt es nach oben hin mit Prozessoren die weit mehr Resourcen bieten. Wir sollten damit also auch für die Zukunft gut gerüstet sein.
45 45  
46 -== Abkürzungen ==
10 +=== Abkürzungen ===
47 47  
48 48  Da es sich bei unserem altbeliebten LPC922 und beim LPC1115 um NXP LPC Prozessoren handelt, hat es sich eingebürgert vom LPC922 als "LPC" zu reden und vom LPC11xx als "ARM". Damit braucht man nicht immer den Typ dazu schreiben und es ist klar was gemeint ist.
49 49  
50 -== Entwicklungsplattform ==
14 +=== Entwicklungsplattform ===
51 51  
52 52  Entwickelt wird mit LPCxpresso. Um ca. 20 EUR bekommt man bei Embedded Artists ein Prototyping Board mit Programmer, mit dem auch debuggt werden kann: [[Link zu LPCxpresso 1115 bei Embedded Artists>>url:http://www.embeddedartists.com/products/lpcxpresso/lpc1115_xpr.php||rel="__blank"]].
53 53  
... ... @@ -83,7 +83,7 @@
83 83  Weiter Infos bzgl. der Einstellungen der Kompile Optionen findet ihr hier: [[Eigenes Selfbus ARM-Projekt anlegen.>>doc:Eclipse_ARM_Projekt]]
84 84  \\Für den normalen Benutzer wird der Programmer/Debugger, der beim LPCxpresso dabei ist, nicht nötig sein. Man kann den ARM auch mit einem einfachen seriellen Programmer programmieren. Ich kann aber nur jedem Entwickler die Anschaffung empfehlen. Der LPCxpresso ist nicht teuer, und der Hardware Debugger, den man dadurch bekommt, ist das Geld auf jeden Fall wert.
85 85  
86 -== Hardware Aufbau ==
50 +=== Hardware Aufbau ===
87 87  
88 88  Wir verwenden ein LPCxpresso 1115 Board.
89 89  
... ... @@ -112,29 +112,29 @@
112 112  
113 113  Weiterhin kann der selfbus Programmer zum Programmieren verwendung finden. Hierfür wird ein 10poliges 1:1 Kabel gefertigt. flashmagic verlangt allerdings *.hex Dateien, diese werden bereitgestellt.
114 114  
115 -== Software Repository ==
79 +=== Software Repository ===
116 116  
117 117  Für die ARM Entwicklung zuständig ist das Github Repository [[software-arm-incubation>>url:https://github.com/selfbus/software-arm-incubation||rel="__blank"]].
118 118  
119 119  Dort interessieren derzeit folgende Projekte:
120 120  
121 -* [[sblib>>https://github.com/selfbus/software-arm-lib||rel="__blank"]] enthält unsere Selfbus ARM Library, mit der die Geräte aufgebaut werden. Die Library ist zu 90% komplett. Details siehe unten.
85 +* [[sblib-cpp>>url:https://github.com/selfbus/software-arm-incubation/tree/master/sblib-cpp||rel="__blank"]] enthält unsere Selfbus ARM Library, mit der die Geräte aufgebaut werden. Die Library ist zu 90% komplett. Details siehe unten.
122 122  
123 -* [[sblib/examples>>https://github.com/selfbus/software-arm-lib/tree/master/examples||rel="__blank"]] enthält Beispiele zur Verwendung der Selfbus ARM Library.
87 +* [[sblib-examples>>url:https://github.com/selfbus/software-arm-incubation/tree/master/sblib-examples||rel="__blank"]] enthält Beispiele zur Verwendung der Selfbus ARM Library.
124 124  
125 -* [[out8-bcu1>>https://github.com/selfbus/software-arm-incubation/tree/master/actuators/outputs/out8-bcu1||rel="__blank"]] ist eine Portierung der out8 Software für den [[8fach Binärausgang>>doc:Geräte.Ausgänge.Binärausgang_8x230_4TE]].
89 +* [[out8-bcu1>>url:https://github.com/selfbus/software-arm-incubation/tree/master/out8-bcu1||rel="__blank"]] ist eine Portierung der out8 Software für den [[8fach Binärausgang>>doc:Selfbus.Binärausgang_8x230_4TE]].
126 126  
127 -* [[in8-bcu1>>https://github.com/selfbus/software-arm-incubation/tree/master/sensors/binary-inputs/in8-bcu1||rel="__blank"]] ist der Anfang einer Portierung der in8 Softwäre für den [[8fach Binäreingang>>doc:Geräte.Eingänge.Binäreingang_8x230_4TE]].
91 +* [[in8-bcu1>>url:https://github.com/selfbus/software-arm-incubation/tree/master/in8-bcu1||rel="__blank"]] ist der Anfang einer Portierung der in8 Softwäre für den [[8fach Binäreingang>>doc:Selfbus.Binäreingang_8x230_4TE]].
128 128  
129 -* [[in4-bcu2>>https://github.com/selfbus/software-arm-incubation/tree/master/sensors/binary-inputs/in4-bcu2||rel="__blank"]] ist der Anfang eines in4 im BCU2 Modus der Library. Es soll ein ABB TS/U4.2 emuliert werden.
93 +* [[in4-bcu2>>url:https://github.com/selfbus/software-arm-incubation/tree/master/in4-bcu2||rel="__blank"]] ist der Anfang eines in4 im BCU2 Modus der Library. Es soll ein ABB TS/U4.2 emuliert werden.
130 130  
131 -== Die Selfbus ARM Library ==
95 +=== Die Selfbus ARM Library ===
132 132  
133 -=== Arduino like ===
97 +====== Arduino like ======
134 134  
135 135  Die ARM Library ist stark an die [[Arduino Library>>url:http://arduino.cc/en/Reference/HomePage||rel="__blank"]] angelehnt. Unterschiede zur Arduino Library sind dort zu finden wo unser Prozessor mehr bietet, da wir die Funktionen für unsere Applikations Programme auch benötigen werden. Speziell die Timer sind sehr universell einsetzbar.
136 136  
137 -=== BCU2 Geräte ===
101 +====== BCU2 Geräte ======
138 138  
139 139  Neu ist auch das wir ab jetzt BCU2 Geräte emulieren können. Für den Programmierer unterscheiden sich die BCU2 Programme nicht großartig zu den bisherigen BCU1 Programmen. Es ist jedoch so dass auf Seiten ETS und der VD mehr Platz zur Verfügung steht. Wir können also jetzt dann mehr als - wie bisher - 31 Com Objekte verwenden.
140 140  
... ... @@ -141,19 +141,3 @@
141 141  Die Library kann dazu auf zwei Arten übersetzt werden. Entweder im BCU1 Modus oder im BCU2 Modus. Im BCU1 Modus ist sie etwas kleiner. Da sich BCU1 und BCU2 unterschiedlich verhalten sollte der BCU2 Modus nur für BCU2 Geräte verwendet werden und entsprechend BCU1 Modus für BCU1 Geräte.
142 142  
143 143  Es muss bei der Verwendung im Projekt der Applikation das richtige BCU_TYPE Define gesetzt werden, und die passende Library eingebunden werden. Sonst lässt sich der Code am Ende nicht linken. WIe es in beiden Fällen (BCU1 und BCU2) funktioniert kann man sich bei den Beispielen out8-bcu1 und in4-bcu2 ansehen.
144 -)))
145 -
146 -
147 -
148 -(% class="col-xs-12 col-sm-4" %)
149 -(((
150 -(% class="box" %)
151 -(((
152 -**Contents**
153 -
154 -{{toc/}}
155 -)))
156 -)))
157 -)))
158 -
159 -