Forum: Mikrocontroller und Digitale Elektronik ARM 7 flashen in Massenproduktion


von Thomas F. (tf1973)


Lesenswert?

Hallo zusammen,

ich würde gerne ein Arm7 SoM oder Mini Board in ein Produkt integrieren. 
Darauf soll dann Debian ode Ubuntu Core laufen. Jetzt habe ich mal 
geschaut wie der Flash Prozess aussieht, zwecks effizienter Planung für 
eine Massenproduktion und musste feststellen, dass die meisten 
Anleitungen TF/SD card oder USB voraussetzen. Teilweise ist auch noch 
Monitor und Tastatur Voraussetzung. Alles nicht vorhanden und - ich habe 
Ethernet und maximal noch UART zur Verfügung. Gibt des da keine 
einfachere Möglichkeit? Zum Beispiel einen kleinen Bootloader per UART 
flashen und das eigentliche Image dann per LAN aus dem lokalen Netz bzw. 
Internet installieren? Danke!

von Hmmm (hmmm)


Lesenswert?

Thomas F. schrieb:
> Zum Beispiel einen kleinen Bootloader per UART
> flashen und das eigentliche Image dann per LAN aus dem lokalen Netz bzw.
> Internet installieren?

Genau das. Du nimmst einen Bootloader wie U-Boot und bootest damit von 
einem TFTP-Server Dein Install-System, das dann wiederum die eigentliche 
Firmware ins Flash schreibt.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Thomas F. schrieb:
> Arm7

Einen älteren Prozessor hast du nicht gefunden (genutzt 1993-2001)? 
Funktioniert aktuelles Linux da überhaupt?

Es hängt stark vom konkreten SoC ab, wie der zu flashen ist, also bei 
einem TI gibt es andere Möglichkeiten als bei einem Microchip. Der 
Prozessorkern (hier: ARM7) hat da relativ wenig Einfluss. Ohne Nennung 
des konkreten SoC kann man da also nicht viel sagen.

von Oliver S. (oliverso)


Lesenswert?

Thomas F. schrieb:
> Massenproduktion

Wenn Massenproduktion wirklich Massenproduktion bedeutet, kaufst du die 
Prozessoren fertig programmiert beim Hersteller. Falls es dann doch 
nicht ganz so viele sind, beim Distri. Wenns dann doch eher die 
Mikrocontroller.net-übliche BastelWastel-Massenproduktion von einmalig 
25 Stück werden, besorge dir einen Programierboard mit Sockel.

Oliver

: Bearbeitet durch User
von Benjamin K. (bentschie)


Lesenswert?

Und du musst ja sowieso irgendeinen Test mit der Platine machen.
Da passt so eine Programierroutine meist am besten mit dazu.
Da muss ja eh einmal jede Platine angesteckt werden.

Und ja, das ist nicht günstig, da kann man sehr schnell 1-2 Mannmonate 
versenken, bis das halbwegs geht.
Da solltest du jetzt aber doch jemanden suchen der dass schon mal 
gemacht hat.
Idealerweise könntest da ja den fragen, der die Platinen nachher 
fertigen soll. Die können das selbst oder haben jemanden der das kann.

von Frank K. (fchk)


Lesenswert?

Niklas G. schrieb:
> Thomas F. schrieb:
>> Arm7
>
> Einen älteren Prozessor hast du nicht gefunden (genutzt 1993-2001)?
> Funktioniert aktuelles Linux da überhaupt?

Er meint wohl ARMv7. Die alten ARM7TDMI Prozessoren haben keine MMU.

fchk

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Frank K. schrieb:
> Er meint wohl ARMv7.

Oder ARM Cortex-A7? Oder ARM Cortex-M7? Alles was anderes als ARM7. 
Konkrete SoCs sind auf jeden Fall alle sehr unterschiedlich zu 
programmieren.

Frank K. schrieb:
> Die alten ARM7TDMI Prozessoren haben keine MMU.

Die TDMI-Varianten nicht, die "normal"-Varianten des ARM7 schon:

http://www.bitsavers.org/pdf/acorn/ARM_DDI_0024C_ARM710_Data_Sheet_Jul94.pdf

Die waren für die Acorn Risc PCs gemacht. Ist natürlich nur noch im 
Museum zu finden... Den hat Linux immerhin bis vor Version v3.5 von 2012 
unterstützt!

: Bearbeitet durch User
von Michael X. (Firma: vyuxc) (der-michl)


Lesenswert?

Je nach µP hast du einen first stage bootloader on chip. Den wirst du 
wohl per strapping konfigurieren müssen damit er auf der richtigen 
Schnittstelle rausbläst. NXP z.B. arbeitet im USB client mode, kann aber 
auch je nach HW umkonfiguriert werden.

von Marc X. (marc_x)


Lesenswert?

Oliver S. schrieb:
> Thomas F. schrieb:
>> Massenproduktion
>
> Wenn Massenproduktion wirklich Massenproduktion bedeutet, kaufst du die
> Prozessoren fertig programmiert beim Hersteller.

Der Trend ist Programmierung in der Produktionslinie. Die Zeit der 
Programmierdienstleister ist eigentlich vorbei, das macht man heute 
eigentlich nur noch bei großen Speichern, deren Programmierdauer die 
Zykluszeit in der Linie kaputt machen würde.

