Gibt es einen ATtiny I2C Bootloader _ohne_ Interrupts?

OP #3283888
Lesenswert?

Genauer gesagt geht es darum, ob es hierfür schon ein gut dokumentiertes 
Projekt geht.

Habe länger nach einem I2C Bootloader gesucht der dann nicht die 
Interrupts für I2C für sich beansprucht, wie es zum Beispiel der im 
Bootloader Artikel tut.

Nun habe ich einen selbst geschrieben und bevor ich mir die Arbeit 
mache, alles ordentlich zu dokumentieren und online zu stellen möchte 
ich sicher gehen, dass nicht noch ein funktionsgleicher Bootloader im 
Umlauf ist.

Der Bootloader ist "leider" in C geschrieben und belegt dadurch stolze 
576bytes flash, dazu gibt es ein in C geschriebenes Update-Tool.

Sollte auf jedem ATtiny mit USI laufen. Der PC Seitige I2C Code läuft 
aktuell mit einem Arduino und nur unter Linux/OSX, wird aber in jedem 
Fall noch für direkte Linux I2C-Schnitstellen erweitert.

Gibt es was vergleichbares?
OP #3283916
Lesenswert?

Martin Wende schrieb:
> Richtig interessant wär das Update Tool wenns per SMBus (gibts auf jedem
> Mainboard) mit dem Tiny kommunizieren könnte.

Ich bin mir nicht sicher, inwieweit ein SMBus anders ist als ein 
normaler I2C Bus.
Zumal ich auch keinen Computer mit zugänglichem SMBus habe werde ich das 
wohl auch nicht in Betracht ziehen.

Implementieren werde ich es in jedem Fall für ARMs mit Linux und I2C.
Aber darum ging mein Post eigentlich nicht.
#3284172
Lesenswert?

Selbst wenn es einen solchen Bootloader geben sollte, du hast ihn nicht 
gefunden und wenn du deinen nun zur Verfügung stellst, dann freuen sich 
sicher einige (ich) hier. :-)
Also: "Hau raus den Scheiß!"

... und nicht so zaghaft.
Es werden dann sowieso wieder jede Menge "Gäste" alles besser wissen und 
können.

Tolle Sache, mach das bitte öffentlich!
Gast #3284496
Lesenswert?

David Brandt schrieb:

> Habe länger nach einem I2C Bootloader gesucht der dann nicht die
> Interrupts für I2C für sich beansprucht, wie es zum Beispiel der im
> Bootloader Artikel tut.

Wo ist das Problem? Ein Bootloader mit Ints beansprucht diese Ints doch 
nur, solange der Bootloadercode aktiv ist.

Wen zum Teufel stört das? Doch höchstens Leute, die nicht begriffen 
haben, daß es mehr als eine Interruptvektortabelle geben kann...
OP #3284499
Lesenswert?

c-hater schrieb:
> Wo ist das Problem? Ein Bootloader mit Ints beansprucht diese Ints doch
> nur, solange der Bootloadercode aktiv ist.
>
> Wen zum Teufel stört das? Doch höchstens Leute, die nicht begriffen
> haben, daß es mehr als eine Interruptvektortabelle geben kann...

Für den nächsten mit starken defiziten in welchem Bereich auch immer:
Es geht um ATtinys, die haben nur eine Interruptvektortabelle.
Gast #3284556
Lesenswert?

David Brandt schrieb:

> Für den nächsten mit starken defiziten in welchem Bereich auch immer:
> Es geht um ATtinys, die haben nur eine Interruptvektortabelle.

Für die gibt es dann immer noch Funktionspointer, die dann trotzdem noch 
austauschbare ISRs ermöglichen würden.

Aber selbst das ist nur die halbe Wahrheit. Tatsächlich ist doch auf der 
Protokollebene keine Unterscheidung zwischen Bootloader und App 
sinnvoll. I2C ist I2C.

Sinnvoll wäre also, den gesamten I2C-Code (inclusive ISRs) zwischen 
Bootloader und App zu sharen. Umgeswitcht werden müssen nur die 
Funktionszeiger für die Ereignisse, die das Protokoll-Level verlassen.

Kapierst du die Logik?
Gast #3284562
Lesenswert?

>Sinnvoll wäre also, den gesamten I2C-Code (inclusive ISRs) zwischen
>Bootloader und App zu sharen. Umgeswitcht werden müssen nur die
>Funktionszeiger für die Ereignisse, die das Protokoll-Level verlassen.

Das ist ungefähr so sinnvoll wie ein zweites Loch im Arsch.
Der Bootloader sollte nichts von der Applikation wissen und
die Applikation nichts vom Bootloader. Alles andere ist Unsinn.
Gast #3284563
Lesenswert?

holger schrieb:
>>Sinnvoll wäre also, den gesamten I2C-Code (inclusive ISRs) zwischen
>>Bootloader und App zu sharen. Umgeswitcht werden müssen nur die
>>Funktionszeiger für die Ereignisse, die das Protokoll-Level verlassen.
>
> Das ist ungefähr so sinnvoll wie ein zweites Loch im Arsch.
> Der Bootloader sollte nichts von der Applikation wissen und
> die Applikation nichts vom Bootloader. Alles andere ist Unsinn.

Das sagst du, aber frag' mal einen geistig Gesunden.
#3284621
Lesenswert?

Ich bin noch sehr weit weg von dem was ihr könnt und denke mir immer, 
wenn jemand sich Gedanken (und Arbeit) macht, dann muss doch was dran 
sein.

Also, statt euch gegenseitig jetzt hier Post für Post an die Fresse zu 
hauen, entwickelt das doch weiter zusammen.
Ich freue mich immer über fertige Lösungen. Nicht, damit ich das nicht 
selbst machen muss, sondern um aus lauffähigen Sachen zu lernen.
Gast #3284635
Lesenswert?

Warum kann so ein Bootloader nicht eine Art BIOS darstellen, das 
grundlegende Kommunikation abhandelt. Per fester Sprungleiste an seinem 
Anfang, die dann vom Anwendungsprogramm genutzt wird. Besonders auf 
Tiny's muß man doch mit jedem Byte knausern.
OP #3284741
Lesenswert?

Bastler schrieb:
> Warum kann so ein Bootloader nicht eine Art BIOS darstellen, das
> grundlegende Kommunikation abhandelt. Per fester Sprungleiste an seinem
> Anfang, die dann vom Anwendungsprogramm genutzt wird. Besonders auf
> Tiny's muß man doch mit jedem Byte knausern.

Die Frage ist doch:
Wird ein Bootloader kleiner, wenn er mit Interrupts arbeitet?
Sicher kann man eine gemeinsame ISR nutzen, aber dafür braucht man 
wieder mehr Code und das Programm muss darauf angepasst werden.

Und ich denke nicht, dass der Bootloader durch das nutzen von Interrupts 
viel kleiner wird, also warum sollte man das tun?
Gast #3284748
Lesenswert?

David Brandt schrieb:
> Wird ein Bootloader kleiner, wenn er mit Interrupts arbeitet?

Natürlich.

David Brandt schrieb:
> Und ich denke nicht, dass der Bootloader durch das nutzen von Interrupts
> viel kleiner wird, also warum sollte man das tun?

Die Frage ist vielmehr: Warum sollte man vorhandene, funktionierende und 
durchdachte Konzepte durch irgendwelche Schwachsinnsvorschläge in 
weniger funktionierende Umwandeln. Aber wir wissen ja:

Hobbybastler sind IMMER, intelligenter, schlauer, gewieferter und besser 
als jeder der professionell auf dem Fachgebiet arbeitet. Aus diesem 
Grund werden sie auch weitläufig als dilettantisch und unbelehrbar 
gehandelt. Das ist übrigens auch der Grund warum Hobbybastler dieser 
Spezies nie irgendwas vernünftiges hinbekommen. Nie. Ein Hobbybastler 
der sich von beanntem Schwachsinn befreit hat kann sich nicht mehr 
Hobbybastler nennen. Nur hier sind Hobbybastler unterwegs - ganz viele 
... Ehrlich sucht euch ne Freundin oder fragt jemanden der Ahnung hat 
von der Materie und nehmt den Ratschlag den er/sie euch gibt an. Das was 
bis jetzt hier steht ist erbärmlich niedrig.
#3284859
Lesenswert?

Peter schrieb:
> Die Frage ist vielmehr: Warum sollte man vorhandene, funktionierende und
> durchdachte Konzepte durch irgendwelche Schwachsinnsvorschläge in
> weniger funktionierende Umwandeln. Aber wir wissen ja:
>
> Hobbybastler sind IMMER, intelligenter, schlauer, gewieferter und besser
> als jeder der professionell auf dem Fachgebiet arbeitet. Aus diesem
> Grund werden sie auch weitläufig als dilettantisch und unbelehrbar
> gehandelt. Das ist übrigens auch der Grund warum Hobbybastler dieser
> Spezies nie irgendwas vernünftiges hinbekommen. Nie. Ein Hobbybastler
> der sich von beanntem Schwachsinn befreit hat kann sich nicht mehr
> Hobbybastler nennen. Nur hier sind Hobbybastler unterwegs - ganz viele
> ... Ehrlich sucht euch ne Freundin oder fragt jemanden der Ahnung hat
> von der Materie und nehmt den Ratschlag den er/sie euch gibt an. Das was
> bis jetzt hier steht ist erbärmlich niedrig.

Was Schwachsinn ist und ob die Idee Schwachsinn ist, das kann ich nicht 
beurteilen. Dazu weiß ich zu wenig von der Materie.

Zwei Dinge stehen aber fest!!!!

1. - Solche Aussagen kommen immer von Namenlosen, von den Gästen.
2. - Sie haben keinen geeigneten eigenen Vorschlag und beleidigen nur.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren