mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-07-16 02:03:00 -07:00
move the clear buffer outside of potentially time..
... sensitive routines see http://www.proxmark.org/forum/viewtopic.php?id=2820
This commit is contained in:
parent
35cfcfc7a1
commit
3cec706139
5 changed files with 19 additions and 1 deletions
|
@ -61,6 +61,10 @@ void BigBuf_Clear_ext(bool verbose)
|
||||||
Dbprintf("Buffer cleared (%i bytes)",BIGBUF_SIZE);
|
Dbprintf("Buffer cleared (%i bytes)",BIGBUF_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BigBuf_Clear_keep_EM(void)
|
||||||
|
{
|
||||||
|
memset(BigBuf,0,BigBuf_hi);
|
||||||
|
}
|
||||||
|
|
||||||
// allocate a chunk of memory from BigBuf. We allocate high memory first. The unallocated memory
|
// allocate a chunk of memory from BigBuf. We allocate high memory first. The unallocated memory
|
||||||
// at the beginning of BigBuf is always for traces/samples
|
// at the beginning of BigBuf is always for traces/samples
|
||||||
|
|
|
@ -26,6 +26,7 @@ extern uint8_t *BigBuf_get_EM_addr(void);
|
||||||
extern uint16_t BigBuf_max_traceLen(void);
|
extern uint16_t BigBuf_max_traceLen(void);
|
||||||
extern void BigBuf_Clear(void);
|
extern void BigBuf_Clear(void);
|
||||||
extern void BigBuf_Clear_ext(bool verbose);
|
extern void BigBuf_Clear_ext(bool verbose);
|
||||||
|
extern void BigBuf_Clear_keep_EM(void);
|
||||||
extern uint8_t *BigBuf_malloc(uint16_t);
|
extern uint8_t *BigBuf_malloc(uint16_t);
|
||||||
extern void BigBuf_free(void);
|
extern void BigBuf_free(void);
|
||||||
extern void BigBuf_free_keep_EM(void);
|
extern void BigBuf_free_keep_EM(void);
|
||||||
|
|
|
@ -37,6 +37,8 @@ void ModThenAcquireRawAdcSamples125k(uint32_t delay_off, uint32_t period_0, uint
|
||||||
|
|
||||||
sample_config sc = { 0,0,1, divisor_used, 0};
|
sample_config sc = { 0,0,1, divisor_used, 0};
|
||||||
setSamplingConfig(&sc);
|
setSamplingConfig(&sc);
|
||||||
|
//clear read buffer
|
||||||
|
BigBuf_Clear_keep_EM(void);
|
||||||
|
|
||||||
/* Make sure the tag is reset */
|
/* Make sure the tag is reset */
|
||||||
FpgaDownloadAndGo(FPGA_BITSTREAM_LF);
|
FpgaDownloadAndGo(FPGA_BITSTREAM_LF);
|
||||||
|
@ -752,6 +754,9 @@ void CmdHIDdemodFSK(int findone, int *high, int *low, int ledcontrol)
|
||||||
// Configure to go in 125Khz listen mode
|
// Configure to go in 125Khz listen mode
|
||||||
LFSetupFPGAForADC(95, true);
|
LFSetupFPGAForADC(95, true);
|
||||||
|
|
||||||
|
//clear read buffer
|
||||||
|
BigBuf_Clear_keep_EM(void);
|
||||||
|
|
||||||
while(!BUTTON_PRESS() && !usb_poll_validate_length()) {
|
while(!BUTTON_PRESS() && !usb_poll_validate_length()) {
|
||||||
|
|
||||||
WDT_HIT();
|
WDT_HIT();
|
||||||
|
@ -837,6 +842,8 @@ void CmdAWIDdemodFSK(int findone, int *high, int *low, int ledcontrol)
|
||||||
uint8_t *dest = BigBuf_get_addr();
|
uint8_t *dest = BigBuf_get_addr();
|
||||||
size_t size;
|
size_t size;
|
||||||
int idx=0;
|
int idx=0;
|
||||||
|
//clear read buffer
|
||||||
|
BigBuf_Clear_keep_EM(void);
|
||||||
// Configure to go in 125Khz listen mode
|
// Configure to go in 125Khz listen mode
|
||||||
LFSetupFPGAForADC(95, true);
|
LFSetupFPGAForADC(95, true);
|
||||||
|
|
||||||
|
@ -927,6 +934,8 @@ void CmdEM410xdemod(int findone, int *high, int *low, int ledcontrol)
|
||||||
int clk=0, invert=0, errCnt=0, maxErr=20;
|
int clk=0, invert=0, errCnt=0, maxErr=20;
|
||||||
uint32_t hi=0;
|
uint32_t hi=0;
|
||||||
uint64_t lo=0;
|
uint64_t lo=0;
|
||||||
|
//clear read buffer
|
||||||
|
BigBuf_Clear_keep_EM(void);
|
||||||
// Configure to go in 125Khz listen mode
|
// Configure to go in 125Khz listen mode
|
||||||
LFSetupFPGAForADC(95, true);
|
LFSetupFPGAForADC(95, true);
|
||||||
|
|
||||||
|
@ -986,6 +995,8 @@ void CmdIOdemodFSK(int findone, int *high, int *low, int ledcontrol)
|
||||||
uint8_t version=0;
|
uint8_t version=0;
|
||||||
uint8_t facilitycode=0;
|
uint8_t facilitycode=0;
|
||||||
uint16_t number=0;
|
uint16_t number=0;
|
||||||
|
//clear read buffer
|
||||||
|
BigBuf_Clear_keep_EM(void);
|
||||||
// Configure to go in 125Khz listen mode
|
// Configure to go in 125Khz listen mode
|
||||||
LFSetupFPGAForADC(95, true);
|
LFSetupFPGAForADC(95, true);
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,7 @@ uint32_t DoAcquisition(uint8_t decimation, uint32_t bits_per_sample, bool averag
|
||||||
uint8_t *dest = BigBuf_get_addr();
|
uint8_t *dest = BigBuf_get_addr();
|
||||||
int bufsize = BigBuf_max_traceLen();
|
int bufsize = BigBuf_max_traceLen();
|
||||||
|
|
||||||
memset(dest, 0, bufsize);
|
//memset(dest, 0, bufsize); //creates issues with cmdread (marshmellow)
|
||||||
|
|
||||||
if(bits_per_sample < 1) bits_per_sample = 1;
|
if(bits_per_sample < 1) bits_per_sample = 1;
|
||||||
if(bits_per_sample > 8) bits_per_sample = 8;
|
if(bits_per_sample > 8) bits_per_sample = 8;
|
||||||
|
|
|
@ -29,6 +29,8 @@ int DemodPCF7931(uint8_t **outBlocks) {
|
||||||
int num_blocks = 0;
|
int num_blocks = 0;
|
||||||
int lmin=128, lmax=128;
|
int lmin=128, lmax=128;
|
||||||
uint8_t dir;
|
uint8_t dir;
|
||||||
|
//clear read buffer
|
||||||
|
BigBuf_Clear_keep_EM(void);
|
||||||
|
|
||||||
LFSetupFPGAForADC(95, true);
|
LFSetupFPGAForADC(95, true);
|
||||||
DoAcquisition_default(0, true);
|
DoAcquisition_default(0, true);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue