Add a ramfunc section in the data segment, which will be copied to ram on startup.

Add a RAMFUNC function attribute to have functions copied to and run from ram.
Fix "blew circular buffer" error in hf 14a snoop by executing SnoopIso14443a from ram (eats about 3.5k of ram)
This commit is contained in:
henryk@ploetzli.ch 2010-10-08 10:23:04 +00:00
parent 2c3685c26c
commit 6c1e2d95f4
3 changed files with 9 additions and 4 deletions

View file

@ -20,6 +20,10 @@ typedef unsigned char byte_t;
// maybe processed in some way.
uint32_t BigBuf[8000];
// This may be used (sparingly) to declare a function to be copied to
// and executed from RAM
#define RAMFUNC __attribute((long_call, section(".ramfunc")))
/// appmain.h
void ReadMem(int addr);
void __attribute__((noreturn)) AppMain(void);
@ -97,7 +101,7 @@ void ReadSTMemoryIso14443(uint32_t parameter,uint32_t dwLast);
void SnoopIso14443(void);
/// iso14443a.h
void SnoopIso14443a(void);
void RAMFUNC SnoopIso14443a(void);
void SimulateIso14443aTag(int tagType, int TagUid); // ## simulate iso14443a tag
void ReaderIso14443a(UsbCommand * c, UsbCommand * ack);
void ReaderMifare(uint32_t parameter);