INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
USB neu programmieren oder Daten schreiben
15.05.2016, 08:51
Beitrag #9
RE: USB neu programmieren oder Daten schreiben
(14.05.2016 21:07)Pit schrieb:  
(14.05.2016 20:26)amithlon schrieb:  Zu Deiner Anmerkung mit der SD-Card: schau Dir das Atmel-Datenblatt des genutzen AVR an (ATMEga328 bei Uno/Nano/PreMini), dann wirst Du feststellen, daß der AVR keine von-Neumann-Architektur ist und damit Programme nur aus seinem Flash ausführen kann. Theoretisch könnte man ein Konstrukt basteln, bei dem er selbst zur Laufzeit einen Teil seines Flash von SD-Card überschreibt. Praktisch nicht machbar. Du müßtest für jedes Teil vorher bestimmen, an welche Flashadresse Du es schreiben willt, um es dann dort aufrufen zu können.
Dabei natürlich genau auseinandernehmen, daß nit 2 Sacehn gleichzeitig genutzt werden, die im gleichen Flashbereich laufen müssen usw.

Ein Sprung auf Adresse 0 ist übrigens kein echter Reset. Bei einem Hardware-Reset sind alle internen Register des AVR auf bestimmten default-Werten, bei einem Jump auf 0 bleiben die aber erhalten, auch Timer, Interrupts usw. bleiben aktiv, wenn man das nicht vor dem JMP 0 alles im Programm von Hand aufräumt.

Der komplette NeuInit eines Programmes ist das Eine.
Man könnte aber so eine Funktion etwa
void overload (char* ModulName)
schaffen
Nehmen wir an es gäbe Module etwa
void Modul1 (...)
void Modul2 (...) etc.
bei der Benutzung von overload (char* ModulName)
bliebe das gesamte Environment erhalten.
overload sorgt dafür, dass das Modul von SD-Karte an die passende Stelle im Speicher befördert wird, schiebt den Stack rein und macht den Aufruf von Modulx.
Gehörig Gehirnschmalz müsste man sicher dahingehend investieren, wie man die Module mit der IDE oder anderswie richtig herstellen könnte.
Damit liessen sich Programme entwickeln die den Speicherraum übersteigen.

Eine andere Lösung wäre natürlich, die Arduinos 50 Cent teurer zu machen und dafür ordentlich mit mehr Speicher aufzurüsten :-)

Man könnte... Auch auf dem C64 war am Anfang das Nachaden von Kasette prinzipiell eingebaut und wurde praktisch so gut wie garnicht genutzt. Dann wurde die Flopp halbwegs bezahlbar und da war es etwas schneller und einfacher und wurde manchmal genutzt. Dann kamen die Turbolader, da brauchten lange, bis es bei einigen halbwegs ging.

Da war das ganz Hardware-Umfeld (der C64 mit VIC und SID) aber vorgegeben, man mußte es also so lösen, wenn die 64k Ram zu klein wurden.

Macht heute bei den "kleinen" AVR keinen wirklichen Sinn mehr. Man nimmt eben einen größeren oder wechselt auf einen ARM o.ä., Die Software ist dank guter Compiler relativ schnell angepasst, das war in den ASM-Zeiten so nicht machbar.

Ich sehe es ja selber ganz praktisch. µC usw. waren und sind Hobby bei mir, vom Z80, 6502 zum AVR, alles Assembler. Inzwischen eben C/C++ mehr oder weniger gut.

Zu Arduino bin ich Dank der Chinesen mit ihren Preisen gekommen, man spart sich eben die Zeit, manches selber zu löten. Die Arduino-IDE ist zur Zeit mein Favorit (neben dem alten AVR-Studio 4 in ASM oder C), weil damit der ESP8266 gut zu programmieren ist.

