Hacking Spy Video Trakr II (17 / 18 steg)
Steg 17:
Nedan är C Langusage källan för Trakr App:
////////////////////////////////////////////
relaycontrol app för Spy Video TRAKR.
Programmet söker igenom för att se om knappen A var
pressade på TRAKR remote och uppsättningar GPC0 hög
och GPC1 hög att skicka ström genom
ett relä elektromagnetisk spole. Detta kommer att
Aktivera reläutgång stängning den
krets av en extern enhet.
///////////////////////////////////////////
#include "svt.h" //include officiella API
#include "JAPI.h" //include "Hemliga sås" API
#define GPC0 (1 << 0) //bitmask för pin GPC0 = 00000001
#define GPC1 (1 << 1) //bitmask för pin GPC1 = 00000010
#define GPC2 (1 << 2) //bitmask för pin GPC2 = 00000100
#define GPC3 (1 << 3) //bitmask för pin GPC3 = 00001000
#define GPC4 (1 << 4) //bitmask för pin GPC4 = 00010000
#define GPC5 (1 << 5) //bitmask för pin GPC5 = 00100000
#define GPC6 (1 << 6) //bitmask för pin GPC6 = 01000000
#define GPC7 (1 << 7) //bitmask för pin GPC7 = 10000000
int keyState; definiera "keystate" som heltal
void Start()
{
JAPI_SetIoOutputMode(GPC0+GPC1); //Set Utläge för stift GPC0 och GPC1
}
bool Run()
{
keyState=GetRemoteKeys(); TRAKR fjärrkontroll nedtryckt
tilldela keystate
om (keyState > 0)
{//if keystate är större än 0
IF(keyState&KEY_INPUT1)
{//Button en pressad
JAPI_SetIoHigh(GPC0+GPC1); //Set GPC0 och GPC1 stift hög (3.3V)
} annat {
JAPI_SetIoLow(GPC0+GPC1); Stänga av stift GPC0 och GPC1
}
IF(keyState&KEY_HOME)
{//if hem-knappen intryckt
returnera false; Detta kommer att avslutas loopen
}
}
return true; loopen upprepas tills falskt
}
void End()
{//Program avsluta - Stäng av båda stiften
JAPI_SetIoLow(GPC0+GPC1);
}
Och nästa är gör-fil:
# Makefile för TRAKR leksak
# Trakr projektet
TRACKR_PATH = C:/elinagrip
Programnamn = relaycontrol
PRETTY_NAME = relaycontrol
OUTPUT_PATH =. / mellanliggande
OUTPUT_NAME = $(OUTPUT_PATH) / $(programnamn) Elf
INTERNALS_PATH =... / Internals
KÄLLOR = app.c
S_OBJECTS = $(OUTPUT_PATH)/app.o
OBJEKT = $(S_OBJECTS) $(INTERNALS_PATH)/trakr.a
SHELL = sh
CC = arm-elf-gcc
SOM = arm-elf-as
BIN = arm-elf-ld
LD = arm-elf-ld
TOPMEMORY = 0XFFE7C000
CFLAGS = - O0-JAG... / Internals/Include-jag... / Internals-vägg - gstabs +
TARGET_FLAG = - mcpu = arm926ejs - mapcs-32 - mlittle-endian - specs=specs.semi
LDFLAGS = -T... /Internals/WJ_APP_8M.LD -Wl,--defsym-Wl,__stack_base=$(TOPMEMORY) -Wl,-karta -Wl, $(basename $ - nostartfiles-static
alla: prebuild $(OUTPUT_NAME) postbuild
$(OUTPUT_NAME): $(OBJECTS)
"Länka... "
"Skapa filen $
-u _start -o $@ $(INTERNALS_PATH)/trakr_start.a $(OBJECTS) $(TARGET_FLAG) $(LDFLAGS)
$(OUTPUT_PATH)/app.o:app.c Makefile
"Sammanställa $<"
-c -o "$" $< "$(TARGET_FLAG) $(CFLAGS)
. FALSKA: Rengör prebuild postbuild
ren:
$(RM) -f $(programnamn) .bin
$(RM) -f "$(PRETTY_NAME) .bin"
$(RM) -f $(OUTPUT_PATH)/app.o
$(RM) -f $(OUTPUT_NAME)
$(RM) -f $(MKDEPFILE)
postbuild:
arm-elf-objcopy - O binära $(OUTPUT_NAME) "$(PRETTY_NAME) .bin"
[ -d "E:/" ] ; sedan \
CP "$(PRETTY_NAME) .bin" e:/APPS /; \
Fi
prebuild:
# Slut på Makefile