Keine Interrupts im Bootloader

OP #1545009
Lesenswert?
• ▲
▼
Hallo Leute ich vesuche gerade einen Bootloader zu schreiben, im Prinzip 
iss alles klar, nur bekomm ich die Interrupts für die UART nicht ins 
laufen.
Ohne ints funzt der UART, aber dass iss ja nicht sinn der Sache.
Ich habe die BTL Startadresse 0xC00
und die Interrupttabelle habe ich auch verschoben, fehlt da noch was ?
Ich benutze die UART LIB von Peter Fleury

Gruß Andreas

hier mein Code:

#include<avr/io.h>
#include<avr/boot.h>
#include <avr/interrupt.h>
//#include"i2cmaster.h"
#include <avr/wdt.h>
#include "uart.h"


#define cbi(REG,bit) REG &= ~(1<<bit)
volatile unsigned int  PageSize;
volatile unsigned int  PageStartAdress;
volatile unsigned int  Pagecount;
volatile unsigned char Bootloader_Request_Flag;

void (*jump_to_main_application)( void ) = 0x0000;


int main(void)
{
/*
  unsigned int wait=0;

        GICR=(1<<IVCE);
  GICR=(1<<IVSEL);

   uart_init ( UART_BAUD_SELECT  (9600 ,16000000 ));

  sei();
  while ( 1 )
  {
  wait ++;
    if ( wait == 0 )
    {
         uart_putc('H');
    //UDR  = 'H';
    }
  }
}
#1647253
Lesenswert?
• ▲
▼
Andreas schrieb:
> mein controller ist ein Atmega88

Tatsächlich? Und wie passt das mit diesen Zeilen zusammen?
> GICR=(1<<IVCE);
> GICR=(1<<IVSEL);
Der ATmega88 hat überhaupt kein Register "GICR".
Und was hat das vereinzelte "/*" gleich am Anfang von main da zu suchen?
Und wo ist überhaupt die ISR, die nicht funktionieren soll?

Poste mal den echten Code, dann kann man vielleicht auch was Konkretes 
zu deinem Problem sagen.
Gast #1784002
Lesenswert?
• ▲
▼
Ich empfehle für das Verbiegen der IRQ-Tabelle Assembler-Routinen zu 
nutzen, um sicherzustellen, dass die Taktanforderung (Umschaltung 
innerhalb von 4 Taktzyklen) garantiert eingehalten wird - auch ohne 
Optimizer. Entsprechende Beispielcodes findet man in den Datenblättern/ 
ANs der Controller. Wenn du uns nicht mitteilst, welchen Controller du 
tatsächlich einsetzt, dann können wir dir nicht weiterhelfen.

Gruß,
Saga

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.