Forum: Mikrocontroller und Digitale Elektronik micrium ucos 2 unter eclipse auf einem cortex-M3 STM32F107VC


von Michael A. (mukululul)


Lesenswert?

Hallo,
hab seit heute das RTOS von micrium am laufen.
Ich verwende eclipse als IDE, yagarto gcc arm und einen olimex jtag 
adapter (arm-usb-osd) zusammen mit OpenOCD und dem Gnuarm und Zylin 
plugin für eclipse.

Nach einigem frickeln läuft das micrium demo super auf dem Board von 
ebay  Bild vom Board gibts hier (http://w  w w .m yc oo 
l.eu/viewtopic.php?f=10&t=13)
Das Board hat einen 3,2inch touch screen.

Nach einigen assembler Anpassungen hab ich jetzt zuletzt noch das linker 
script zurecht gemacht. Das Linkerscript macht jetzt ein placement der 
Stacks und des Heap.

Warum ich das hier schreib? Falls jemand Fragen hat oder diskutieren 
will, gerne helfe ich um den Setup zu replizieren.


Mit dem Kontroller will ich unter anderem die Heizung steuern und 
weitere Exemplare im Haus als Wetter und Kontrollstation einsetzen.

Die Vernetzung der Controller plane ich mit CAN, da ich bisher nix mit 
mit CAN gemacht hab bin ich mal gespannt wie das geht.

Viele Grüsse
Michael

von Claudius Z. (bbczeuz)


Lesenswert?

Sali Michael,

Habe dasselbe Board und mit
- Eclipse+CDT
- OpenOCD+Olimex usb-tiny-h
- CodeSourcery Lite (Linux)
- altes FreeRTOS 0.6.3
- altes lwIP 1.3.2
- altes CMSIS von ST

am Laufen*. Cooles Ding! Momentan versuche ich
- FreeRTOS 0.7.0
- lwIP 1.4.0
- CMSIS 3.5 von ST
- mit LCD

zum laufen zu kriegen

Aktuell hapert's am Linker Skript. Bin an einem Austausch interessiert. 
Die Doku zum Board ist ja doch etwas spaerlich...
Weshalb verwendest du micriums RTOS?

Gruess

Claudius


*ohne LCD

von Dieter (Gast)


Lesenswert?

Hallo,
das Board sieht interessant aus. Wer ist Hersteller bzw. Lieferant?

Gruß
Dieter

von Claudius Z. (bbczeuz)


Lesenswert?

Sali Dieter,

Dieter schrieb:
> das Board sieht interessant aus. Wer ist Hersteller bzw. Lieferant?


Irgend ein Chinese. Suche einmal bei ebay.COM (Nicht auf den Link 
klicken!) nach STM32F107VC, dann findest du es.

Gruess

Claudius

von Arne (Gast)


Lesenswert?

Ich habe dieses Board im Sommer auf ebay.de gekauft. Lieferung war aus 
D. Bei Interesse kann ich die Kontaktinfos raussuchen.
Habe bisher wenig gemacht (nehme IAR 6.10/J-Link und Segger Libs).
> Die Doku zum Board ist ja doch etwas spaerlich...
Stromlaufplan ist aber dabei - sollte reichen, oder?

Display habe ich am Laufen, aber die Touch-Kalibrierung scheint nicht 
gut zu funktionieren. Hat da jemand einen funktionierenden Algorithmus 
am Start?

von Claudius Z. (bbczeuz)


Lesenswert?

Arne schrieb:
>> Die Doku zum Board ist ja doch etwas spaerlich...
> Stromlaufplan ist aber dabei - sollte reichen, oder?

Welcher LCD Controller dort verbaut ist, war nicht ersichtlich. Ich 
glaube (aus den uCOS Quellen) einen IL7320 zu haben, der via GPIO 
angeschlossen ist. Irre ich mich?


> Display habe ich am Laufen, aber die Touch-Kalibrierung scheint nicht
> gut zu funktionieren. Hat da jemand einen funktionierenden Algorithmus
> am Start?

Nein, aber wie haste das LCD zum Laufen gekriegt? Hatte gestern noch die 
FreeRTOS 7.0.0 mit STs FwLib 3.5 zum Kompilieren gekriegt. Laeuft aber 
noch irgendwie nicht so recht...

von Arne S. (Gast)


Lesenswert?

Jetzt angemeldet.

Bin im Büro - daher alle Angaben ohne Gewähr.
Ist ein ILI9320 oder ILI9325. Dazu gibt es Source im I-Net (IIRC schon 
für STM32). Korrekt - ist mit GPIO angeschlossen.

> Nein, aber wie haste das LCD zum Laufen gekriegt?
Da die Frage recht allgemein gehalten ist, antworte ich mit einer 
allgemeinen Antwort: habe meinen Code nach Datasheet bzw. öffentlichen 
Source angepasst. Die Initialisierung ist sehr umfangreich. Aber danach 
braucht man i.d.R. nur den 16bit Write-Befehl ins GRAM.

Erster Treffer bei Google (STM32 ILI9320) ergab:
http://en.pudn.com/downloads183/sourcecode/embed/detail861512_en.html

Check mal die Links am Fuß der Seite.

ciao, Arne

von Michael A. (mukululul)


Lesenswert?

Hallo,
ich verwende ucos da mit dem Board ein port mitgekommen ist der auch 
einen LCD driver hat.
Auch die GUI Elemente sind recht beindruckend die ucos GUI mitbringt.

Gibt es für FreeRtos auch eine brauchbare GUI Library?

Wenn bei FreeRTOS GUI support gibt, also so widgets, dann wäre das für 
mich auch eine Option.

Den code können wir gerne mal austauschen.

Gruss
Michael

von Arne S. (Gast)


Lesenswert?

Bei ST gibt es die AN3128: STM32 embedded graphic objects/touchscreen 
library
Sourcecode und CHM im Firmware Bereich. Vielleicht haben die ja einen 
Kalibrierungsalg. fürs Touch? Muss ich mal schauen.

von Arne S. (Gast)


Lesenswert?

Die USB OTG Buchse: ist das eine Mini-B (B5) Buchse? Ich suche nämlich 
gerade ein passendes Adapterkabel.

von Michael A. (mukululul)


Lesenswert?

Die Projekte die bei dem Code dabei waren waren für Keil.
Daher hat der Startupcode (assembler) und das Linkerscript fuer den gcc 
hat gefehlt.

Keil ist der Meinung das Hobbisten nicht mehr wie 60k Binary linken 
wollen und haben daher die frei Lizenz auf 60k beschränkt. Das reicht 
für das grosse Demo nicht und da das Board 256k Flash hat wollte ich es 
auch nutzen.
Also bin ich auf eclipse um den gcc verwenden zu können.
Der gcc scheint etwas grösseren code zu bauen als der Keil aber dafür 
gibts keine Beschränkungen.

Gruss
Michael

von 900ss (900ss)


Lesenswert?

@Michael:
Vielleicht wäre das hier noch etwas für dich:
http://nuttx.sourceforge.net/

Da ist eine Grafik-Lib (NX Graphics) dabei.
Ich habe es noch nicht benutzt, beobachte aber schon länger das YAHOO 
Forum dazu.
http://tech.groups.yahoo.com/group/nuttx/

Der Entwickler scheint sehr recht engagiert zu sein.

von Claudius Z. (bbczeuz)


Lesenswert?

@900ss:
Danke fuer die Links: Scheint spannend. BSD Lizenz ist auch gut. Ob sich 
die NX Graphics Lib aus dem OS extrahieren laesst? Ueber die ST eigene 
Grafikbibliothek wird im ST-Forum ziehmlich abgelaestert...

@Arne:
Ich werde die Links und das Hex einmal testen, wenn ich dazu komme. Habe 
im Job (jetzt noch) mit anderen uC zu tun :(

von Dieter (Gast)


Lesenswert?

Arne schrieb:
> Ich habe dieses Board im Sommer auf ebay.de gekauft. Lieferung war aus
> D. Bei Interesse kann ich die Kontaktinfos raussuchen.
> Habe bisher wenig gemacht (nehme IAR 6.10/J-Link und Segger Libs).
>> Die Doku zum Board ist ja doch etwas spaerlich...
> Stromlaufplan ist aber dabei - sollte reichen, oder?

@Arne
wäre nett, wenn Du mir Kontaktinfos mitteilen könntest.
Was hat das Board damals gekostet?

Danke & Grüße
Dieter

von Arne (Gast)


Lesenswert?

Dieter schrieb:

> wäre nett, wenn Du mir Kontaktinfos mitteilen könntest.
eMail hab ich da, werde ich aber hier nicht öffentlich posten. Kannst 
Dich ja anmelden wg. PN
> Was hat das Board damals gekostet?
~100€

von Michael A. (mukululul)


Lesenswert?

Ich hab das Board erst vor ein paar Monaten gekauft. Da hat es 80 Euro 
gekostet. Im moment bekommt man es für ca. 70 Euro in ebay dot com.
Hab mir vor ein paar Wochen noch ein Board gekauft
STM32 STM32F103ZET6 development board + 3.2"Touch LCD
bei ebay dot com. Kostet ca. 55 Euro
512K Flash, 64KRAM On chip und extern 512K SRAM, 2MB NOR FLASH.
Also reichlich Speicher. Dieser hat leider keinen internen MII 
(Ethernet)
Aber sonst alles.

Gruss
Michael

von Dieter S. (Firma: Ing.Büro) (discha47)


Lesenswert?

Arne schrieb:
> Dieter schrieb:
>
>> wäre nett, wenn Du mir Kontaktinfos mitteilen könntest.
> eMail hab ich da, werde ich aber hier nicht öffentlich posten. Kannst
> Dich ja anmelden wg. PN
>> Was hat das Board damals gekostet?
> ~100€

hoffe, daß das Log-In noch funktioniert und das Verfallsdatum noch nicht 
überschritten ist ;-)
War immer zu faul um das einzutippen ...

Gruß
Dieter

von 900ss (900ss)


Lesenswert?

@Michael Andres (mukululul)

Das Board hat ja ein Ethernet Interface.
Was für ein TCP/IP Stack war denn bei der Demo dabei?
Ist das auch der von uc/OS gewesen oder war kein Stack dabei?

Danke dir
900ss

von Arne (Gast)


Lesenswert?

Gerad eben bei ebay . de geschaut: Das Board gibt es dort für 47,01€ 
inkl. p&p - allerdings aus China oder HongKong.

von Michael A. (mukululul)


Lesenswert?

Ich verwende den lwip1.3.1 stack und den STM devicedriver. Funktioniert 
ganz gut.
Bei Interesse kann ich das eclipse project zippen und zur 
verfügungstellen.
Gruss
Michael

von Michael A. (mukululul)


Lesenswert?

Das mit dem Versand aus China war bisher bei mir kein Problem. Die Ware 
ist immer angekommen. Hin und wieder dauert es etwas länger.
Das Board hat knapp 3 Wochen gedauert.

Gruss
Michael

von Ulrich P. (uprinz)


Lesenswert?

Hi!
Nur der Vollständigkeit halber :)

STM32F10x ist auch ins Nut/OS portiert und ich habe den damit sowohl 
privat als auch kommerziell im Einsatz. Toolchain ist ein beliebiger 
Editor, Yagarto und OpenOCD mit OpenOCD-USB Dongle.

Ethernet Unterstützung fehlt noch, ebenso ein Treiber für die LCDs auf 
dem STM EVAL Kits. Auch hier gilt BSD Lizenz.

www.ethernut.de
Der STM32 Port is auf Sourceforge im branch devnut_m3n. Kommt wohl mit 
dem Release 5.0.0 in den trunk.

Gruß, Ulrich

von Michael A. (mukululul)


Lesenswert?

Hallo Ulrich,
so wie ich das von der Beschreibung im Web verstehe stellt Nut/OS nur 
eine sehr rudimentäre Unterstutzung für Graphik zur verfügung. Da 
muesste man dann noch ein paar Widgets codieren.

Welchen Footprint hat das Nut/Os den auf dem M3?