Die Chiphersteller haben häufig auch die Programmieraufträge nicht 
selbst durchgeführt, sondern an entsprechende Dienstleister 
weitergereicht.

Die reinen Programmierdienstleister sind auch schon lange am aussterben, 
entweder sie fahren zweigleisig oder steigen komplett auf andere 
Geschäftsfelder um. Programmierdienstleister wie Ertec und ProMik sind 
daher auch schon lange im Bereich der onboard Programmierung aktiv.

Das programmieren in der Linie ermöglicht einem viele Vorteile:
- Keine Lagerhaltung verschieden programmierter Bauteile
- Schneller Umstieg in der Fertigung auf eine neue Softwareversion
- Leiterplattennutzen können bei Bedarf in der Linie mit anderer 
Software erneut programmiert werden
- Cyber Security, jede Baugruppe kann mit individuellen Schlüsseln 
programmiert werden
- Daten wie Seriennummern und Traceability Informationen können bereits 
bei der Initialprogrammierung in die Baugruppen geschrieben werden
- Auf Dauer günstiger als Programmierdienstleistung

von Thomas F. (tf1973)


Lesenswert?

Ja, ich meinte Cortex A7. Aktuell sind Allwinner T113-i oder H3 in der 
engeren Auswahl.
Bei einem steckbaren Modul kann man sich das flashen mit einem 
Adapterboard noch vorstellen, bei einem aufgelötetem SoM muss das alles 
im Gerät selbst funktionieren.
Daher meine Frage - im Idealfall wird ein Programmieradapter aufgesteckt 
und nur ein Bootloader installiert, was recht fix gehen sollte (?). Nach 
dem final Assembly soll das eigentliche OS per LAN installiert werden, 
das kann man dann auch gleich mit dem Burn-in Test verbinden.
Für mich war nur etwas verwirrend, dass alle Anleitungen irgendwelche 
TF/SD Cards oder USB erforderlich machen.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

Dein SOM wird vorprogrammiert kommen. Typischerweise mit einem 
kompletten Linux Image. Du mußt nur noch die Konfiguration in Erfahrung 
bringen und dann dein System da drüber installieren. Die Methode mit 
U-Boot und TFTP Boot klingt für mich am vielversprechensten. Wenn es 
wirklich Masse ist kannst du das SOM auch mit deinem Imae 
vorprogrammiert beschaffen.

Matthias

von Oliver S. (oliverso)


Lesenswert?

Marc X. schrieb:
> Der Trend ist Programmierung in der Produktionslinie.

Ja, aber wer Produktionslinien hat, und dafür verantwortlich ist, stellt 
keine solche Frage hier im Forum.

Oliver

von Frank K. (fchk)


Lesenswert?

Thomas F. schrieb:
> Ja, ich meinte Cortex A7. Aktuell sind Allwinner T113-i oder H3 in der
> engeren Auswahl.

Ein T113-i unterstützt das Booten von:
- SD card
- eMMC
- SPI NOR Flash
- SPI NAND Flash
Download Per USB konnte ich nicht auf die Schnelle rausfinden.

Ein H3 unterstützt das Booten von:
- NAND FlashSD card
- SD/TF card
- eMMC
- Nor Flash
- Download per USB OTG

Das ist das, was das interne Bootrom kann. Punkt.
Wenn Du den nacken Chip verwendest, dann kannst Du einen UBoot ins SPI 
NOR Flash legen, die SPI Flashes bei einem Dienstleister programmieren 
lassen und die programmierten Chips bestücken.

Wenn Du ein fertiges Modul verwendest, dann bist Du auf das beschränkt, 
was der Modullieferant Dir anbietet. Das ist dann üblicherweise ein Boot 
der SD-Karte oder Firmwareupdate per USB. Das ist dann so, und daran 
führt dann auch kein Weg vorbei. Wenn Du ein Modul nimmst, hast Du eben 
ein paar Freiheitsgrade weniger.

Wenn Dein Prozessormodul auch noch eMMC beinhaltet, dann bleibt Dir auch 
der Weg versperrt, das eMMC auf ein kleines Trägerplatinchen zu setzen, 
so wie Hardkernel/Odroid das macht. Da kannst Du die eMMC-Module extern 
vorprogrammieren und dann einfach auf Deine Boards draufstecken, und so 
könntest Du auch Firmwareupdates verschicken. Die Systemkonfiguration 
sollte dann natürlich woanders gespeichert sein, z.B. auf einem 
I2C-EEPROM oder einen weiteren SPI-Flash.

JTAG wird für die Erstinbetriebnahme von Allwinner nicht unterstützt. Da 
bist Du dann sehr alleine und wirst viel Zeit benötigen, um das 
rauszufinden.

> Für mich war nur etwas verwirrend, dass alle Anleitungen irgendwelche
> TF/SD Cards oder USB erforderlich machen.

Ja, das ist ein übliches Vorgehen. Bei nVidia Jetson Prozessormodulen 
must Du auch zwingend per USB flashen.

fchk

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
Noch kein Account? Hier anmelden.