]> cvs.zerfleddert.de Git - proxmark3-svn/blame - armsrc/apps.h
Switch compiler to arm-eabi instead of arm-elf
[proxmark3-svn] / armsrc / apps.h
CommitLineData
15c4dc5a 1//-----------------------------------------------------------------------------
2// Definitions internal to the app source.
3// Jonathan Westhues, Aug 2005
4// Added ISO14443-A support by Gerhard de Koning Gans, April 2008
5//-----------------------------------------------------------------------------
6
7#ifndef __APPS_H
8#define __APPS_H
9
10#include "stdint.h"
11#include "stddef.h"
12typedef unsigned char byte_t;
13
14// The large multi-purpose buffer, typically used to hold A/D samples,
15// maybe processed in some way.
16DWORD BigBuf[8000];
17
18/// appmain.h
19void ReadMem(int addr);
20void __attribute__((noreturn)) AppMain(void);
21void SamyRun(void);
22//void DbpIntegers(int a, int b, int c);
23void DbpString(char *str);
24void Dbprintf(const char *fmt, ...);
25
26void ToSendStuffBit(int b);
27void ToSendReset(void);
28void ListenReaderField(int limit);
29void AcquireRawAdcSamples125k(BOOL at134khz);
30void DoAcquisition125k(void);
31extern int ToSendMax;
32extern BYTE ToSend[];
33extern DWORD BigBuf[];
34
35/// fpga.h
36void FpgaSendCommand(WORD cmd, WORD v);
37void FpgaWriteConfWord(BYTE v);
38void FpgaDownloadAndGo(void);
39void FpgaGatherVersion(char *dst, int len);
40void FpgaSetupSsc(void);
41void SetupSpi(int mode);
42void FpgaSetupSscDma(BYTE *buf, int len);
43void SetAdcMuxFor(DWORD whichGpio);
44
45// Definitions for the FPGA commands.
46#define FPGA_CMD_SET_CONFREG (1<<12)
47#define FPGA_CMD_SET_DIVISOR (2<<12)
48// Definitions for the FPGA configuration word.
49#define FPGA_MAJOR_MODE_LF_READER (0<<5)
50#define FPGA_MAJOR_MODE_LF_SIMULATOR (1<<5)
51#define FPGA_MAJOR_MODE_HF_READER_TX (2<<5)
52#define FPGA_MAJOR_MODE_HF_READER_RX_XCORR (3<<5)
53#define FPGA_MAJOR_MODE_HF_SIMULATOR (4<<5)
54#define FPGA_MAJOR_MODE_HF_ISO14443A (5<<5)
55#define FPGA_MAJOR_MODE_LF_PASSTHRU (6<<5)
56#define FPGA_MAJOR_MODE_OFF (7<<5)
57// Options for the HF reader, tx to tag
58#define FPGA_HF_READER_TX_SHALLOW_MOD (1<<0)
59// Options for the HF reader, correlating against rx from tag
60#define FPGA_HF_READER_RX_XCORR_848_KHZ (1<<0)
61#define FPGA_HF_READER_RX_XCORR_SNOOP (1<<1)
62#define FPGA_HF_READER_RX_XCORR_QUARTER_FREQ (1<<2)
63// Options for the HF simulated tag, how to modulate
64#define FPGA_HF_SIMULATOR_NO_MODULATION (0<<0)
65#define FPGA_HF_SIMULATOR_MODULATE_BPSK (1<<0)
66#define FPGA_HF_SIMULATOR_MODULATE_212K (2<<0)
67// Options for ISO14443A
68#define FPGA_HF_ISO14443A_SNIFFER (0<<0)
69#define FPGA_HF_ISO14443A_TAGSIM_LISTEN (1<<0)
70#define FPGA_HF_ISO14443A_TAGSIM_MOD (2<<0)
71#define FPGA_HF_ISO14443A_READER_LISTEN (3<<0)
72#define FPGA_HF_ISO14443A_READER_MOD (4<<0)
73
74/// lfops.h
75void AcquireRawAdcSamples125k(BOOL at134khz);
76void ModThenAcquireRawAdcSamples125k(int delay_off,int period_0,int period_1,BYTE *command);
77void ReadTItag(void);
78void WriteTItag(DWORD idhi, DWORD idlo, WORD crc);
79void AcquireTiType(void);
80void AcquireRawBitsTI(void);
81void SimulateTagLowFrequency(int period, int gap, int ledcontrol);
82void CmdHIDsimTAG(int hi, int lo, int ledcontrol);
83void CmdHIDdemodFSK(int findone, int *high, int *low, int ledcontrol);
84void SimulateTagLowFrequencyBidir(int divisor, int max_bitlen);
85
86/// iso14443.h
87void SimulateIso14443Tag(void);
88void AcquireRawAdcSamplesIso14443(DWORD parameter);
89void ReadSRI512Iso14443(DWORD parameter);
90void ReadSRIX4KIso14443(DWORD parameter);
91void ReadSTMemoryIso14443(DWORD parameter,DWORD dwLast);
92void SnoopIso14443(void);
93
94/// iso14443a.h
95void SnoopIso14443a(void);
96void SimulateIso14443aTag(int tagType, int TagUid); // ## simulate iso14443a tag
97void ReaderIso14443a(DWORD parameter);
98void ReaderMifare(DWORD parameter);
99
100/// iso15693.h
101void AcquireRawAdcSamplesIso15693(void);
102void ReaderIso15693(DWORD parameter); // Simulate an ISO15693 reader - greg
103void SimTagIso15693(DWORD parameter); // simulate an ISO15693 tag - greg
104
105/// util.h
106#define LED_RED 1
107#define LED_ORANGE 2
108#define LED_GREEN 4
109#define LED_RED2 8
110#define BUTTON_HOLD 1
111#define BUTTON_NO_CLICK 0
112#define BUTTON_SINGLE_CLICK -1
113#define BUTTON_DOUBLE_CLICK -2
114#define BUTTON_ERROR -99
115int strlen(char *str);
116void *memcpy(void *dest, const void *src, int len);
117void *memset(void *dest, int c, int len);
118int memcmp(const void *av, const void *bv, int len);
119char *strncat(char *dest, const char *src, unsigned int n);
120void num_to_bytes(uint64_t n, size_t len, byte_t* dest);
121uint64_t bytes_to_num(byte_t* src, size_t len);
122
123void SpinDelay(int ms);
124void SpinDelayUs(int us);
125void LED(int led, int ms);
126void LEDsoff();
127int BUTTON_CLICKED(int ms);
128int BUTTON_HELD(int ms);
129void FormatVersionInformation(char *dst, int len, const char *prefix, void *version_information);
130
131#endif
Impressum, Datenschutz