Arduino & sony ericsson: gsm sköld hacka (3 / 11 steg)
Steg 3: Förbereda din arduino
Eftersom det seriella buffert av arduino har en gräns på 64 byte och ett sms i PDU läge är en större vi måste du öka storleken på bufferten som följetong. Den procedur nedan kommer ad en extra arduino i din arduino programvara med en större buffersize.
Lösningen är att skapa en komplett kopia av arduino kärna koden (är det verkligen inte så stor och diskutrymme är billigt), ändra storleken på bufferten i den nya core-koden och sedan skapa en ny styrelse som anges i Arduino IDE som använder denna nya core katalog. De steg att följa är följande...
Hela Arduino kärna koden finns i en katalog som liknar
C:\Program Files\arduino-1.0.5\hardware\arduino\cores\arduino gör en fullständig kopia av denna katalog och spara den till
C:\Program Files\arduino-1.0.5\hardware\arduino\cores\arduino_256_serialbuf hårdkodade buffertstorleken lagras i en fil kallad HardwareSerial.cpp
Här är den standard definition ligger nära toppen av filen
#define SERIAL_BUFFER_SIZE 64 redigera filen HardwareSerial.cpp i den nya katalogen och ändra buffertstorlek
#define SERIAL_BUFFER_SIZE 256 nu måste vi lägga till ett alternativ till boards.txt filen för att använda denna nya katalog. Boards.txt filen bör vara i en katalog som liknar
C:\Program Files\arduino-1.0.5\hardware\arduino nedan är en del av filen boards.txt. Det första avsnittet är för standard Arduino Uno. Du behöver lägga till ett avsnitt under den som visas i Arduino IDE som Arduino Uno (256 seriell buffert). Du kan se katalogen core refereras till vår nya katalog med den ändrade filen (uno256.build.core=arduino_256_serialbuf)
##############################################################
Uno.Name=Arduino Uno uno.upload.protocol=arduino uno.upload.maximum_size=32256 uno.upload.speed=115200 uno.bootloader.low_fuses=0xff uno.bootloader.high_fuses=0xde uno.bootloader.extended_fuses=0x05 uno.bootloader.path=optiboot uno.bootloader.file=optiboot_atmega328.hex uno.bootloader.unlock_bits=0x3F uno.bootloader.lock_bits=0x0F uno.build.mcu=atmega328p uno.build.f_cpu=16000000L uno.build.core=arduino uno.build.variant=standard
##############################################################
uno256.Name = Arduino Uno (256 seriell buffert) uno256.upload.protocol=arduino uno256.upload.maximum_size=32256 uno256.upload.speed=115200 uno256.bootloader.low_fuses=0xff uno256.bootloader.high_fuses=0xde uno256.bootloader.extended_fuses=0x05 uno256.bootloader.path=optiboot uno256.bootloader.file=optiboot_atmega328.hex uno256.bootloader.unlock_bits=0x3F uno256.bootloader.lock_bits=0x0F uno256.build.mcu=atmega328p uno256.build.f_cpu=16000000L uno256.build.core=arduino_256_serialbuf uno256.build.variant=standard
##############################################################
Det är allt du behöver göra. Nu när du vill ha en större seriell buffert (för en specifik ombord) bara välja detta som styrelsen i Arduino IDE och sammanställa som vanligt. Om du vill hacka några andra inställningar i Arduino kärnan, är detta också ett utmärkt sätt att göra det utan att ändra den ursprungliga källan.