[ERLEDIGT] Fastboot, ATmega328p: Bootloader immer aktiv

OP #4220771
Lesenswert?
• ▲
▼
Hallo Forum.

Ich habe ein Problem mit dem Bootloader von Peter. Die Version ist die 
letzte Version aus dem Thread: 
Beitrag "Re: Peter Danneggers Bootloader (fastboot) für AVR-GCC-Toolchain"

Einstellungen im Makefile angepasst auf: ATmega328P und 16Mhz.
Fuses eingestellt: BOOTRST programmiert (0), BOOTSZ auf Wortadresse 
0xF00
(zum Vergleich auch haenge ich ein Screeshot vom FuseCalc an. )

Der Bootloader funktioniert soweit wunderbar, ich kann mein 
Nutzerprogram ohne Probleme brennen. Das Problem ist, dass ich es immer 
kann. Ich muss den Controller nicht resetten. Der Bootloader scheint 
immer aktiv zu sein.
Soweit ich den bootloader verstehe, wartet er eine Zeit ab ob ein 
bestimmtes Zeichen empfangen wird und springt sonst in die main() des 
eigentlichen Programms.

Mein Programm fragt den UART ab und immer wenn ein Zeichen kommt togglet 
eine LED.

Das ganze funktioniert auch wunderbar. Die LED toggelt mit jedem 
Zeichen, dass ich ueber Hterm sende, aber der Bootloader scheint 
trotzdem noch zu reagieren. Muss ich noch von hand nach dem 
Programmstart die ISR's verschieben oder ist das Verhalten vielleicht 
voellig normal?

Anbei mal das Programm.
1
int main( void )
2
{
3
  wdt_disable();
4
  usart_init( UBRR_VAL );
5
  usart_as_stdout();
6
  usart_as_stdin();
7

8
  /// LED at PORTB, Pin5, High active
9
  DDRB |= (1 << PB5 );
10
  PORTB &= ~( 1 << PB5 );
11
  for( ;; )
12
  {
13
    PORTB ^= (1 << PB5 );
14
    char c;
15
    if( ( c = getchar() ) )
16
    {
17
      putchar(c);
18
      continue;
19
    }
20
    else
21
    {
22
      break;
23
    }
24
  }
25
  return 0;
26
}

Edit:
Program & Formatierung richtiggestellt.

Ich habe mit lboot (./bootlader) unter debian uebertragen und unter 
windows mit UpdateLoader2.2
Angehängte Dateien:
Gast #4220807
Lesenswert?
• ▲
▼
Beim offnen der seriellen Schnittstelle wird ein Reset ausgelöst (wenn 
alles üblich angeschlossen wurde).
Es ist also ganz normal, dass man kein Reset drücken muss.

Florian O. schrieb:
> Das ganze funktioniert auch wunderbar. Die LED toggelt mit jedem
> Zeichen, dass ich ueber Hterm sende,

Dann ist doch alles gut.
Entweder läuft deine Anwendung oder der Bootloader.
Beides gleichzeitig geht nicht.
#4220811
Lesenswert?
• ▲
▼
Ulrich F. schrieb:
> Beim offnen der seriellen Schnittstelle wird ein Reset ausgelöst (wenn
> alles üblich angeschlossen wurde).

sorry, das ist Unsinn, wie kommst Du den darauf ?
Bei allen meinen Schaltungen und Software entscheide ich über das 
Verhalten !

> Es ist also ganz normal, dass man kein Reset drücken muss.
>
> Florian O. schrieb:
>> Das ganze funktioniert auch wunderbar. Die LED toggelt mit jedem
>> Zeichen, dass ich ueber Hterm sende,
>
> Dann ist doch alles gut.
> Entweder läuft deine Anwendung oder der Bootloader.
> Beides gleichzeitig geht nicht.
OP #4220818
Lesenswert?
• ▲
▼
Ulrich F. schrieb:
> Beim offnen der seriellen Schnittstelle wird ein Reset ausgelöst (wenn
> alles üblich angeschlossen wurde).
> Es ist also ganz normal, dass man kein Reset drücken muss.
>
> Florian O. schrieb:
>> Das ganze funktioniert auch wunderbar. Die LED toggelt mit jedem
>> Zeichen, dass ich ueber Hterm sende,
>
> Dann ist doch alles gut.
> Entweder läuft deine Anwendung oder der Bootloader.
> Beides gleichzeitig geht nicht.

