Forum: Compiler & IDEs [STM32] Konzept:Application´s


von Oliver S. (tb-killa)


Lesenswert?

Hallo,

ich würde gerne mit euch zusammen ein Konzept entwickeln um mit der 
STM32-Familie (z.B. STM32F407 vom Discovery-Board) die Möglichkeit 
auszuarbeiten, Verschiedene Applikationen innerhalb eines Core-Systems 
betreiben zu können.

Vielleicht wäre hier bereits hier eine Möglichkeit das Core-System mit 
z.B. FreeRTOS oder anderen RTOS-Systemen seiner Wahl aufzubauen.


Idee:

[Core-OS]:

- RTOS als Grundgerüst um z.b. Threads und ähnliches vereinfacht
  integrieren zu können.

- Beinhaltet Funktionen wie:
  # Installieren von Applikationen
  # Löschen von Applikationen
  # Anzeigen freier Speicher
  # Systemeigene Funktionen (z.B. STM32 standard peripheral library
    integration)
  # Sollte eigene zu flashende Binär-File (Typ z.B. ELF  BIN  HEX) 
sein

- Speichermanagement:
  # Flash des STM32-Chips per Linker-Script teilen
  # Für Applikationen feste Bereiche festlegen (z.B. pro Applikation max
    16kbytes
  # Festlegen von Application-Slots (z.B. Max 5 Slots per Linker-Script 
vom
    Core-OS festgelegt

- Jobmanagement:
  # Regelt das Schreiben  Löschen  Ausführen von Applications
  # Schreibt neue Applications in den Flashbereich
  ## Prüft Slot´s, sollte einer Frei sein wird hier die Application
  abgelegt.
  # Lädt und Führt die Application aus, bei beenden wird z.b. Ram
  automatisch freigeben
  # Beim Löschen wird der betreffende Slot wieder freigeben.

[Applications]

- Bekommt eigenes Linker Script z.B.
1
ENTRY(main)    
2
3
MEMORY
4
{
5
  APP (rwx) : ORIGIN = 0, LENGTH = XX   <- Max Größe der Application in K
6
}
7
8
SECTIONS
9
{  
10
...
11
...   <- Sections festlegen(z.B. .text .data .bss)
12
...
13
}

- Beim Compilieren gegen die Core-OS-Binary linken um Funktionen usw 
nutzen
  zu können
  #Oder Header-File bauen mit wichtigsten Funktionen und eine Static-
  Library
  includieren

- Compiler Optionen nutzen um Speicherplatz so klein wie möglich zu 
halten
  (nicht benötigte bzw genutzte Funktionen ausklammern beim 
BUILD-Process





Ich hoffe dass euch meine Idee gefällt und es vielleicht ein paar Leute 
gibt welche etwas ähnliches aufgebaut haben bzw Interesse haben 
möglicherweise dergleichen durchzuführen.

Gerne nehme ich Ideen und Verbesserungsvorschläge an, Source-Code kann 
gerne hier hochgeladen oder extern verlinkt werden z.B. Github / SVN / 
etc.

von Dr. Sommer (Gast)


Lesenswert?

Macht eigentlich wenig sinn auf einem Cortex-M ein Anwendungssystem zu 
entwickeln. Wenn schon sollte man einen Cortex-A mit MMU verwenden, dann 
gibts echten virtuellen Speicher & Speicherschutz, damit echtes 
Multitasking und man kann beliebig Anwendungen ausführen, und das sogar 
"sicher".
Ohne MMU dürfte es relativ spaßig werden den Anwendungen RAM-Bereiche 
zuzuweisen und diese die nutzen zu lassen.

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.