AVR32 User Page Flash auslesen Error (AT32UC3C)

Gast #4137795
Lesenswert?
• ▲
▼
Hi,

ich versuche grade die User Page zu benutzen über die flashc Bibliothek 
und ich bekomme immer eine Exception wenn ich nicht vorher in der main 
einmal einen memcpy ausführe.

zb.:
1
//uint32_t xx = 0;
2
//flashc_memcpy(AVR32_FLASHC_USER_PAGE + (16 * 4), &xx, 4,true);

 Führe ich den momcpy in einer subfunktion auf dann gibt es die selbe 
Exception
1
.org  0x008
2
  // Bus Error Data Fetch.
3
_handle_Bus_Error_Data_Fetch:
4
  rjmp $

hier ein beispielcode
1
void flash_write(uint16_t id, const uint32_t val)
2
{
3
  //while(!flashc_is_ready()) {}
4
  flashc_memcpy(AVR32_FLASHC_USER_PAGE + (id * 4), &val, sizeof(uint32_t), true);
5
}
6

7
uint32_t flash_read(uint16_t id)
8
{
9
  const unsigned volatile char *src = (unsigned char*) (AVR32_FLASHC_USER_PAGE_ADDRESS + (id * 4)); 
10
  volatile uint32_t* res;
11
  while(!flashc_is_ready()) {}
12
  memcpy32(res, src, 1);
13
  return *res;
14
}
15

16
int main (void)
17
{
18

19
//hiermit funktioniert der Code
20
//uint32_t xx = 0;
21
//flashc_memcpy(AVR32_FLASHC_USER_PAGE + (16 * 4), &xx, 4,true);
22
    
23
//hiermit funktioniert der Code nicht
24
uint32_t xx = 0;
25
flash_write(16, xx);
26

27
//Code
28
volatile uint32_t a = 0;
29
volatile uint32_t b = 0;
30
a = flash_read(0); //beim aufruf hier tritt der fehler auf
31
b = flash_read(1);
32
flash_write(0, b);
33
flash_write(1, a);



Das erscheint mit alles etwas unlogisch. ich könnte mir ja erklären dass 
ich vorher mit der memcpy funktion flags setze oder die seite buffere 
oder so, aber warum funktioniert dass dann nicht in einer subfunktion.

wäre echt cool wenn mir jm. sagen könnte wie ich den falsch richtig 
auslese

Vg. Jeff

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.