Ich bin auch ein Sepp... Das ganze ist mir vorher noch nie passiert, da 
ich sonst meine Boards selber gemacht habe. Aber hier habe ich ein paar 
NanoV3.0 China Clone vor mir und bei denen ist tatsaechlich DTS vom USB 
<-> Seriell wandler an reset gehaengt, somit erfolgt der Reset wenn die 
DTS leitung low geht.

Vielen Dank! Darauf waere so nie gekommen ;)

Uwe S. schrieb:
> Ulrich F. schrieb:
>> Beim offnen der seriellen Schnittstelle wird ein Reset ausgelöst (wenn
>> alles üblich angeschlossen wurde).
>
> sorry, das ist Unsinn, wie kommst Du den darauf ?
> Bei allen meinen Schaltungen und Software entscheide ich über das
> Verhalten !
>

Siehe oben :)
OP #4220821
Lesenswert?
• ▲
▼
Uwe S. schrieb:
> Hallo Florian,
>
> überlege bitte, was passiert bei break; .
>
> Wo arbeitet der AVR µC dann weiter ?

Er rennt in das return, was einen reset verursacht wenn ich mich nicht 
irre - aber ja nur wenn das empfangene zeichen 0, also '\0' ist.

Aber das sende ich nicht und es war nur ein schneller test ob die 
serielle schnittstelle geht (senden / empfangen).

Das ganze hat sich aber schon erledigt.
#4220822
Lesenswert?
• ▲
▼
Danke für die Aufklärung,

diese Info "NanoV3.0 China Clone" hatten wir vorher nicht.

>
> Ich bin auch ein Sepp... Das ganze ist mir vorher noch nie passiert, da
> ich sonst meine Boards selber gemacht habe. Aber hier habe ich ein paar
> NanoV3.0 China Clone vor mir und bei denen ist tatsaechlich DTS vom USB
> <-> Seriell wandler an reset gehaengt, somit erfolgt der Reset wenn die
> DTS leitung low geht.
>
> Vielen Dank! Darauf waere so nie gekommen ;)
>
> Uwe S. schrieb:
>> Ulrich F. schrieb:
>>> Beim offnen der seriellen Schnittstelle wird ein Reset ausgelöst (wenn
>>> alles üblich angeschlossen wurde).
>>
>> sorry, das ist Unsinn, wie kommst Du den darauf ?
>> Bei allen meinen Schaltungen und Software entscheide ich über das
>> Verhalten !
OP #4220836
Lesenswert?
• ▲
▼
Holger L. schrieb:
> Das Foto fuse_settings_01.jpg zeigt Ext. Cristal Osc. mit 8 MHz an, das
> Foto fuse_settings_03.jpg Intern RC Osc 8 MHz, und im Text stehen 16 MHz
> ?

Das hat mich grade doch noch kurz stutzig gemacht. Aber laut Datenblatt
Low Power External Crystal Oscillator Operating Modes..:
...
8.0 - 16.0Mhz
C1 = C2 = 12-22pF
CKSEL3..1: 111 // 8-16Mhz
CKSEL0   : 1   // Slowly Rising power

also ist das untere Nibbel 1111 -> 0xF sollte also passen

> Kann es sein das deine Versorgung schwankt und der Brown Out anspricht
> da er anscheinend auf 2,7 V steht ?

Das kann auch sein, haengt grade nur ueber USB dran. Aber mein 
eigentliches Problem ist ja gar keins mehr.

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.