Forum: Mikrocontroller und Digitale Elektronik Software von ST


von guru (Gast)


Lesenswert?

Vielleicht bin ich einfach nur blind, aber irgendwie fällt es mir schwer 
heute Softwarebeispiele von ST zu finden. Zumindest scheint es kaum noch 
Source Code zu geben an dem man "mal eben" herankommt nachdem die Ihre 
Seite umgestellt haben.

ich will die Software des STM32 digital PFC einsehen, aber statt der 
pfc.c die es früher wohl mal gab gibt es nur noch die halb Internet 
basierten Software Applikationen.
Es ist schwer das zu erklären, früher gab es alles, heute muss man 
gewaltigen Softwareoverhead aufladen um "vielleicht" etwas zu finden.

Gibt es noch ne Seite mit "alten" ST Source Codes, oder darf man jetzt 
alles unter NDA anfragen, wo man als kleines Licht nichts mehr bekommt.

Konkret würde mich die Software zum STEVAL-ISF002V1 Board interessieren.

von W.S. (Gast)


Lesenswert?

guru schrieb:
> Zumindest scheint es kaum noch
> Source Code zu geben

Das ist ja mal eine unerwartet positive Nachricht.

W.S.

von Nop (Gast)


Lesenswert?

W.S. schrieb:
> Das ist ja mal eine unerwartet positive Nachricht.

Eventuell wuchs ST das ja über den Kopf mit den ganzen Laien, die besser 
mit Arduino irgendwas zusammenklicken sollten - das sind nämlich die, 
welche den ST-Code nicht als Beispiel, sondern als Produktivcode zum 
Ersatz fürs Handbuchlesen mißverstanden haben.

von Blub (Gast)


Lesenswert?

ST forciert ihr STM32CubeMX ... 4GB installieren für ein wenig Source 
Code ...

von Axel S. (a-za-z0-9)


Lesenswert?

guru schrieb:
> ich will die Software des STM32 digital PFC einsehen, aber statt der
> pfc.c die es früher wohl mal gab gibt es nur noch die halb Internet
> basierten Software Applikationen.
...
> Konkret würde mich die Software zum STEVAL-ISF002V1 Board interessieren.

Ich habe mir auch gerade den Wolf gesucht nach den Firmware-Beispielen 
für das STM32L053 Discovery Board [1]. Diese hat ST im STM32CubeL0 Paket 
versteckt. 70MB ZIP zu Downloaden, obwohl mich nur einige 10KB daraus 
interessieren ...

[1] Beitrag "Schnäppchen: STM32L053-Disco mit ePaper-Display für <8€"

von Christopher J. (christopher_j23)


Lesenswert?

guru schrieb:
> Zumindest scheint es kaum noch
> Source Code zu geben an dem man "mal eben" herankommt nachdem die Ihre
> Seite umgestellt haben.

Das ist halt jetzt alles viel benutzerfreundlicher gestaltet...

Axel S. schrieb:
> 70MB ZIP zu Downloaden, obwohl mich nur einige 10KB daraus
> interessieren ...

Der Registrierungszwang für die Downloads ist ebenso ein Witz. ST mag 
gute Hardware herstellen aber mit Software scheinen die es nicht so zu 
haben.

Es könnt' alles so einfach sein, is' es aber nicht...

https://www.youtube.com/watch?v=97yxhKL5AUw

von Bernd K. (prof7bit)


Lesenswert?

Diese Unsitte greift auch bei anderen Herstellern umsich.

Momentan suche ich zum Beispiel ein paar Codeschnipseln um die 
USB-Peripherie eines Kinetis in Betrieb zu nehmen, es wird wohl darauf 
hinauslaufen das komplette Kinetis-Design Studio zu installieren, eine 
halbe Tonne hässlichsten Codes mit dem Assistenten generieren zu lassen 
und dann den Rest der Woche damit verbringen die benötigten geschätzten 
10kB vorsichtig aus der resultierenden riesigen verwachsenen Müllhalde 
herauszuamputieren und in eine benutzbare Form zu überführen.

Offenbar besteht das Zielpublikum nur noch aus dressierten Klickaffen 
die nur noch Anwendungen bauen (lassen) für die irgendein Wizard 
automatisch generierten Code ausspucken kann, und wenn das nicht passt 
nimmt man einfach einen größeren Controller oder zwei davon.

von Jack (Gast)


Lesenswert?

Christopher J. schrieb:
> ST mag
> gute Hardware herstellen aber mit Software scheinen die es nicht so zu
> haben.

Das ist bei allen Hardwareherstellern so. Software ist ein nerviger 
Kostenfaktor, die Könige der Firma sind die Hardware-Ingenieure, die 
notfalls die Software nebenbei hinrotzen - kann ja nicht so schwer sein.

von Gästchen (Gast)


Lesenswert?

Blub schrieb:
> ST forciert ihr STM32CubeMX ... 4GB installieren für ein wenig
> Source
> Code ...

Das Problem dabei: Man macht sein Projekt unter Umständen von einer 
bestimmten Version dieser Bloatware abhängig.

Und wenn man in 3 Jahren eine winzige Änderung im Projekt machen will, 
compiliert der Quatsch nicht mehr, weil man für ein neueres Projekt eine 
neue Version von CUBEMX installiert hat. *1)
Dann rollt man entweder die ganze IDE auf einen (nicht mehr 
downloadbare) Stand zurück, oder sucht das Problem. Eine winzige 
Änderung dauert  dann ewig.

Mich nagelt das privat auf PIC24 und PIC32 fest. Dort habe ich meine 
selber geschriebenen Treiber für fast alles (Abgetippt aus dem 
Datenblatt), ohne PLIB, Harmony und ähnlichen Quatsch. Die kenne ich, 
und die compilieren auch 17 Versionen später immer noch und laufen.
D.h. das ist (für mich) wartbar.

Im Gegensatz zu meinem allerersten PIC32 Projekt. Das basiert auf der 
peripheral Lib, einem alten Stand. Uncompilierbar...

Wollte mir schon lange mal STM32L ansehen, aber da habe ich die Wahl 
zwischen Pest, Aids und Cholera:
- STM32 peripheral lib (sie mag mich nicht, ich sie auch nicht:-))
- CUBE-MX : oben beschriebenes Problem
- Alle Treiber NOCHMAL selber schreiben - geht zwar, bin aber zu faul

*1) so passiert in unserer Firma

von Schall und Rauch (Gast)


Lesenswert?

Christopher J. schrieb:
> Der Registrierungszwang für die Downloads

lässt sich mit ein bisschen URL-Bearbeitung bzw. Vergleich mit 
registrierungsfreien Download-Links vermeiden. Siehe auch Direktlinks 
hier im Wiki.

von guru (Gast)


Lesenswert?

Na ja, schlechter Code ist besser als gar keiner, die Datei die ich 
suche ist nicht mal eben zu finden, sie war Bestandteil einer für das 
Kit programmierten Software. Cube u.s.w. nutzt mir da auch nichts.

Werde mal bei ST fragen, aber fürn "Popo" ist es trotzdem, diese ätzende 
Sucherei bei ST.

von Christopher J. (christopher_j23)


Lesenswert?

Bernd K. schrieb:
> Momentan suche ich zum Beispiel ein paar Codeschnipseln um die
> USB-Peripherie eines Kinetis in Betrieb zu nehmen, es wird wohl darauf
> hinauslaufen das komplette Kinetis-Design Studio zu installieren, eine
> halbe Tonne hässlichsten Codes mit dem Assistenten generieren zu lassen
> und dann den Rest der Woche damit verbringen die benötigten geschätzten
> 10kB vorsichtig aus der resultierenden riesigen verwachsenen Müllhalde
> herauszuamputieren und in eine benutzbare Form zu überführen.

Du kannst das "Kinetis SDK" installieren, ohne die eigentliche IDE zu 
installieren. Darin sind die Treiber, als auch Beispiele enthalten. 
Netterweise gibt es bei den Beispielen neben Projektdateien für IAR, 
Keil und Co auch noch CMake als Option. Ein USB-CDC Beispiel für ein 
Freedom K64F findest du etwa für das KSDK 1.3 in 
KSDK_1.3.0/examples/frdmk64f/demo_apps/usb/device/cdc/virtual_com/bm/arm 
gcc/

Version 2.0 des KSDK wird nach Bedarf direkt für den Prozessor 
generiert. Ist etwas müßig und fummelig bis man sich auf der NXP 
Homepage durchgeklickt hat bis man das endlich herunterladen kann aber 
alles in allem macht Freescale mMn was Software angeht einen wesentlich 
besseren Job als ST.

Bernd K. schrieb:
> Offenbar besteht das Zielpublikum nur noch aus dressierten Klickaffen
> die nur noch Anwendungen bauen (lassen) für die irgendein Wizard
> automatisch generierten Code ausspucken kann, und wenn das nicht passt
> nimmt man einfach einen größeren Controller oder zwei davon.

Das stimmt allerdings (leider) trotzdem.


Schall und Rauch schrieb:
> lässt sich mit ein bisschen URL-Bearbeitung bzw. Vergleich mit
> registrierungsfreien Download-Links vermeiden. Siehe auch Direktlinks
> hier im Wiki.

Das wusste ich noch nicht aber es passt zu meinem Eindruck von ST, dass 
die ganze Registrierung letztendlich für die Katz ist.


Jack schrieb:
> Das ist bei allen Hardwareherstellern so. Software ist ein nerviger
> Kostenfaktor, die Könige der Firma sind die Hardware-Ingenieure, die
> notfalls die Software nebenbei hinrotzen - kann ja nicht so schwer sein.

Dokumentation scheint auch ein nerviger Faktor zu sein. In der AN4776 
("General purpose timer cookbook") von ST sind zwischendrin auch mal ein 
paar Zeilen französischer Text zu lesen. Das ist an sich ja kein 
Weltuntergang aber es zeigt doch welchen Status das Schreiben von 
Dokumentation bei ST hat.

von Phil J. (exloermond)


Lesenswert?

Wenn man erst einmal den Fuß im Markt hat (STm32..)...
Man muss ja auch bedenken das die Dinger doch recht günstig sind.

Oder du kaufst teurer zum Beispiel bei Maxim. Die stellen sogar 
"Algorithmen" online. Wobei ob die Qualität dann auch so gut ist wage 
ich zu bezweifeln ;-)

von W.S. (Gast)


Lesenswert?

Bernd K. schrieb:
> Momentan suche ich zum Beispiel ein paar Codeschnipseln um die
> USB-Peripherie eines Kinetis...

Bist du dir wirklich sicher, daß du das tun willst? Oder MUSST du das 
tun? Als ich beim Lesen der Dokus endlich begriffen habe, daß deren 
Taktversorgung zu schlecht ist, um daraus einen brauchbaren 48 MHz für 
den USB zu machen, ist mir jegliche Lust am Thema USB mit Kinetis 
vergangen. Entweder prügelt man auf den Quarzeingang mit einem externen 
48 MHz Quarzoszi ein oder man kriegt Stress mit dem internen 48 MHz 
RC-Oszi, der natürlch erstmal per HW+SW (Marke Mampe halb&halb) 
kalibriert sein will.

Wenn du kannst, nimm nen anderen µC für sowas.


Christopher J. schrieb:
> aber
> alles in allem macht Freescale mMn was Software angeht einen wesentlich
> besseren Job als ST.

Ich schätze, HW * SW ist ne Art Konstante.

W.S.

von Bernd K. (prof7bit)


Lesenswert?

W.S. schrieb:
> daß deren
> Taktversorgung zu schlecht ist, um daraus einen brauchbaren 48 MHz für
> den USB zu machen, ist mir jegliche Lust am Thema USB mit Kinetis
> vergangen. Entweder prügelt man auf den Quarzeingang mit einem externen
> 48 MHz Quarzoszi ein

Nein, warum? Wovon sprichst Du? 4MHz oder 8MHz Quarz dran, PLL auf 96MHz 
stellen und gut ist.

Was ich im Moment viel hinderlicher finde ist die Tatsache daß es für 
die KLxxZ32 Varianten (32k Flash) scheinbar unmöglich ist mit den 
offiziellen Tools (KDS, SDK, Processor-Expert) ein leeres Projekt (nur 
USB, sonst nichts) zu erzeugen das mit weniger als 32k Flash auskommt.

