Ja robię to w przerwaniu FIQ, tzn. FIQ jest połączone z przerwaniem zewnętrznym ustawionym na zbocze opadające (na D-). Poniżej kod: asm volatile ( "ldr r8, =0x3FFFC015\n\t" //Fast IOPIN0 "ldr r7, =0xE0004004\n\t"//T0TCR "l... r6, =0xE0004008\n\t" "ldr...
Witam, mam następujący problem: Chcę aby funkcja przy jej wywołaniu kopiowała się na stos po czym dopiero zaczęła się wykonywać. Jest to funkcja zapisu do flasha, a flash nie może być jednocześnie zapisywany i odczytywany. Nie mogę umieścić tej funkcji w RAMie przy pomocy __attribute__ ((long_call,...
Witam. Jestem w trakcie budowy odtwarzacza MP3 na AT91SAM7S256. Generalnie już gra, ale trzeba by troche zoptymalizować dekodowanie by trwało krócej. Większość funkcji dekodera z Helix Community jest w C i z wrzuceniem ich do RAMu nie miałem problemu(atrybuty .section i long_call) lecz nie wiem jak to...
Wyjasnijcie to wyrownanie do 8(robie to na str912 ale to chyba zadna roznica jesli chodiz o ten blad to dotyczy on codesourcery a nie konkretnego proca) Moj skrypt linkera: /** * File: STR91x-ROM.ld * * Project: STR91x Eclipse demo * * Description: Linker script to load the application in...
Dołożyłem definicje dwóch zewnętrznych banków po 64k, XRAM0 i XRAM1: /*************************************... ROM.ld: Linker Script File */ /***********************************...
Witam, czy mogę prosić o konkretny przykład jak to zrobić? Fragment "mojego" pliku linkera poniżej : /* Section Definitions */ SECTIONS { /* first section is .text which is used for code */ .text : { /* Startup code */ KEEP(*(.vectrom))....
Witam ! Zgodnie z dokumentacja do str71x , nie mozna zapisywac nic tym samym banku flash i rownoczesnie z niego czytac. (W moim wypadku czytac/uruchamiac funkcje dot. flasha przy programowaniu image z rs232) "During a Flash write operation any attempt to read the bank under modification will output invalid...
Dodałem przed każdą sekcją "align" .data : AT ( _sidata ) { . = ALIGN(4); /* This is used by the startup in order to initialize the .data secion */ _sdata = . ; . = ALIGN(4); *(.data) . = ALIGN(4); ...
Ok już doczytałem. Dzięki za literaturę! Mogę prosić o potwierzenie/zanegowanie poszczególnych wniosków?: Z tego co zrozumiałem, to moja rozbiegówka zostawia procesor w system mode, rozmiar stosu dla tego trybu to suma pozostałych stosów minus Stack_size zdefiniowany w lpc2148-rom.ld. startup.s ...
#define RAMFUNC __attribute__ ((long_call, section (".fastrun"))) a potem np: RAMFUNC void wyslij(int costam);
Przy zapisie do flasha trzeba spelnic dwa warunki: 1 - funkcja musi byc w RAMie jak sam napisales 2 - musza byc wylaczone przerwania na czas zapisu ja korzystam z tego i dziala :) #define __RAMFUNC __attribute__ ((long_call, section (".fastrun")))...