mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2026-05-12 11:18:11 -07:00
Make sure RAMFUNC is not inlined, else it won't be in RAM.
Some static RAMFUNC got inlined which means they weren't relocated in RAM. By forcing noinline on RAMFUNC, the following functions move to RAM: F .data 00000034 optimizedSniff F .data 00000148 skipSniff F .data 000002c8 ManchesterDecoding_Thinfilm But ManchesterDecoding_Thinfilm worked fine without being in RAM, so we remove its RAMFUNC attribute and it works as previously, and avoid eating some RAM bytes. In summary, impacted command is only: hf sniff
This commit is contained in:
+1
-1
@@ -695,7 +695,7 @@ RAMFUNC int ManchesterDecoding(uint8_t bit, uint16_t offset, uint32_t non_real_t
|
||||
|
||||
|
||||
// Thinfilm, Kovio mangles ISO14443A in the way that they don't use start bit nor parity bits.
|
||||
static RAMFUNC int ManchesterDecoding_Thinfilm(uint8_t bit) {
|
||||
static int ManchesterDecoding_Thinfilm(uint8_t bit) {
|
||||
|
||||
if (Demod.len == Demod.output_len) {
|
||||
// Flush last parity bits
|
||||
|
||||
+1
-1
@@ -92,7 +92,7 @@ extern bool g_tearoff_enabled;
|
||||
|
||||
|
||||
//#define RAMFUNC __attribute((long_call, section(".ramfunc")))
|
||||
#define RAMFUNC __attribute((long_call, section(".ramfunc"))) __attribute__((target("arm")))
|
||||
#define RAMFUNC __attribute((long_call, section(".ramfunc"))) __attribute__((target("arm"))) __attribute__((noinline))
|
||||
|
||||
#ifndef PM3_ROTR
|
||||
# define PM3_ROTR(x,n) (((uintmax_t)(x) >> (n)) | ((uintmax_t)(x) << ((sizeof(x) * 8) - (n))))
|
||||
|
||||
Reference in New Issue
Block a user