Gruss
Michael

von Ulrich P. (uprinz)


Lesenswert?

Hi!

Grafik ist noch ein großes Mnko im Nut/OS, aber war auch ursprünglich 
nicht das Ziel. Ging mehr in Richtung Industrial Control.

Aufgrund der inwzischen großen Nachfrage, sollte sich das aber ändern. 
Ist jedenfall mein großes Ziel direkt nach der Fertigstellung des Ports 
für STM32F1xx und F2xx.

Der Footprint ist eine Frage dessen, was Du aus dem, OS alles 
verwendest. Ich habe einen CAN Bootloader mit einem kleinen CANopen 
Stack in weniger als 8k laufen.
Andererseits läuft auf Basis Nut/OS auch ein Internet-Radio mit WEB 
Oberfläche zur Steuerung auf einem ATmega128.

Andere Dinge, die ich so gemacht habe, wie Sensoren mit Funkstack oder 
CANopen Stack lagen alle so bei 30..50k total, also inkl. dem 
eigentlichen Applikationscode.

Gruß, Ulrich

von Michael A. (mukululul)


Lesenswert?

Hallo Ulrich,
8k flash oder sram?
Gruss
Michael

von Ulrich P. (uprinz)


Lesenswert?

Sorry, hatte nicht nachgedacht.
8k FLASH. SRAM habe ich dabei noch garnicht geprüft. 20k, die meine 
STM32F103 haben, ist halt reichlich.  Nut/OS ist aber auf eben dieses 
Szenario optimiert, viel FLASH, wenig RAM.
Auch da ist es immer eine Frage, was man denn nebenbei so braucht. Wenn 
Du einen USART nicht registrierst, wird auch kein Byte für ihn 
verbraucht. Dito bei I2C oder anderen Devices. Daher ist es jetzt schwer 
zu sagen, was das Nut/OS definitiv für sich alleine benötigt.
Meine Sensoren haben recht komplexe Abbilder der CANopen Variablen und 
Konstanten im RAM, dazu noch MesswertFiFos für die Mittelung, Puffer für 
USARTs oder ähnliches und es sind immer noch mind. 8k von 20k frei. 
Dabei habe ich beim Verteilen des Heaps auf die Threads großzügig die 
Gießkanne angesetzt. Es sind einige Threads, die 512 Bytes zugeteilt 
bekommen haben, aber davon 350 nie genutzt haben. (Das kann man 
schickerweise prüfen).

Ich kann da aber mal was ausprobieren. Es gibt eine Funktion, die einem 
die Speichernutzung und Threads und so weiter auflistet. Deren Ausgabe 
könnte ich mir irgendwo ins RAM packen und dann per JTAG auslesen, ohne 
vorher auch nur einen USART zu registrieren.

Auf der anderen Seite kann man mit einem Konfigurator unter Win oder 
Linux auch einfach alle möglichen Stellschrauben auf seine Anwendung hin 
verstellen und das System neu bauen. Ich denke, man kommt auf etwa 
1,5..2k RAM runter. 256 Bytes Für die Stacks (MSP/PSP) 256bytes für 
IdleTask und MainTask, plus etwas Logistik drum herum. Der Rest steht 
dem Heap zur Verfügung und man kann es frei auf die eigenen Threads und 
Daten verteilen.

Was mich ein wenig begeistert hat, war die Tatsache, dass wir die STM32 
mit 72MHz eingeplant hatten. Nun laufen alle Sensoren mit 16Mhz bei max. 
100mW (Wenn auch alle LEDs an sind). Trotzdem keine Verzögerungen die 
die Anforderungen überschreiten. Ich vermute, dass das Zusammenspiel von 
STM und der Optimierung auf 'die Kleinen' vom Nut/OS da recht perfekt 
funktioniert.

Nur eine ganz fiese Sache macht mich gerade fertig. Ich schaffe es nicht 
aus meinem Bootloader in das Nut/OS zu wechseln, ohne dass es einen 
HardFault oder BusFault gibt. Aber das bekomme ich auch noch hin.

Gruß, Ulrich

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.