diff options
Diffstat (limited to 'Projects/Magstripe')
-rw-r--r-- | Projects/Magstripe/Descriptors.c | 69 | ||||
-rw-r--r-- | Projects/Magstripe/Descriptors.h | 17 | ||||
-rw-r--r-- | Projects/Magstripe/Lib/CircularBitBuffer.c | 35 | ||||
-rw-r--r-- | Projects/Magstripe/Lib/CircularBitBuffer.h | 31 | ||||
-rw-r--r-- | Projects/Magstripe/Lib/MagstripeHW.h | 11 | ||||
-rw-r--r-- | Projects/Magstripe/Magstripe.c | 29 | ||||
-rw-r--r-- | Projects/Magstripe/Magstripe.h | 25 | ||||
-rw-r--r-- | Projects/Magstripe/Magstripe.txt | 13 | ||||
-rw-r--r-- | Projects/Magstripe/makefile | 49 |
9 files changed, 144 insertions, 135 deletions
diff --git a/Projects/Magstripe/Descriptors.c b/Projects/Magstripe/Descriptors.c index 46ee69fee..2a04e5f26 100644 --- a/Projects/Magstripe/Descriptors.c +++ b/Projects/Magstripe/Descriptors.c @@ -1,7 +1,7 @@ /* LUFA Library Copyright (C) Dean Camera, 2010. - + dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ @@ -10,13 +10,13 @@ Copyright 2010 Denver Gingerich (denver [at] ossguy [dot] com) Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -31,11 +31,11 @@ /** \file * - * USB Device Descriptors, for library use when in USB device mode. Descriptors are special + * USB Device Descriptors, for library use when in USB device mode. Descriptors are special * computer-readable structures which the host requests upon device enumeration, to determine - * the device's capabilities and functions. + * the device's capabilities and functions. */ - + #include "Descriptors.h" /** HID report descriptor. This is a HID class specific descriptor, which defines the structure of the @@ -79,22 +79,22 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = USB_Descriptor_Device_t PROGMEM DeviceDescriptor = { .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, - + .USBSpecification = VERSION_BCD(01.10), .Class = 0x00, .SubClass = 0x00, .Protocol = 0x00, - + .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE, - + .VendorID = 0x03EB, .ProductID = 0x2042, .ReleaseNumber = VERSION_BCD(00.01), - + .ManufacturerStrIndex = 0x01, .ProductStrIndex = 0x02, .SerialNumStrIndex = USE_INTERNAL_SERIAL, - + .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS }; @@ -105,49 +105,49 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor = */ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = { - .Config = + .Config = { .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration}, .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t), .TotalInterfaces = 1, - + .ConfigurationNumber = 1, .ConfigurationStrIndex = NO_DESCRIPTOR, - + .ConfigAttributes = (USB_CONFIG_ATTR_BUSPOWERED | USB_CONFIG_ATTR_SELFPOWERED), - + .MaxPowerConsumption = USB_CONFIG_POWER_MA(100) }, - - .HID_Interface = + + .HID_Interface = { .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, .InterfaceNumber = 0x00, .AlternateSetting = 0x00, - + .TotalEndpoints = 1, - + .Class = 0x03, .SubClass = 0x01, .Protocol = 0x01, - + .InterfaceStrIndex = NO_DESCRIPTOR }, - .HID_KeyboardHID = - { + .HID_KeyboardHID = + { .Header = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = HID_DTYPE_HID}, - + .HIDSpec = VERSION_BCD(01.11), .CountryCode = 0x00, .TotalReportDescriptors = 1, .HIDReportType = HID_DTYPE_Report, .HIDReportLength = sizeof(KeyboardReport) }, - - .HID_ReportINEndpoint = + + .HID_ReportINEndpoint = { .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, @@ -160,11 +160,11 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = /** Language descriptor structure. This descriptor, located in FLASH memory, is returned when the host requests * the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate - * via the language ID table available at USB.org what languages the device supports for its string descriptors. */ + * via the language ID table available at USB.org what languages the device supports for its string descriptors. */ USB_Descriptor_String_t PROGMEM LanguageString = { .Header = {.Size = USB_STRING_LEN(1), .Type = DTYPE_String}, - + .UnicodeString = {LANGUAGE_ID_ENG} }; @@ -175,7 +175,7 @@ USB_Descriptor_String_t PROGMEM LanguageString = USB_Descriptor_String_t PROGMEM ManufacturerString = { .Header = {.Size = USB_STRING_LEN(32), .Type = DTYPE_String}, - + .UnicodeString = L"Dean Camera and Denver Gingerich" }; @@ -186,7 +186,7 @@ USB_Descriptor_String_t PROGMEM ManufacturerString = USB_Descriptor_String_t PROGMEM ProductString = { .Header = {.Size = USB_STRING_LEN(20), .Type = DTYPE_String}, - + .UnicodeString = L"Magnetic Card Reader" }; @@ -232,7 +232,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, Size = pgm_read_byte(&ProductString.Header.Size); break; } - + break; case HID_DTYPE_HID: Address = &ConfigurationDescriptor.HID_KeyboardHID; @@ -243,7 +243,8 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, Size = sizeof(KeyboardReport); break; } - + *DescriptorAddress = Address; return Size; } + diff --git a/Projects/Magstripe/Descriptors.h b/Projects/Magstripe/Descriptors.h index 7180bf3e7..963aaac09 100644 --- a/Projects/Magstripe/Descriptors.h +++ b/Projects/Magstripe/Descriptors.h @@ -1,7 +1,7 @@ /* LUFA Library Copyright (C) Dean Camera, 2010. - + dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ @@ -10,13 +10,13 @@ Copyright 2010 Denver Gingerich (denver [at] ossguy [dot] com) Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -55,11 +55,11 @@ USB_HID_Descriptor_HID_t HID_KeyboardHID; /**< Keyboard HID descriptor */ USB_Descriptor_Endpoint_t HID_ReportINEndpoint; /**< Keyboard key report endpoint descriptor */ } USB_Descriptor_Configuration_t; - + /* Macros: */ /** Endpoint number of the keyboard key press reporting endpoint. */ #define KEYBOARD_EPNUM 1 - + /** Size of the keyboard report endpoints, in bytes. */ #define KEYBOARD_EPSIZE 8 @@ -70,3 +70,4 @@ ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); #endif + diff --git a/Projects/Magstripe/Lib/CircularBitBuffer.c b/Projects/Magstripe/Lib/CircularBitBuffer.c index c1b21039c..3b0ca6cd5 100644 --- a/Projects/Magstripe/Lib/CircularBitBuffer.c +++ b/Projects/Magstripe/Lib/CircularBitBuffer.c @@ -1,7 +1,7 @@ /* LUFA Library Copyright (C) Dean Camera, 2010. - + dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ @@ -10,13 +10,13 @@ Copyright 2010 Denver Gingerich (denver [at] ossguy [dot] com) Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -41,7 +41,7 @@ void BitBuffer_Init(BitBuffer_t* const Buffer) { /* Reset the number of stored bits in the buffer */ Buffer->Elements = 0; - + /* Reset the data in and out pointer structures in the buffer to the first buffer bit */ Buffer->In.CurrentByte = Buffer->Data; Buffer->In.ByteMask = (1 << 0); @@ -56,10 +56,10 @@ void BitBuffer_StoreNextBit(BitBuffer_t* const Buffer, /* If the bit to store is true, set the next bit in the buffer */ if (Bit) *Buffer->In.CurrentByte |= Buffer->In.ByteMask; - + /* Increment the number of stored bits in the buffer counter */ Buffer->Elements++; - + /* Check if the current buffer byte is full of stored bits */ if (Buffer->In.ByteMask == (1 << 7)) { @@ -68,8 +68,8 @@ void BitBuffer_StoreNextBit(BitBuffer_t* const Buffer, Buffer->In.CurrentByte++; else Buffer->In.CurrentByte = Buffer->Data; - - /* Reset the storage bit mask in the current buffer byte to the first bit */ + + /* Reset the storage bit mask in the current buffer byte to the first bit */ Buffer->In.ByteMask = (1 << 0); } else @@ -81,7 +81,7 @@ void BitBuffer_StoreNextBit(BitBuffer_t* const Buffer, /** Function to retrieve the next bit stored in the given bit buffer. */ bool BitBuffer_GetNextBit(BitBuffer_t* const Buffer) -{ +{ /* Retrieve the value of the next bit stored in the buffer */ bool Bit = ((*Buffer->Out.CurrentByte & Buffer->Out.ByteMask) != 0); @@ -90,17 +90,17 @@ bool BitBuffer_GetNextBit(BitBuffer_t* const Buffer) /* Decrement the number of stored bits in the buffer counter */ Buffer->Elements--; - - /* Check if the current buffer byte is empty of stored bits */ + + /* Check if the current buffer byte is empty of stored bits */ if (Buffer->Out.ByteMask == (1 << 7)) { /* Check if the end of the buffer has been reached, if so reset to start of buffer, otherwise advance to next bit */ if (Buffer->Out.CurrentByte != &Buffer->Data[sizeof(Buffer->Data) - 1]) Buffer->Out.CurrentByte++; else - Buffer->Out.CurrentByte = Buffer->Data; - - /* Reset the retrieval bit mask in the current buffer byte to the first bit */ + Buffer->Out.CurrentByte = Buffer->Data; + + /* Reset the retrieval bit mask in the current buffer byte to the first bit */ Buffer->Out.ByteMask = (1 << 0); } else @@ -112,3 +112,4 @@ bool BitBuffer_GetNextBit(BitBuffer_t* const Buffer) /* Return the retrieved bit from the buffer */ return Bit; } + diff --git a/Projects/Magstripe/Lib/CircularBitBuffer.h b/Projects/Magstripe/Lib/CircularBitBuffer.h index 04322fbe9..7a04694db 100644 --- a/Projects/Magstripe/Lib/CircularBitBuffer.h +++ b/Projects/Magstripe/Lib/CircularBitBuffer.h @@ -1,7 +1,7 @@ /* LUFA Library Copyright (C) Dean Camera, 2010. - + dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ @@ -10,13 +10,13 @@ Copyright 2010 Denver Gingerich (denver [at] ossguy [dot] com) Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -40,7 +40,7 @@ /* Includes: */ #include <avr/io.h> #include <stdbool.h> - + #include <LUFA/Common/Common.h> /* Macros: */ @@ -51,7 +51,7 @@ #else #define MAX_BITS 1024 #endif - + /* Type Defines: */ /** Type define for a pointer to a bit in a bit buffer. */ typedef struct @@ -65,18 +65,18 @@ { uint8_t Data[MAX_BITS / 8]; /**< Buffer to hold the stored bits in packed form */ uint16_t Elements; /**< Number of stored bits in the bit buffer */ - + BitBufferPointer_t In; /**< Bit pointer to the next storage location in the buffer */ BitBufferPointer_t Out; /**< Bit pointer to the next retrieval location in the buffer */ } BitBuffer_t; - - /* Function Prototypes: */ + + /* Function Prototypes: */ /** Initialises or resets a given bit buffer, ready to store new bits. - * + * * \param[in,out] Buffer Bit buffer to initialize */ void BitBuffer_Init(BitBuffer_t* const Buffer) ATTR_NON_NULL_PTR_ARG(1); - + /** Stores a bit into the next location inside a given bit buffer. * * \param[in,out] Buffer Bit buffer to store a bit into @@ -84,7 +84,7 @@ */ void BitBuffer_StoreNextBit(BitBuffer_t* const Buffer, const bool Bit) ATTR_NON_NULL_PTR_ARG(1); - + /** Retrieves a bit from the next location inside a given bit buffer. * * \param[in,out] Buffer Bit buffer to store a bit into @@ -92,5 +92,6 @@ * \return Next bit from the buffer */ bool BitBuffer_GetNextBit(BitBuffer_t* const Buffer) ATTR_NON_NULL_PTR_ARG(1); - + #endif + diff --git a/Projects/Magstripe/Lib/MagstripeHW.h b/Projects/Magstripe/Lib/MagstripeHW.h index 5b20fc433..5b709a89e 100644 --- a/Projects/Magstripe/Lib/MagstripeHW.h +++ b/Projects/Magstripe/Lib/MagstripeHW.h @@ -2,13 +2,13 @@ Copyright 2010 Denver Gingerich (denver [at] ossguy [dot] com) Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -98,3 +98,4 @@ } #endif + diff --git a/Projects/Magstripe/Magstripe.c b/Projects/Magstripe/Magstripe.c index 9a551a18a..50ca3cab3 100644 --- a/Projects/Magstripe/Magstripe.c +++ b/Projects/Magstripe/Magstripe.c @@ -1,7 +1,7 @@ /* LUFA Library Copyright (C) Dean Camera, 2010. - + dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ @@ -10,13 +10,13 @@ Copyright 2010 Denver Gingerich (denver [at] ossguy [dot] com) Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -28,13 +28,13 @@ arising out of or in connection with the use or performance of this software. */ - + /** \file * * Main source file for the MagStripe reader program. This file contains the main tasks of * the project and is responsible for the initial application hardware configuration. */ - + #include "Magstripe.h" /** Bit buffers to hold the read bits for each of the three magnetic card tracks before they are transmitted @@ -73,10 +73,10 @@ USB_ClassInfo_HID_Device_t Keyboard_HID_Interface = int main(void) { SetupHardware(); - + for (uint8_t Buffer = 0; Buffer < TOTAL_TRACKS; Buffer++) BitBuffer_Init(&TrackDataBuffers[Buffer]); - + sei(); for (;;) @@ -113,7 +113,7 @@ void ReadMagstripeData(void) const struct { uint8_t ClockMask; - uint8_t DataMask; + uint8_t DataMask; } TrackInfo[] = {{MAG_T1_CLOCK, MAG_T1_DATA}, {MAG_T2_CLOCK, MAG_T2_DATA}, {MAG_T3_CLOCK, MAG_T3_DATA}}; @@ -128,7 +128,7 @@ void ReadMagstripeData(void) bool DataPinLevel = ((Magstripe_LCL & TrackInfo[Track].DataMask) != 0); bool ClockPinLevel = ((Magstripe_LCL & TrackInfo[Track].ClockMask) != 0); bool ClockLevelChanged = (((Magstripe_LCL ^ Magstripe_Prev) & TrackInfo[Track].ClockMask) != 0); - + /* Sample data on rising clock edges from the card reader */ if (ClockPinLevel && ClockLevelChanged) BitBuffer_StoreNextBit(&TrackDataBuffers[Track], DataPinLevel); @@ -137,7 +137,7 @@ void ReadMagstripeData(void) Magstripe_Prev = Magstripe_LCL; Magstripe_LCL = Magstripe_GetStatus(); } - + CurrentTrackBuffer = &TrackDataBuffers[0]; } @@ -200,7 +200,7 @@ bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDIn /* Still data in the current track; convert next bit to a 1 or 0 keypress */ KeyboardReport->KeyCode[0] = BitBuffer_GetNextBit(CurrentTrackBuffer) ? KEY_1 : KEY_0; } - + *ReportSize = sizeof(USB_KeyboardReport_Data_t); return false; } @@ -221,3 +221,4 @@ void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDI { // Unused (but mandatory for the HID class driver) in this demo, since there are no Host->Device reports } + diff --git a/Projects/Magstripe/Magstripe.h b/Projects/Magstripe/Magstripe.h index 946ef2ebf..58f3f2373 100644 --- a/Projects/Magstripe/Magstripe.h +++ b/Projects/Magstripe/Magstripe.h @@ -1,7 +1,7 @@ /* LUFA Library Copyright (C) Dean Camera, 2010. - + dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ @@ -10,13 +10,13 @@ Copyright 2010 Denver Gingerich (denver [at] ossguy [dot] com) Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -54,10 +54,10 @@ /* Macros: */ /** Total number of tracks which can be read from the card, between 1 and 3. */ #define TOTAL_TRACKS 3 - + /** HID keyboard keycode to indicate that no is currently pressed. */ #define KEY_NONE 0 - + /** HID keyboard keycode to indicate that the "1" key is currently pressed. */ #define KEY_1 30 @@ -66,11 +66,11 @@ /** HID keyboard keycode to indicate that the enter key is currently pressed. */ #define KEY_ENTER 40 - + /* Function Prototypes: */ void SetupHardware(void); void ReadMagstripeData(void); - + void EVENT_USB_Device_ConfigurationChanged(void); void EVENT_USB_Device_UnhandledControlRequest(void); void EVENT_USB_Device_StartOfFrame(void); @@ -81,9 +81,10 @@ void* ReportData, uint16_t* const ReportSize); void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, - const uint8_t ReportID, + const uint8_t ReportID, const uint8_t ReportType, const void* ReportData, const uint16_t ReportSize); - + #endif + diff --git a/Projects/Magstripe/Magstripe.txt b/Projects/Magstripe/Magstripe.txt index 29258ed49..54715b042 100644 --- a/Projects/Magstripe/Magstripe.txt +++ b/Projects/Magstripe/Magstripe.txt @@ -3,7 +3,7 @@ * This file contains special DoxyGen information for the generation of the main page and other special * documentation pages. It is not a project source file. */ - + /** \mainpage Denver Gingerich's USBSnoop Magnetic Card Reader Project * * \section SSec_Compat Project Compatibility: @@ -26,7 +26,7 @@ * <td><b>USB Class:</b></td> * <td>Human Interface Device (HID)</td> * </tr> - * <tr> + * <tr> * <td><b>USB Subclass:</b></td> * <td>Keyboard</td> * </tr> @@ -40,18 +40,18 @@ * </tr> * </table> * - * \section SSec_Description Project Description: + * \section SSec_Description Project Description: * * Firmware for a USB AVR powered USB TTL magnetic stripe reader (using a card * reader such as the Omron V3B-4K) by Denver Gingerich. This project is designed * to be used with the open source Stripe Snoop project at <a>http://stripesnoop.sourceforge.net/</a>. - * + * * See <a>http://ossguy.com/ss_usb/</a> for the USB reader hardware project website, * including construction and support details. - * + * * To use, connect your magnetic card reader device to the USB AVR as follows (pin and port mapping may be adjusted * from the project makefile): - * + * * <table> * <tr> * <td><b>Signal:</b></td> @@ -162,3 +162,4 @@ * </tr> * </table> */ + diff --git a/Projects/Magstripe/makefile b/Projects/Magstripe/makefile index aed7a1938..2eea2cbd6 100644 --- a/Projects/Magstripe/makefile +++ b/Projects/Magstripe/makefile @@ -47,7 +47,7 @@ # make doxygen = Generate DoxyGen documentation for the project (must have # DoxyGen installed) # -# make debug = Start either simulavr or avarice as specified for debugging, +# make debug = Start either simulavr or avarice as specified for debugging, # with avr-gdb or avr-insight as the front end for debugging. # # make filename.s = Just compile filename.c into the assembler code only. @@ -64,14 +64,14 @@ MCU = at90usb1287 # Target board (see library "Board Types" documentation, NONE for projects not requiring -# LUFA board drivers). If USER is selected, put custom board drivers in a directory called +# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # "Board" inside the application directory. BOARD = NONE # Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to # calculate timings. Do NOT tack on a 'UL' at the end, this will be done # automatically to create a 32-bit value in your source code. # @@ -84,7 +84,7 @@ F_CPU = 16000000 # Input clock frequency. -# This will define a symbol, F_CLOCK, in all source code files equal to the +# This will define a symbol, F_CLOCK, in all source code files equal to the # input clock frequency (before any prescaling is performed) in Hz. This value may # differ from F_CPU if prescaling is used on the latter, and is required as the # raw input clock is fed directly to the PLL sections of the AVR for high speed @@ -147,7 +147,7 @@ SRC = $(TARGET).c \ # List C++ source files here. (C dependencies are automatically generated.) -CPPSRC = +CPPSRC = # List Assembler source files here. @@ -160,7 +160,7 @@ CPPSRC = ASRC = -# Optimization level, can be [0, 1, 2, 3, s]. +# Optimization level, can be [0, 1, 2, 3, s]. # 0 = turn off optimization. s = optimize for size. # (Note: 3 is not always the best optimization level. See avr-libc FAQ.) OPT = s @@ -274,7 +274,7 @@ CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) # for use in COFF files, additional information about filenames # and function names needs to be present in the assembler source # files -- see avr-libc docs [FIXME: not yet described there] -# -listing-cont-lines: Sets the maximum number of continuation lines of hex +# -listing-cont-lines: Sets the maximum number of continuation lines of hex # dump that will be displayed for a given single line of source input. ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:%.S=$(OBJDIR)/%.lst),-gstabs,--listing-cont-lines=100 @@ -287,7 +287,7 @@ PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt # If this is left blank, then it will use the Standard printf version. -PRINTF_LIB = +PRINTF_LIB = #PRINTF_LIB = $(PRINTF_LIB_MIN) #PRINTF_LIB = $(PRINTF_LIB_FLOAT) @@ -299,7 +299,7 @@ SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt # If this is left blank, then it will use the Standard scanf version. -SCANF_LIB = +SCANF_LIB = #SCANF_LIB = $(SCANF_LIB_MIN) #SCANF_LIB = $(SCANF_LIB_FLOAT) @@ -311,7 +311,7 @@ MATH_LIB = -lm # Each directory must be seperated by a space. # Use forward slashes for directory separators. # For a directory that has spaces, enclose it in quotes. -EXTRALIBDIRS = +EXTRALIBDIRS = @@ -334,7 +334,7 @@ EXTMEMOPTS = # -Map: create map file # --cref: add cross reference to map file LDFLAGS = -Wl,-Map=$(TARGET).map,--cref -LDFLAGS += -Wl,--relax +LDFLAGS += -Wl,--relax LDFLAGS += -Wl,--gc-sections LDFLAGS += $(EXTMEMOPTS) LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS)) @@ -368,7 +368,7 @@ AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex #AVRDUDE_NO_VERIFY = -V # Increase verbosity level. Please use this when submitting bug -# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude> +# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude> # to submit bug reports. #AVRDUDE_VERBOSE = -v -v @@ -402,7 +402,7 @@ JTAG_DEV = /dev/com1 DEBUG_PORT = 4242 # Debugging host used to communicate between GDB / avarice / simulavr, normally -# just set to localhost unless doing some sort of crazy debugging when +# just set to localhost unless doing some sort of crazy debugging when # avarice is running on a different computer. DEBUG_HOST = localhost @@ -431,7 +431,7 @@ WINSHELL = cmd MSG_ERRORS_NONE = Errors: none MSG_BEGIN = -------- begin -------- MSG_END = -------- end -------- -MSG_SIZE_BEFORE = Size before: +MSG_SIZE_BEFORE = Size before: MSG_SIZE_AFTER = Size after: MSG_COFF = Converting to AVR COFF: MSG_EXTENDED_COFF = Converting to AVR Extended COFF: @@ -450,10 +450,10 @@ MSG_CREATING_LIBRARY = Creating library: # Define all object files. -OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o) +OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o) # Define all listing files. -LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst) +LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst) # Compiler flags to generate dependency files. @@ -518,11 +518,11 @@ sizeafter: # Display compiler version information. -gccversion : +gccversion : @$(CC) --version -# Program the device. +# Program the device. program: $(TARGET).hex $(TARGET).eep $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) @@ -549,9 +549,9 @@ dfu-ee: $(TARGET).hex $(TARGET).eep # Generate avr-gdb config/init file which does the following: -# define the reset signal, load the target file, connect to target, and set +# define the reset signal, load the target file, connect to target, and set # a breakpoint at main(). -gdb-config: +gdb-config: @$(REMOVE) $(GDBINIT_FILE) @echo define reset >> $(GDBINIT_FILE) @echo SIGNAL SIGHUP >> $(GDBINIT_FILE) @@ -649,14 +649,14 @@ extcoff: $(TARGET).elf $(OBJDIR)/%.o : %.c @echo @echo $(MSG_COMPILING) $< - $(CC) -c $(ALL_CFLAGS) $< -o $@ + $(CC) -c $(ALL_CFLAGS) $< -o $@ # Compile: create object files from C++ source files. $(OBJDIR)/%.o : %.cpp @echo @echo $(MSG_COMPILING_CPP) $< - $(CC) -c $(ALL_CPPFLAGS) $< -o $@ + $(CC) -c $(ALL_CPPFLAGS) $< -o $@ # Compile: create assembler files from C source files. @@ -678,7 +678,7 @@ $(OBJDIR)/%.o : %.S # Create preprocessed source for use in sending a bug report. %.i : %.c - $(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@ + $(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@ # Target: clean project. @@ -722,3 +722,4 @@ $(shell mkdir $(OBJDIR) 2>/dev/null) build elf hex eep lss sym coff extcoff doxygen clean \ clean_list clean_doxygen program dfu flip flip-ee dfu-ee \ debug gdb-config + |