bootloader + Software-Uart

OP #2193507
Lesenswert?
• ▲
▼
hi,
kennt jemand von euch einen SW-Uart-Bootloader, dessen SW-Uart man auch 
im normalen Programm benutzen kann?

Mir geht es darum, dass ich auf einem Tiny Platz sparen möchte und nicht 
2 SW-Uart-Implementierungen haben will, die beide Platz fressen.

Anforderungen:
- C-Interface
- Empfangspuffer
- An beliebigen Pins lauffähig (PCINT kann genutzt werden)
- Am besten wäre eine Baudratenerkennung (Verwendung von 16Mhz interner 
Takt ohne Crystal)

Wär toll, wenns sowas schon gäbe

Gruß
Vlad
OP #2193545
Lesenswert?
• ▲
▼
avion23 schrieb:
> Peter Dannegger hat so ein Teil geschrieben:
> Beitrag "Peter Danneggers Bootloader (fastboot) für AVR-GCC-Toolchain"
>
> Ich verwendes es inzwischen auf allen AVRs, inkl. attiny*.

den kenne ich.
so weit ich weiß, ist das aber ein reiner bootlader, oder?

Hex Oschi schrieb:
> In einem
> Bootloader moechte man moeglicherweise keine Interrupts haben.
warum?
Gast #2193549
Lesenswert?
• ▲
▼
Vlad Tepesch schrieb:
> Hex Oschi schrieb:
>> In einem
>> Bootloader moechte man moeglicherweise keine Interrupts haben.
> warum?

Soweit ich informiert bin gibt es nur eine gültige Interrupt table. 
Entweder die im Anwendungsprogramm oder die im bootloader code. Das 
bedeutet, dass man die ISRs entweder alle im bootloader hat, oder im 
Anwendungsprogramm. Also sind die beiden sehr stark ineinander verzahnt, 
ein kleiner Fehler und nichts funktioniert mehr.

Vlad Tepesch schrieb:
> den kenne ich.
> so weit ich weiß, ist das aber ein reiner bootlader, oder?

Sorry, ich habe deinen Beitrag nicht aufmerksam gelesen. Ja, das ist ein 
reiner bootloader. Du bräuchtest also extra code für eine serielle 
Schnittstelle in deinem Anwendungsprogramm. Anderseits sind es nur 
512Byte...
OP #2193558
Lesenswert?
• ▲
▼
avion23 schrieb:
> Soweit ich informiert bin gibt es nur eine gültige Interrupt table.
> Entweder die im Anwendungsprogramm oder die im bootloader code. Das
> bedeutet, dass man die ISRs entweder alle im bootloader hat, oder im
> Anwendungsprogramm. Also sind die beiden sehr stark ineinander verzahnt,
> ein kleiner Fehler und nichts funktioniert mehr.

stimmt.
Hier könnte der Bootloader aber Displatcher spielen.
beim Programmieren schreibt er einfach die Einträge, die er selber 
braucht nicht um, sondern die Zieladressen in eine sperate Stelle, die 
er aus seiner registrierten ISR anspringt, wenn er grad nicht aktiv ist.
Keine Ahnung, ob das funktionieren kann
unschön ist, dass ein paar Zusätzliche Takte dazukommen, von der die 
Anwendung nix weiß

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.