Sind eben im Moment meine Lieblinge, 1MB Programmspeicher ist eine ganze Menge, rund 40kB Ram reichen auch und Dank des Flashfilesystems sind noch 3MB verfügbar, aus denen ich zwar auch keine Programmteile nachladen kann, aber jede Menge Daten auslagern oder von da laden kann. Die 80MHz Takt schaden ja auch nicht.

Die Mehrzahl der Sketche und Libraries lassen sich nahezu ohne Anpassung nutzen. Hier geistern im Moment 8x ESP8266 im WLAN rum, alles wäre auch mit Arduino und WLAN/Ethernetshield nutzbar, nur größer und teurer mit weniger Ram und Flash und meist auch langsamer.

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.05.2016, 16:55
Beitrag #10
RE: USB neu programmieren oder Daten schreiben
Zitat:Ein Sprung auf Adresse 0 ist übrigens kein echter Reset. Bei einem Hardware-Reset sind alle internen Register des AVR auf bestimmten default-Werten, bei einem Jump auf 0 bleiben die aber erhalten, auch Timer, Interrupts usw. bleiben aktiv, wenn man das nicht vor dem JMP 0 alles im Programm von Hand aufräumt.
Dies habe ich unterdessen auch festgestellt, das die Daten erhalten bleiben.

Zitat:Eine andere Lösung wäre natürlich, die Arduinos 50 Cent teurer zu machen und dafür ordentlich mit mehr Speicher aufzurüsten :-)
So viel es mir ist, gibt es Arduinos, die mehr Speicher haben und auch schneller sind.
Es kommt immer darauf an, für was man es braucht.
Oder man nimmt einen Raspi.

Zitat: Die Arduino-IDE ist zur Zeit mein Favorit (neben dem alten AVR-Studio 4 in ASM oder C), weil damit der ESP8266 gut zu programmieren ist.
Hast du dir mal die neuste Version von Arduino-Eclipse angeguckt, von der Bedienung her wirst du sicher die Original_IDE dann auch in die Ecke schmeissen.
Ob diese auch C und ASM kann, kann ich die nicht sagen.
Ober für normale Arduino-Programmierung kannst du damit viel effizienter coden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.05.2016, 17:16 (Dieser Beitrag wurde zuletzt bearbeitet: 15.05.2016 17:17 von amithlon.)
Beitrag #11
RE: USB neu programmieren oder Daten schreiben
Hallo,
Zitat:Hast du dir mal die neuste Version von Arduino-Eclipse angeguckt, von der Bedienung her wirst du sicher die Original_IDE dann auch in die Ecke schmeissen.
Ob diese auch C und ASM kann, kann ich die nicht sagen.
Ober für normale Arduino-Programmierung kannst du damit viel effizienter coden.

Was heißt bei Dir "viel effizienter coden"?
Ja, ich kenne Eclipse (ein wenig), es hat bei mir nicht lange überdauert genauso wie AVR-/AtmelStudio nach Version 4.
Für meine Sachen ist es "mit Kanonen auf Spatzen" schießen.

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.05.2016, 17:35
Beitrag #12
RE: USB neu programmieren oder Daten schreiben
Zitat:Was heißt bei Dir "viel effizienter coden"?
Wen du zB. digitalWrite schreiben willst, musst du bei der Original-IDE genau wissen wie man dies schreibt, oder man muss googlen. Auch musst du es selbst ganz ausschreiben.

Bei Eclipse schreibst du einfach "di" und drückst <SPACE>, und schon kommt eine Auswahl an Befehlen. Mit "DN" runterfahren und Enter und schon steht digitalWrite() .

Oder du klickst mit der rechten Maus -Taste, zB. digitalWirite an, und wählst "Open Declaration" und schon kommst du an die Source von digitalWrite.

Oder man schreibt "Timer1." und schon kommt eine Auswahl, was alles mit Timer1 möglich ist.

Oder man sieht schon während des coden, wen man einen Syntax-Fehler macht.


Braucht du sowas nicht, ich finde dies auf jeden Fall eine grosse Erleichterung ? Wink

Zitat:Ja, ich kenne Eclipse (ein wenig), es hat bei mir nicht lange überdauert
Vielleicht sollt man noch erwähnen, das im April eine neue Version raus gekommen ist.
In dieser ist schon fast alle vorkonfiguriert.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.05.2016, 18:39 (Dieser Beitrag wurde zuletzt bearbeitet: 15.05.2016 18:51 von amithlon.)
Beitrag #13
RE: USB neu programmieren oder Daten schreiben
Hallo,

(15.05.2016 17:35)Mathias schrieb:  [quote]Was heißt bei Dir "viel effizienter coden"?
Wen du zB. digitalWrite schreiben willst, musst du bei der Original-IDE genau wissen wie man dies schreibt, oder man muss googlen. Auch musst du es selbst ganz ausschreiben.
[quote]
ok, autocomplete wäre ein Punkt, allerdings könnte ich auch in die Ardione IDE z.B. Notepad+ als Editor einbinden, der kann das auch. Komischweise habe ich das aber bisher selten vermisst, ich merke mir offenbar auch auf meine alten Tage sowas noch ganz gut.

(15.05.2016 17:35)Mathias schrieb:  Oder du klickst mit der rechten Maus -Taste, zB. digitalWirite an, und wählst "Open Declaration" und schon kommst du an die Source von digitalWrite.
Das wäre eine Sache zum Nachdenken, meist ist mir im Moment eine Suche im Browser mit Lesezeichen schnell genug. Wenn ich z.B. wie vorhin nach bestimmten Funktionen der Stream-Klasse suche oder zum SPIFFS beim ESP8266, könnte ich natürlich auch direkt in die Header-Files schauen.

(15.05.2016 17:35)Mathias schrieb:  Oder man sieht schon während des coden, wen man einen Syntax-Fehler macht.

Das Problem bei manchen dieser Erweiterungen ist, daß sie Rechenleistung fordern, wenn ich mir z.B. die Klagen zum Atmelstudio 7 anschaue...

(15.05.2016 17:35)Mathias schrieb:  Vielleicht sollt man noch erwähnen, das im April eine neue Version raus gekommen ist.
In dieser ist schon fast alle vorkonfiguriert.

Entscheidend ist für mich weniger, ob es vorkonfiguriert ist, die Frage ist eher, ob sich Änderungen/Erweiterungen ohne viel Aufwand einbinden lassen.
Wenn z.B. eine neue Version für die ESP8266 Boards kommt, will ich die genauso schnell drin haben wie in der Arduino-IDE über den Boardmanager und im Zweifel auch genauso schnell wieder auf die vorige zurück, wenn noch was klemmt.

Ich kann mich z.B. mit makefiles, Compiler- und Linkeroptionen rumschlagen, ich will es aber garnicht unbedingt müssen.

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.05.2016, 19:18
Beitrag #14
RE: USB neu programmieren oder Daten schreiben
Zitat:Das Problem bei manchen dieser Erweiterungen ist, daß sie Rechenleistung fordern, wenn ich mir z.B. die Klagen zum Atmelstudio 7 anschaue...
Auf den heutigen PCs sollte dies eigentlich kein Problem sein.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.05.2016, 21:09 (Dieser Beitrag wurde zuletzt bearbeitet: 16.05.2016 21:16 von amithlon.)
Beitrag #15
RE: USB neu programmieren oder Daten schreiben
Hallo,

(16.05.2016 19:18)Mathias schrieb:  
Zitat:Das Problem bei manchen dieser Erweiterungen ist, daß sie Rechenleistung fordern, wenn ich mir z.B. die Klagen zum Atmelstudio 7 anschaue...
Auf den heutigen PCs sollte dies eigentlich kein Problem sein.

da habe ich wohl meine eigene Meinung: AMD A8-5600k APU 3,6GHz, 16MB Ram
Installiert am 29.11.2013. Ich sehe wenig Grund, daran was zu ändern.
Ich will ein paar AVR oder ESP8266 o.ä. als Hobby programmieren und meine restlichen Sachen erledigen können.

Ich habe mich heute mit der lahmen Geschwindigkeit des ESP8266 rumgärgert,
Upload in sein SPIFFS mit rund 500kB/s und Downloadraten von 6kB/ im Browser und maximal 50kB/s bei anderen TCP-Protollen waren ein Widerspruch.
Passierte mit Firefox und nach Ausgagen andeer auch mit Chrome und Safari.

Schuld war die TCP-Einstellung für verzögertes ACK, das kostet 200ms pro Paket, wenn die Gegenstelle (der ESP) damit nicht umgehen können, weil sie wenig Ram haben, um genügend Pakete für ein Re-Send zu puffern.
Umstellen auf ACK nach jedem Paket behob das sofort.
Netterweise scheint Microsofts IE da an den Systemeinstellungen in der Registry vorbei zu operieren...

Da hätte mir weder Eclipse noch ein schnellerer PC geholfen. Wink

Ein 600kB JPG-Bild von einem ESP8266 Webserver in gut einer Sekunde ausgliefert zu bekommen ist schon nett für die 3 Euro Briefmarke.

Um auf Deine anfängliche Frage zurückzukommen: ich habe hier eine "Spielbox" laufen mit ESP8266, RFM12 433MHz dran, daran hängt über die serielle ein Arduino MiniPro mit einem RFM12 868MHZ. Da werde ich mich wohl indirekt mit Deiner Frage befassen.
Der ESP8266 wird per OTA über WLAN neu programmiert. Nun will ich auch den AVR noch neu programmieren können ohne den Kram an den Rechner zu stecken. Also eine Webseite auf den ESP, die das hex-File für den ATMega holt und dann per Bootloader den AVR über die serielle programmiert.
Muß nur schauen, welcher Bootloader auf dem ProMini ist und mir das Protokoll anschauen.
Ich glaube nicht, daß es allzu aufwändig ist, den ESP auch noch zum AVR-Programmer zu machen.

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.05.2016, 16:12
Beitrag #16
RE: USB neu programmieren oder Daten schreiben
Zitat:da habe ich wohl meine eigene Meinung: AMD A8-5600k APU 3,6GHz, 16MB Ram
Ich habe meinen PC im 2012 gekauft und ist schnell genug,
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Gartenbewässerung mit Arduino und/oder ESP8766 alpenpower 6 671 02.09.2016 19:30
Letzter Beitrag: NetRap
  Ethernetshield am Netz oder nicht Wampo 7 868 30.11.2015 21:53
Letzter Beitrag: Wampo
  [gelöst] ATtiny mit Arduino programmieren - Frage zur Hardware Gelegenheitsbastler 4 931 10.09.2015 11:55
Letzter Beitrag: Bitklopfer
  4.3" oder 5" TFT-LCD mit Touch wo kaufen? alpenpower 73 8.433 07.09.2015 19:53
Letzter Beitrag: fraju
  Anfänger braucht Hilfe: Serielle Daten auswerten und weiterverarbeiten Phreak2010 2 1.231 14.06.2015 18:34
Letzter Beitrag: Home38
  und wieder mal: schnelle Hardware-SPI Displays (oder UART) HaWe 2 1.231 08.05.2015 19:00
Letzter Beitrag: HaWe
  Wie Bootloader mit AVRisp mk II schreiben? gregors 9 1.557 01.05.2015 12:58
Letzter Beitrag: Thorsten Pferdekämper
  Wer hat pcDuino3 oder pcDuinoV2? HaWe 0 680 20.02.2015 15:52
Letzter Beitrag: HaWe
  "USV" zum Schreiben auf SD-Card Foto-Ralf 3 1.151 02.02.2015 18:49
Letzter Beitrag: ardu_arne
  Audio-Output oder so ähnlich?^^ luucdev 2 902 21.01.2015 16:58
Letzter Beitrag: luucdev

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste