Hallo,
ich möchte Programme in C und Assembly für den Pico schreiben.
Dazu habe ich VS Code unter Windows 10 eingerichtet so wie es hier
beschrieben steht:
https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf
Das kompilieren der Testprogramme hat auch erfolgreich funktioniert,
aber wie erstelle ich jetzt mein eignes Projekt.
Es scheint irgendwie so, dass ich CMake lernen muss und unter jedem neu
angelegten Projekt ein pico-sdk-import.cmake und CMakeLists.txt
einbinden muss welches ich nach jeder Änderung am Projekt bearbeiten
muss.
Liege ich mit der Annahme erstmal richtig?
c-hater schrieb:> Meme schrieb:>>> Es scheint irgendwie so, dass ich CMake lernen muss>> Darauf läuft es hinaus, ja.
Und, das möchte ich noch ergänzen: Das Buildsystem strotzt nur so von
Fehlern. Es wurde ganz sicher zumindest unter Windows niemals ernsthaft
getestet. Es ist dort gerade hinreichend funktional, um exakt 1 (in
Worten: EINEN) build hinzubekommen. Nur die Examples darf man auch
mehrfach bauen. Naja, zumindest solange man nichts an den Quelltexten
ändert. Es genügt bereits eine eingefügte Kommentarzeile in irgendeiner
C-Source, damit auch dort derselbe Effekt eintritt: läßt sich nicht mehr
bauen.
Erst die komplette Löschung des build-Verzeichnisses und erneutes
Configure ermöglicht dann wieder genau EINEN Build.
Krank, absolut krank. Da haben die Herren CLI-Frickler mal wieder das
abgeliefert, was sie am Besten können: kompletten Bullshit. Portabel? Da
lach' ich drüber.
Und, unnötig zu erwähnen, natürlich ist auch die Fehlermeldung
vollkommener Bullshit: [build] ninja: error:
FindFirstFileExA(c/:/users/...
Erstmal: Ja, das weist auf einen bekannten und angeblich ausgemerzten
Fehler hin. Zweitens: Warum passiert das beim ersten Build nicht,
sondern erst beim zweiten?
Zusammenfassung: Bis dieser Scheiß ernsthaft benutzbar wird, geht sicher
noch einige Zeit in's Land...
c-hater-hater schrieb im Beitrag #6587136:
> [ ] Dir ist klar, dass so ziemlich jede GUI-IDE im Hintergrund einen> CLI-Build mit den üblichen Tools laufen hat.> [x] Nicht.
Doch, natürlich ist mir das klar. Ich bin halt nur gewohnt, dass die
dann auch tatsächlich funktionieren...
> Nein, in erster Linie weist das darauf hin dass du die Anleitung nicht> gelesen hast.
Da liegst du definitiv falsch. Wie schon gesagt: ein Build funktioniert
ja, auch mehrere, solange sich nichts an den Quellen ändert (weil dann
natürlich nicht wirklich mehr irgendwas passiert).
Das Problem tritt erst auf, sobald sich an irgendeiner Quelle
tatsächlich etwas ändert, und sei es auch nur eine zusätzliche
Kommentarzeile...
> Aber substanzloses Gelaber ist man ja gewohnt von dir.
Du bist so substanzlos, wie es nur geht!
c-hater schrieb:>> Nein, in erster Linie weist das darauf hin dass du die Anleitung nicht>> gelesen hast.>> Da liegst du definitiv falsch.
Du sollst nmake verwenden, nicht ninja.
c-hater schrieb:> Du bist so substanzlos, wie es nur geht!
Wow, deine Argumentation ist gewohnt überragend.
c-hater-hater schrieb:> Du sollst nmake verwenden, nicht ninja.
Das sagt die Doku so nicht. Die bietet das nur als Alternative an.
Für den Fall, dass man einen Sockenschuss hat und unbedingt auf der
Kommandozeile bauen will statt die komfortable CMake-Integration der
VSCode-IDE zu benutzen...
Die übrigens unter Linux tatsächlich funktioniert, das habe ich
natürlich ebenfalls ausprobiert...
c-hater schrieb:> Das sagt die Doku so nicht. Die bietet das nur als Alternative an.
Du kannst also tatsächlich nicht lesen.
c-hater schrieb:> Für den Fall, dass man einen Sockenschuss hat und unbedingt auf der> Kommandozeile bauen will statt die komfortable CMake-Integration der> VSCode-IDE zu benutzen...
Mal abgesehen davon, dass natürlich VSCode auch die Kommandozeile als
Backend nutzt:
> If you do not change the "Cmake: Generator" Visual Studio will default to> ninja and the build might fail.
c-hater, der menschgewordene Dunning-Kruger-Effekt.
c-hater-hater schrieb:>> If you do not change the "Cmake: Generator" Visual Studio will default to>> ninja and the build might fail.>> c-hater, der menschgewordene Dunning-Kruger-Effekt.
Oh Gott, lass Hirn wachsen.
1. Es geht um Visual Studio Code, nicht Visual Studio. Das sind zwei
völlig verschiedene Sachen.
2. Dein Zitat stammt nicht aus der Doku zum RasPi Pico sondern aus
irgendwelchen Microsoft-Verlautbarungen zum Visual Studio.
3. Der Build funktioniert. Aber eben nur genau einmal wirklich.
c-hater schrieb:> 1. Es geht um Visual Studio Code, nicht Visual Studio. Das sind zwei> völlig verschiedene Sachen.
Ach ne, sag bloß. Hättest du die Raspberry-Doku gelesen (wurde im
Eingangsposting sogar verlinkt), wüsstest du, dass die VSCode dort
ständig als "Visual Studio" bezeichnen.
c-hater schrieb:> 2. Dein Zitat stammt nicht aus der Doku zum RasPi Pico sondern aus> irgendwelchen Microsoft-Verlautbarungen zum Visual Studio.
Doch. "getting-started-with-pico.pdf" (eingangs verlinkt), Seite 40,
"8.2.4. Building "Hello World" from Visual Studio Code". Du hast die
Doku also tasächlich nicht gelesen.
c-hater schrieb:> 3. Der Build funktioniert. Aber eben nur genau einmal wirklich.
Ja, weil du die Doku nicht gelesen hast. Hättest du das getan, würde er
immer funktionieren.
Blamierst du dich eigentlich absichtlich?
Das hier sieht ziemlich gut aus:
https://github.com/Wiz-IO/wizio-pico
Im Gegensatz zu dem was von der Raspberry Foundation kam bestand die
Installation nur darin einen Link in PlatformIO zu installieren und
das Beispiel hat sofort ohne zu Murren compiliert.
Jetzt wäre nur mal praktisch wenn man das Programm neu flashen könnte
ohne das Board vom USB trennen zu müssen...
Und natürlich auch ohne irgendwelche Taster drücken zu müssen.
So über den vorhandenen USB, ohne an die Debug-Pins noch was anderes
anklemmen zu müssen.
Habe ich gerade gelesen daß Segger's jlink diese microcontroller
unterstützt. Die Pressrelease spricht auch über den Embedded Studio. Da
ich Embedded Studio für andere ARM (STM) microcontroller benutze habe
ich gedacht daß auch so en "RPi Pico" package gibt... bis jetzt
nichts... VSCode soll aber funktionieren. Mal sehen wann Reichelt die
Platinchen liefert :)
Alex P. schrieb:> Mal sehen wann Reichelt die> Platinchen liefert :)
Wenn ich dir einen Rat geben darf: Reichelt hat den Preis auf 4,95€
gesetzt, und es ist „z.Zt. ausverkauft“. Sertronics/Berrybase hat über
4k davon auf Lager, und verkauft die für 4,10€.
So, ein RPi Pico Platinchen liegt bei mir. But Embedded Studio scheint
nicht mir helfen zu wollen:
Laut diese 2 Posts:
https://forum.segger.com/index.php/Thread/7900-Embedded-Studio-RP2040-Support/https://www.segger.com/news/?tx_news_pi1%5Baction%5D=%20detail&tx_news_pi1%5Bcontroller%5D=News&tx_news_pi1%5Bnews%5D=413&cHash=2e47bb69304c494dcdc13d70e0a93f15
Ist die Unterstützung da.
Aber wenn ich den Package Manager in EMbedded Studio 4.52, gerade
installiert, auf mache, gibt es kein Packet für den RP2040. Ich hab
Aktualisiert (den Knopf da im Package Manager, die Liste auch), markiert
"Dsiplay ALL" und "Include evaluation and full packages"... nix.
(irgendwo ist geschrieben daß für den RP204 einen J-Link v11 nötig
wäre... ist das auch wahr ? :/ Wofür ist meine v 9 noch nutzlich ?
PIC32 geht nicht mehr, irgend einen updated FW hat die kompatibilität
mit MPLABX zerstört, STMs gehen noch, RISCV geht nich... RP2040
wahrscheinlich auch net.... das Ding war nicht besonders billig... :(...
CMake ich sehe dich (leider) in meiner Zukunf...
/rant
Wirf das
> RPi Pico Platinchen
in den Rundordner.
Viel Hype um nichts.
Wenn ein ARM M0 reicht, greife ich zu STMD32F030.
Um den hat keiner viel Aufhebens gemacht.
Bekommt/Bekam man in 10er Stueckzahlen fuer 70 ct aus China.
Fuer die gibt/gab es auch eine freie Version des Keilcompilers.
> einen updated FW hat die kompatibilität mit MPLABX zerstört
Meinen noch viel aelteren V8 hat es neulich auch dahingerafft.
Aber dank Samba und einer frischen Firmware gehts im wieder gut.
Die V9 verwendet doch einen STM32F205?
... schrieb:> Wenn ein ARM M0 reicht, greife ich zu STMD32F030.> Um den hat keiner viel Aufhebens gemacht.
Vermutlich gemeint eher: STM32F030. Von einem STMD32F030 hat nichtmal
Google jemals irgendwas gehört. (Könnte sich nach diesem Thread
natürlich ändern ;o)
Vielleicht, weil er keine zwei Kerne hat und auch keine 8 zusätzlichen
CoProzessoren für schnelles Pin-Geklimpere.
Vielleicht aber auch deshalb, weil er sehr viel weniger RAM, Flash und
Takt hat als der Pico.
Vielleicht aber auch deshalb, weil er nicht als fertiges Platinchen
daherkommt, was einerseits quasi sofort auf Prototypen-Boards jeder Art
benutzbar ist, andererseits aber auch problemlos als Modul auf ein
Träger-PCB gelötet werden kann.
Sehr wahrscheinlich ist es aber das Zusammentreffen all dieser Punkte,
warum das Teil keine besondere Erwähnung wert war, der Pico hingegen
schon.
Der Pico ist schon ein sehr nettes kleines übersichtliches Teil mit sehr
viel Leistungspotential, für das man sonst eher im M3- oder M4-Bereich
einkaufen müsste.
Das Ding ist nun seit ein paar Tagen auch in der Türkei erhältlich und
eigentlich wollte ich gleich ein paar bestellen; aber dann habe ich
davon Abstand genommen. Ich möchte mal sehen, ob die nackten Chips
irgendwann mal bei Digikey & Co. erhältlich sein werden. Denn Boards,
die ich in der Vergangheit mit einem euphorischen "Toll!" bestellt
hatte, habe ich genug in der Schublade :)
Mehmet K. schrieb:> Ich möchte mal sehen, ob die nackten Chips> irgendwann mal bei Digikey & Co. erhältlich sein werden.
Mit dem Chip versehene Boards sind jedenfalls schonmal vier bei Digikey
gelistet.
Das Problem mit dem Chip ist sein Package – das ist nicht so wirklich
bastler-/handlötfreundlich, und Flash ist ja auch noch extern
angebunden, so dass es schon keine zu schlechte Idee war, das zunächst
fertig auf dem Breakout-Board, das der Pico ja nunmal irgendwie ist,
rauszubringen.
Moin, -
Mehmet K. schrieb:> Denn Boards,> die ich in der Vergangheit mit einem euphorischen "Toll!" bestellt> hatte, habe ich genug in der Schublade :)
Verwandte Seele!
Gruesse
Th.
Mehmet K. schrieb:> Ich möchte mal sehen, ob die nackten Chips irgendwann mal bei Digikey &> Co. erhältlich sein werden.
Ich gehe jedenfalls ganz fest davon aus, denn anders gefragt:
Warum sollten sie den nackten Chip nicht vermarkten?
Im Gegensatz zu den Broadcom-CPUs auf den Raspberry Pis liegt es doch
diesmal komplett in deren Hand, ob überhaupt und wenn ja, an wen sie die
Dinger verkaufen und nachdem das Teil jetzt wohl so spottbillig zu
produzieren ist ("bonding and packaging is more expensive than the die
itself") sind doch jetzt die hauptsächlichen Kosten die
Entwicklungskosten. Die wiederum werden aber nicht geringer wenn sie den
Controller für sich behalten, im Gegenteil: Je mehr sie davon verkaufen,
desto eher holen sie die wieder rein.
> an wen sie die Dinger verkaufen
Es sind schlappe M0. Die koennen nicht mal 32 bit mit 32 bit
zu 64 bit multiplizieren. Wer will sowas schon.
Jeder M3. und erst recht M4 oder M7 rauchen die in der Pfeife,
... schrieb im Beitrag #6638810:
> Jede Multiplikation in der nativen Wortbreite braucht das.> Selten ist was anderes.
Komisch dass das schon 4 bit Taschenrechner ohne Problem schafften. Mein
kleiner Sohn kann es auch, indem er die Zahl in Dezimale Ziffern
zerlegt. Auch der muss sich keine 64 Bit merken können.
Du tust ja gerade so, als sei es für den Cortex M0 unmöglich, zwei 32
bit Zahlen zu multiplizieren. Wenn man das wirklich mal braucht, dann
kann man es auch tun. Ist zwar langsamer aber geht. Und da man das nur
selten braucht, kann man (nur du nicht) auch meistens damit leben.
Bist so ein hardcore Assembler Programmierer, der andere Sprachen
ablehnt? Das würde diese Sichtweise erklären. ARM Cortex wurde nicht für
Assembler optimiert.
Stefan ⛄ F. schrieb:> Bist so ein hardcore Assembler Programmierer, der andere Sprachen> ablehnt? Das würde diese Sichtweise erklären.
Das ist doch Quatsch. Assemblerprogrammierer machen es erst möglich,
dass C-only-Fritzen eine 32x32->64-Multiplikation überhaupt gebacken
bekommen.
Und das ist lustigerweise sowohl dann der Fall, wenn das Target das in
Hardware kann, als auch dann, wenn es das nicht kann und man das aus
weniger mächtigen Operationen zusammenbauen muss.
Wo glaubst du denn, wo diese Fähigkeit in C herkommt, wenn nicht aus der
Kompetenz von Leuten, die die Hardware und auch deren Assembler
beherrschen? Glaubst du an den Allmächtigen C-Gott, der das einfach mal
so aus dem Nichts möglich macht?
Dann passt du wirklich in dieses Forum...
c-hater schrieb:> Glaubst du an den Allmächtigen C-Gott, der das einfach mal> so aus dem Nichts möglich macht?
Nein, aber ich glaube auch nicht an den Allmächtigen Assembler-Gott.
Dafür habe ich selbst genug in Assembler Programmiert (Mikrocontroller
und Treiber für DOS) und da beurteilen zu können.
Ich finde, du solltest mal aufhören, auf Programmierer für bestimmte
Programmiersprachen herum zu hacken. Das sind nur Werkzeuge, keine
Religionen und sie bestimmen auch nicht über das Schicksal der
Menschheit.
Das du C nicht magst ist deine Sache und du hast es uns reichlich oft
kund getan. Nur interessiert uns dein persönlicher Geschmack
diesbezüglich so wenig, wie deine Vorlieben für bestimmtes Essen oder
Klamotten.
Wenn ich mal Meinungen einholen würde, welche Programmiersprache für ein
gewisses Projekt wohl die sinnvollste sein mag, würde ich alle
greifbaren Leute fragen nur dich nicht. Denn deine Antwort kenne ich
seit Jahren.
@c-hater
> Das ist doch Quatsch. Assemblerprogrammierer machen es erst möglich,> dass C-only-Fritzen eine 32x32->64-Multiplikation überhaupt gebacken> bekommen.
die Quellen des Berkleys Softfloats hast du dich nie angeschaut, oder ?
Eventuell muss du dir eine kopie des "The C Book" zulegen und rein
lesen, ist alles da... vielleicht ist nicht "modern", aber die Sprache
ist schon mächtig und für Guten oder nicht gibts für fast jeden
Prozessor.