Also wer gesagt hat daß Kinetis an der Softwarefront weniger Schrott 
bauen würde als ST, das kann mich nicht so recht überzeugen. Ich hab mal 
ganz naiv das getan was die anderen User auch machen (sollen): KDS 
installiert, SDK installiert, neues Projekt erzeugt (ohne alles): 10kB 
Flash. -Os: immer noch 8kB.

Das ist mehr als ich bei ST je gesehen habe, da waren es glaub ich nur 
4k und auch das erst als ich angefangen habe GPIO zu benutzen.

Jetzt noch die Usb-HID-Maus-Komponente reingezogen: Game over: region 
`m_text' overflowed by 3092 bytes

Ich bin grad ein bisschen sprachlos, aber ich will jetzt auch nicht den 
Thread kapern der ja um ST-Software geht. Ich hab nur den Eindruck daß 
es bei Freescale/NXP kein bisschen rosiger aussieht und man wenn man die 
kleineren Prozessoren verwenden will den zusammengeklickten 
HAL-SDK-Monster-Bloat nicht mehr sinnvoll einsetzen kann und eh alles Zu 
Fuß implementieren muß (dann kommt man locker unter 4k) aber wenn man 
diesen Weg gehen muß bekommt man Null Hilfestellung.

von Nico W. (nico_w)


Lesenswert?

Bernd K. schrieb:
> 10kB
> Flash. -Os: immer noch 8kB.

Omg, meine ganze Firmware für einen 3D-Drucker hat auf meinem Nucleo 
F411RE gerade einmal 12kB. Mit SPI, ADC über DMA, ein paar Timer und was 
man sonst so noch gerade braucht.

Natürlich ohne irgend eine Lib von STM.

: Bearbeitet durch User
von Nop (Gast)


Lesenswert?

Bernd K. schrieb:
> KDS installiert, SDK installiert, neues Projekt erzeugt (ohne alles):
> 10kB Flash.

Welchen Compiler nutzt Du? GCC? Dann kann's an printf liegen, das 
irgendwer irgendwo unnützerweise da reingepfriemelt hat. Entweder mal 
mit nanolib linken oder ganz ohne Libs und gucken, ob der Linker mault.

von Bernd K. (prof7bit)


Lesenswert?

Nop schrieb:
> Welchen Compiler nutzt Du? GCC? Dann kann's an printf liegen, das
> irgendwer irgendwo unnützerweise da reingepfriemelt hat. Entweder mal
> mit nanolib linken oder ganz ohne Libs und gucken, ob der Linker mault.

Das nutzt das was mir deren Installationsprogramm auf die Festplatte 
geklatscht hat, also laut deren Aussagen ein gemoddeter gcc (nicht das 
Orginal von Launchpad, aber egal) und der "irgendwer" der da ein printf 
reingefriemelt hat scheint bei Freescale zu arbeiten und irgendwie nicht 
ganz den Zweck seiner Aufgabenstellung erfasst zu haben, denn das hätte 
ein leeres Projekt (nicht mal Blinky oder dergleichen) sein sollen, 
dennoch strotzt der erzeugte Code nur so von printf-Geraffel und zwei 
Dutzend verschiedenen Integer-Divisions und Multiplikationsroutinen in 
allen Varianten, signed und unsigned, lang und kurz und wahrscheinlich 
ist auch noch ne halbe Tonne float mit drin, ich musste relativ schnell 
meinen Blick abwenden weil mir übel wurde.

Ich hab keine Lust nachträglich an deren generiertem Code herumzudoktorn 
(der übrigens so hässlich aussieht daß es die Sau graust und auch 
gefühlt jede dritte Zeile von einem #ifdef ausgegraut ist).

Entweder das würde funktioniern und ich könnte mich damit abfinden das 
als Black-Box zu nutzen und einfach niemals einen Blick in diesen 
generierten Saustall reinzuwerfen oder der generierte Code ist komplett 
für die Tonne weil demjenigen der den Codegenerator und die Fragmente 
die dieser ins Projekt erbricht entworfen hat niemand gesagt hat daß es 
hier um embedded (klein und leichtgewichtig, passend zu den kleinen 
Freescale Kinetis MCUs) geht und nicht um tonnenschwere Anwendungen für 
Windows Desktops. Ich tendiere stark zur Tonne.

von Dr. Sommer (Gast)


Lesenswert?

Würde der generierte Code kein printf (mit allen Integer und Float 
Datentypen - daher die ganzen Konvertierungsfunktionen) und malloc 
unterstützen, würde der nächste jammern. Egal wie man es macht, ist es 
falsch... Anstatt wortreich zu lästern sollte man die entsprechenden 
Dateien und Linker Flags rauswerfen und sich freuen.

von Olaf (Gast)


Lesenswert?

> für die Tonne weil demjenigen der den Codegenerator und die Fragmente
> die dieser ins Projekt erbricht entworfen hat niemand gesagt hat daß es

Reg dich nicht auf. Diejenigen die so einen Kram schreiben das sind 
Studenten die fuer ein paar Taler nebenbei fuer ST arbeiten.

Und diejenigen die sowas nutzen sind Bacherlors frisch von der Uni.

Olaf

von Bernd K. (prof7bit)


Lesenswert?

Dr. Sommer schrieb:
> Anstatt wortreich zu lästern sollte man die entsprechenden Dateien und
> Linker Flags rauswerfen und sich freuen.

Und dann tagelang den kaputten generierten Code flicken damit er wieder 
funktioniert? Und danach die tolle neue IDE nicht mehr verwenden können? 
Also die Nachteile aus beiden Welten vereinen? Nein danke.

von Nop (Gast)


Lesenswert?

Bernd K. schrieb:
> dennoch strotzt der erzeugte Code nur so von printf-Geraffel und zwei
> Dutzend verschiedenen Integer-Divisions und Multiplikationsroutinen in
> allen Varianten, signed und unsigned, lang und kurz und wahrscheinlich
> ist auch noch ne halbe Tonne float mit drin

OMG.. ja, da hat man in der Tat keine Fragen mehr offen. Eventuell ist 
das ja auch als Verkaufshilfe für die größeren, teureren Controller zu 
sehen. Andererseits soll man ja nie mit planvollem Handeln erklären, was 
sich auch durch Unfähigkeit erklären läßt.

von W.S. (Gast)


Lesenswert?

Bernd K. schrieb:
> Nein, warum? Wovon sprichst Du? 4MHz oder 8MHz Quarz dran, PLL auf 96MHz
> stellen und gut ist.

Wovon schreibst du?
Also, die Typen, die ich unter den Fingern gehabt habe, besitzen keine 
PLL, sondern nur eine sogenannte FLL.
Und deren input ist 32..39 kHz und keine 4 oder 8 MHz. Man kann zwar 
4..8 MHz verwenden, aber nur dann, wenn man deren Takt auf den Bereich 
32..39 kHz herunterteilt. Und dafür gibt es nicht mal nen frei 
einstellbaren Teiler, sondern nur was fest eingestelltes. Tja, und deas 
Signal eben diser FLL ist das Grausige. Lies mal die Appnotes von 
Freescale zu diesem Thema. Da schüttelt es einen.

Mal ein paar Auszüge aus dem Refman zum MK22F128:
"IRC48 with clock-recovery is supported to eliminate the 48 MHz crystal. 
It is used for USB device-only implementation."

"41.4.29 USB Clock recovery control (USBx_CLK_RECOVER_CTRL)
Signals in this register control the crystal-less USB clock mode in 
which the internal IRC48M oscillator is tuned to match the clock 
extracted from the incoming USB data stream."

Reicht's?

W.S.

von Bernd K. (prof7bit)


Lesenswert?

W.S. schrieb:
> Wovon schreibst du?
> Also, die Typen, die ich unter den Fingern gehabt habe, besitzen keine
> PLL, sondern nur eine sogenannte FLL.

Der KL26Z32 (der kleinste aus der L-Reihe mit USB und der den ich 
verwenden will) hat auch eine PLL die man stattdessen verwenden kann. 
Die größeren wahrscheinlich erst recht.

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.