diff --git a/Bootloaders/CDC/BootloaderCDC.c b/Bootloaders/CDC/BootloaderCDC.c index cb6619edbe..99e0ccb4fd 100644 --- a/Bootloaders/CDC/BootloaderCDC.c +++ b/Bootloaders/CDC/BootloaderCDC.c @@ -39,22 +39,22 @@ /** Contains the current baud rate and other settings of the first virtual serial port. This must be retained as some * operating systems will not open the port unless the settings can be set successfully. */ -CDC_Line_Coding_t LineEncoding = { .BaudRateBPS = 0, - .CharFormat = OneStopBit, - .ParityType = Parity_None, - .DataBits = 8 }; +static CDC_LineEncoding_t LineEncoding = { .BaudRateBPS = 0, + .CharFormat = CDC_LINEENCODING_OneStopBit, + .ParityType = CDC_PARITY_None, + .DataBits = 8 }; /** Current address counter. This stores the current address of the FLASH or EEPROM as set by the host, * and is used when reading or writing to the AVRs memory (either FLASH or EEPROM depending on the issued * command.) */ -uint32_t CurrAddress; +static uint32_t CurrAddress; /** Flag to indicate if the bootloader should be running, or should exit and allow the application code to run * via a watchdog reset. When cleared the bootloader will exit, starting the watchdog and entering an infinite * loop until the AVR restarts and the application runs. */ -bool RunBootloader = true; +static bool RunBootloader = true; /** Main program entry point. This routine configures the hardware required by the bootloader, then continuously @@ -137,24 +137,24 @@ void EVENT_USB_Device_ControlRequest(void) /* Process CDC specific control requests */ switch (USB_ControlRequest.bRequest) { - case REQ_GetLineEncoding: + case CDC_REQ_GetLineEncoding: if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE)) { Endpoint_ClearSETUP(); /* Write the line coding data to the control endpoint */ - Endpoint_Write_Control_Stream_LE(&LineEncoding, sizeof(CDC_Line_Coding_t)); + Endpoint_Write_Control_Stream_LE(&LineEncoding, sizeof(CDC_LineEncoding_t)); Endpoint_ClearOUT(); } break; - case REQ_SetLineEncoding: + case CDC_REQ_SetLineEncoding: if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) { Endpoint_ClearSETUP(); /* Read the line coding data in from the host into the global struct */ - Endpoint_Read_Control_Stream_LE(&LineEncoding, sizeof(CDC_Line_Coding_t)); + Endpoint_Read_Control_Stream_LE(&LineEncoding, sizeof(CDC_LineEncoding_t)); Endpoint_ClearIN(); } diff --git a/Bootloaders/CDC/BootloaderCDC.h b/Bootloaders/CDC/BootloaderCDC.h index b4459137cb..b6bea11e45 100644 --- a/Bootloaders/CDC/BootloaderCDC.h +++ b/Bootloaders/CDC/BootloaderCDC.h @@ -65,50 +65,10 @@ /** Eight character bootloader firmware identifier reported to the host when requested */ #define SOFTWARE_IDENTIFIER "LUFACDC" - /** CDC Class specific request to get the current virtual serial port configuration settings. */ - #define REQ_GetLineEncoding 0x21 - - /** CDC Class specific request to set the current virtual serial port configuration settings. */ - #define REQ_SetLineEncoding 0x20 - /* Type Defines: */ - /** Type define for the virtual serial port line encoding settings, for storing the current USART configuration - * as set by the host via a class specific request. - */ - typedef struct - { - uint32_t BaudRateBPS; /**< Baud rate of the virtual serial port, in bits per second */ - uint8_t CharFormat; /**< Character format of the virtual serial port, a value from the - * CDCDevice_CDC_LineCodingFormats_t enum - */ - uint8_t ParityType; /**< Parity setting of the virtual serial port, a value from the - * CDCDevice_LineCodingParity_t enum - */ - uint8_t DataBits; /**< Bits of data per character of the virtual serial port */ - } CDC_Line_Coding_t; - /** Type define for a non-returning pointer to the start of the loaded application in flash memory. */ typedef void (*AppPtr_t)(void) ATTR_NO_RETURN; - /* Enums: */ - /** Enum for the possible line encoding formats of a virtual serial port. */ - enum CDCDevice_CDC_LineCodingFormats_t - { - OneStopBit = 0, /**< Each frame contains one stop bit */ - OneAndAHalfStopBits = 1, /**< Each frame contains one and a half stop bits */ - TwoStopBits = 2, /**< Each frame contains two stop bits */ - }; - - /** Enum for the possible line encoding parity settings of a virtual serial port. */ - enum CDCDevice_LineCodingParity_t - { - Parity_None = 0, /**< No parity bit mode on each frame */ - Parity_Odd = 1, /**< Odd parity bit mode on each frame */ - Parity_Even = 2, /**< Even parity bit mode on each frame */ - Parity_Mark = 3, /**< Mark parity bit mode on each frame */ - Parity_Space = 4, /**< Space parity bit mode on each frame */ - }; - /* Function Prototypes: */ void CDC_Task(void); void SetupHardware(void); diff --git a/Bootloaders/DFU/BootloaderDFU.c b/Bootloaders/DFU/BootloaderDFU.c index 41b3e37baa..717c934e59 100644 --- a/Bootloaders/DFU/BootloaderDFU.c +++ b/Bootloaders/DFU/BootloaderDFU.c @@ -40,57 +40,57 @@ * other than erase. This is initially set to the value set by SECURE_MODE, and cleared by the bootloader * once a memory erase has completed in a bootloader session. */ -bool IsSecure = SECURE_MODE; +static bool IsSecure = SECURE_MODE; /** Flag to indicate if the bootloader should be running, or should exit and allow the application code to run * via a soft reset. When cleared, the bootloader will abort, the USB interface will shut down and the application * jumped to via an indirect jump to location 0x0000 (or other location specified by the host). */ -bool RunBootloader = true; +static bool RunBootloader = true; /** Flag to indicate if the bootloader is waiting to exit. When the host requests the bootloader to exit and * jump to the application address it specifies, it sends two sequential commands which must be properly * acknowledged. Upon reception of the first the RunBootloader flag is cleared and the WaitForExit flag is set, * causing the bootloader to wait for the final exit command before shutting down. */ -bool WaitForExit = false; +static bool WaitForExit = false; /** Current DFU state machine state, one of the values in the DFU_State_t enum. */ -uint8_t DFU_State = dfuIDLE; +static uint8_t DFU_State = dfuIDLE; /** Status code of the last executed DFU command. This is set to one of the values in the DFU_Status_t enum after * each operation, and returned to the host when a Get Status DFU request is issued. */ -uint8_t DFU_Status = OK; +static uint8_t DFU_Status = OK; /** Data containing the DFU command sent from the host. */ -DFU_Command_t SentCommand; +static DFU_Command_t SentCommand; /** Response to the last issued Read Data DFU command. Unlike other DFU commands, the read command * requires a single byte response from the bootloader containing the read data when the next DFU_UPLOAD command * is issued by the host. */ -uint8_t ResponseByte; +static uint8_t ResponseByte; /** Pointer to the start of the user application. By default this is 0x0000 (the reset vector), however the host * may specify an alternate address when issuing the application soft-start command. */ -AppPtr_t AppStartPtr = (AppPtr_t)0x0000; +static AppPtr_t AppStartPtr = (AppPtr_t)0x0000; /** 64-bit flash page number. This is concatenated with the current 16-bit address on USB AVRs containing more than * 64KB of flash memory. */ -uint8_t Flash64KBPage = 0; +static uint8_t Flash64KBPage = 0; /** Memory start address, indicating the current address in the memory being addressed (either FLASH or EEPROM * depending on the issued command from the host). */ -uint16_t StartAddr = 0x0000; +static uint16_t StartAddr = 0x0000; /** Memory end address, indicating the end address to read to/write from in the memory being addressed (either FLASH * of EEPROM depending on the issued command from the host). */ -uint16_t EndAddr = 0x0000; +static uint16_t EndAddr = 0x0000; /** Main program entry point. This routine configures the hardware required by the bootloader, then continuously @@ -180,7 +180,7 @@ void EVENT_USB_Device_ControlRequest(void) switch (USB_ControlRequest.bRequest) { - case REQ_DFU_DNLOAD: + case DFU_REQ_DNLOAD: Endpoint_ClearSETUP(); /* Check if bootloader is waiting to terminate */ @@ -333,7 +333,7 @@ void EVENT_USB_Device_ControlRequest(void) Endpoint_ClearStatusStage(); break; - case REQ_DFU_UPLOAD: + case DFU_REQ_UPLOAD: Endpoint_ClearSETUP(); while (!(Endpoint_IsINReady())) @@ -432,7 +432,7 @@ void EVENT_USB_Device_ControlRequest(void) Endpoint_ClearStatusStage(); break; - case REQ_DFU_GETSTATUS: + case DFU_REQ_GETSTATUS: Endpoint_ClearSETUP(); /* Write 8-bit status value */ @@ -452,7 +452,7 @@ void EVENT_USB_Device_ControlRequest(void) Endpoint_ClearStatusStage(); break; - case REQ_DFU_CLRSTATUS: + case DFU_REQ_CLRSTATUS: Endpoint_ClearSETUP(); /* Reset the status value variable to the default OK status */ @@ -460,7 +460,7 @@ void EVENT_USB_Device_ControlRequest(void) Endpoint_ClearStatusStage(); break; - case REQ_DFU_GETSTATE: + case DFU_REQ_GETSTATE: Endpoint_ClearSETUP(); /* Write the current device state to the endpoint */ @@ -470,7 +470,7 @@ void EVENT_USB_Device_ControlRequest(void) Endpoint_ClearStatusStage(); break; - case REQ_DFU_ABORT: + case DFU_REQ_ABORT: Endpoint_ClearSETUP(); /* Reset the current state variable to the default idle state */ diff --git a/Bootloaders/DFU/BootloaderDFU.h b/Bootloaders/DFU/BootloaderDFU.h index 545548d842..1c1ebba6cf 100644 --- a/Bootloaders/DFU/BootloaderDFU.h +++ b/Bootloaders/DFU/BootloaderDFU.h @@ -103,25 +103,25 @@ #define DFU_FILLER_BYTES_SIZE 26 /** DFU class command request to detach from the host. */ - #define REQ_DFU_DETATCH 0x00 + #define DFU_REQ_DETATCH 0x00 /** DFU class command request to send data from the host to the bootloader. */ - #define REQ_DFU_DNLOAD 0x01 + #define DFU_REQ_DNLOAD 0x01 /** DFU class command request to send data from the bootloader to the host. */ - #define REQ_DFU_UPLOAD 0x02 + #define DFU_REQ_UPLOAD 0x02 /** DFU class command request to get the current DFU status and state from the bootloader. */ - #define REQ_DFU_GETSTATUS 0x03 + #define DFU_REQ_GETSTATUS 0x03 /** DFU class command request to reset the current DFU status and state variables to their defaults. */ - #define REQ_DFU_CLRSTATUS 0x04 + #define DFU_REQ_CLRSTATUS 0x04 /** DFU class command request to get the current DFU state of the bootloader. */ - #define REQ_DFU_GETSTATE 0x05 + #define DFU_REQ_GETSTATE 0x05 /** DFU class command request to abort the current multi-request transfer and return to the dfuIDLE state. */ - #define REQ_DFU_ABORT 0x06 + #define DFU_REQ_ABORT 0x06 /** DFU command to begin programming the device's memory. */ #define COMMAND_PROG_START 0x01 diff --git a/Bootloaders/HID/BootloaderHID.c b/Bootloaders/HID/BootloaderHID.c index 9c6b3e051a..174041e456 100644 --- a/Bootloaders/HID/BootloaderHID.c +++ b/Bootloaders/HID/BootloaderHID.c @@ -39,7 +39,7 @@ * via a soft reset. When cleared, the bootloader will abort, the USB interface will shut down and the application * started via a forced watchdog reset. */ -bool RunBootloader = true; +static bool RunBootloader = true; /** Main program entry point. This routine configures the hardware required by the bootloader, then continuously * runs the bootloader processing routine until instructed to soft-exit. @@ -127,7 +127,7 @@ void EVENT_USB_Device_ControlRequest(void) boot_spm_busy_wait(); /* Write each of the FLASH page's bytes in sequence */ - for (uint16_t PageByte = 0; PageByte < SPM_PAGESIZE; PageByte += 2) + for (uint8_t PageWord = 0; PageWord < (SPM_PAGESIZE / 2); PageWord++) { /* Check if endpoint is empty - if so clear it and wait until ready for next packet */ if (!(Endpoint_BytesInEndpoint())) @@ -137,7 +137,7 @@ void EVENT_USB_Device_ControlRequest(void) } /* Write the next data word to the FLASH page */ - boot_page_fill(PageAddress + PageByte, Endpoint_Read_Word_LE()); + boot_page_fill(PageAddress + ((uint16_t)PageWord << 1), Endpoint_Read_Word_LE()); } /* Write the filled FLASH page to memory */ diff --git a/Bootloaders/HID/BootloaderHID.txt b/Bootloaders/HID/BootloaderHID.txt index 9b47ff3c63..51dceb8319 100644 --- a/Bootloaders/HID/BootloaderHID.txt +++ b/Bootloaders/HID/BootloaderHID.txt @@ -51,9 +51,10 @@ * from PJRC, used with permission. This bootloader is delibertely non-compatible with the properietary HalfKay * bootloader GUI; only the command line interface software accompanying this bootloader will work with it. * - * Out of the box this bootloader builds for the USB1287, and will fit into 4KB of bootloader space. If - * you wish to enlarge this space and/or change the AVR model, you will need to edit the BOOT_START and MCU - * values in the accompanying makefile. + * Out of the box this bootloader builds for the USB1287, and will fit into 2KB of bootloader space for the + * Series 2 USB AVRs (ATMEGAxxU2, AT90USBxx2) or 4KB of bootloader space for all other models. If you wish to + * enlarge this space and/or change the AVR model, you will need to edit the BOOT_START and MCU values in the + * accompanying makefile. * * \section SSec_Options Project Options * diff --git a/Bootloaders/HID/Descriptors.c b/Bootloaders/HID/Descriptors.c index 0a63b79255..f79d34686f 100644 --- a/Bootloaders/HID/Descriptors.c +++ b/Bootloaders/HID/Descriptors.c @@ -43,12 +43,12 @@ * the device will send, and what it may be sent back from the host. Refer to the HID specification for * more details on HID report descriptors. */ -USB_Descriptor_HIDReport_Datatype_t HIDReport[] = +const USB_Descriptor_HIDReport_Datatype_t HIDReport[] = { - HID_RI_USAGE_PAGE(16, 0xFF00), /* Vendor Page 1 */ - HID_RI_USAGE(8, 0x01), /* Vendor Usage 1 */ + HID_RI_USAGE_PAGE(16, 0xFFDC), /* Vendor Page 0xDC */ + HID_RI_USAGE(8, 0xFB), /* Vendor Usage 0xFB */ HID_RI_COLLECTION(8, 0x01), /* Vendor Usage 1 */ - HID_RI_USAGE(8, 0x03), /* Vendor Usage 3 */ + HID_RI_USAGE(8, 0x02), /* Vendor Usage 2 */ HID_RI_LOGICAL_MINIMUM(8, 0x00), HID_RI_LOGICAL_MAXIMUM(8, 0xFF), HID_RI_REPORT_SIZE(8, 0x08), @@ -62,7 +62,7 @@ USB_Descriptor_HIDReport_Datatype_t HIDReport[] = * number of device configurations. The descriptor is read out by the USB host when the enumeration * process begins. */ -USB_Descriptor_Device_t DeviceDescriptor = +const USB_Descriptor_Device_t DeviceDescriptor = { .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, @@ -89,7 +89,7 @@ USB_Descriptor_Device_t DeviceDescriptor = * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting * a configuration so that the host may correctly communicate with the USB device. */ -USB_Descriptor_Configuration_t ConfigurationDescriptor = +const USB_Descriptor_Configuration_t ConfigurationDescriptor = { .Config = { @@ -154,33 +154,23 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, const void** const DescriptorAddress) { - const uint8_t DescriptorType = (wValue >> 8); + const uint8_t DescriptorType = (wValue >> 8); const void* Address = NULL; uint16_t Size = NO_DESCRIPTOR; - /* If/Else If chain compiles slightly smaller than a switch case */ if (DescriptorType == DTYPE_Device) - { - Address = &DeviceDescriptor; - Size = sizeof(USB_Descriptor_Device_t); - } + Address = &DeviceDescriptor; else if (DescriptorType == DTYPE_Configuration) - { - Address = &ConfigurationDescriptor; - Size = sizeof(USB_Descriptor_Configuration_t); - } + Address = &ConfigurationDescriptor; else if (DescriptorType == HID_DTYPE_HID) - { - Address = &ConfigurationDescriptor.HID_VendorHID; - Size = sizeof(USB_HID_Descriptor_HID_t); - } + Address = &ConfigurationDescriptor.HID_VendorHID; else - { - Address = &HIDReport; - Size = sizeof(HIDReport); - } + Address = &HIDReport; + if (Address != NULL) + Size = (Address == &HIDReport) ? sizeof(HIDReport) : ((USB_Descriptor_Header_t*)Address)->Size; + *DescriptorAddress = Address; return Size; } diff --git a/Bootloaders/HID/makefile b/Bootloaders/HID/makefile index 81561c3712..338bafa015 100644 --- a/Bootloaders/HID/makefile +++ b/Bootloaders/HID/makefile @@ -91,7 +91,7 @@ F_CLOCK = $(F_CPU) # Note that the bootloader size and start address given in AVRStudio is in words and not # bytes, and so will need to be doubled to obtain the byte address needed by AVR-GCC. FLASH_SIZE_KB = 128 -BOOT_SECTION_SIZE_KB = 2 +BOOT_SECTION_SIZE_KB = 4 BOOT_START = 0x$(shell echo "obase=16; ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024" | bc) @@ -124,6 +124,7 @@ LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENAB LUFA_OPTS += -D NO_INTERNAL_SERIAL LUFA_OPTS += -D NO_DEVICE_SELF_POWER LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP +LUFA_OPTS += -D NO_SOF_EVENTS # Create the LUFA source path variables by including the LUFA root makefile diff --git a/Demos/Device/ClassDriver/AudioInput/AudioInput.c b/Demos/Device/ClassDriver/AudioInput/AudioInput.c index 9c9b79daea..b197588a8e 100644 --- a/Demos/Device/ClassDriver/AudioInput/AudioInput.c +++ b/Demos/Device/ClassDriver/AudioInput/AudioInput.c @@ -51,6 +51,7 @@ USB_ClassInfo_Audio_Device_t Microphone_Audio_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c index 1ad146e166..dbfd10b8bb 100644 --- a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c +++ b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c @@ -51,6 +51,7 @@ USB_ClassInfo_Audio_Device_t Speaker_Audio_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c index e2cf4f0b20..a50e77e3f7 100644 --- a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c +++ b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c @@ -86,6 +86,7 @@ USB_ClassInfo_CDC_Device_t VirtualSerial2_CDC_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Demos/Device/ClassDriver/GenericHID/GenericHID.c b/Demos/Device/ClassDriver/GenericHID/GenericHID.c index 657c2bfa91..c6b8570425 100644 --- a/Demos/Device/ClassDriver/GenericHID/GenericHID.c +++ b/Demos/Device/ClassDriver/GenericHID/GenericHID.c @@ -37,10 +37,10 @@ #include "GenericHID.h" /** Buffer to hold the previously generated HID report, for comparison purposes inside the HID class driver. */ -uint8_t PrevHIDReportBuffer[GENERIC_REPORT_SIZE]; +static uint8_t PrevHIDReportBuffer[GENERIC_REPORT_SIZE]; /** Structure to contain reports from the host, so that they can be echoed back upon request */ -struct +static struct { uint8_t ReportID; uint16_t ReportSize; @@ -66,6 +66,7 @@ USB_ClassInfo_HID_Device_t Generic_HID_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Demos/Device/ClassDriver/Joystick/Joystick.c b/Demos/Device/ClassDriver/Joystick/Joystick.c index 6e9f4ee721..3a8897fa86 100644 --- a/Demos/Device/ClassDriver/Joystick/Joystick.c +++ b/Demos/Device/ClassDriver/Joystick/Joystick.c @@ -37,7 +37,7 @@ #include "Joystick.h" /** Buffer to hold the previously generated HID report, for comparison purposes inside the HID class driver. */ -uint8_t PrevJoystickHIDReportBuffer[sizeof(USB_JoystickReport_Data_t)]; +static uint8_t PrevJoystickHIDReportBuffer[sizeof(USB_JoystickReport_Data_t)]; /** LUFA HID Class driver interface configuration and state information. This structure is * passed to all HID Class driver functions, so that multiple instances of the same class @@ -58,6 +58,7 @@ USB_ClassInfo_HID_Device_t Joystick_HID_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Demos/Device/ClassDriver/Keyboard/Keyboard.c b/Demos/Device/ClassDriver/Keyboard/Keyboard.c index 7777b6f1ba..42ea12d805 100644 --- a/Demos/Device/ClassDriver/Keyboard/Keyboard.c +++ b/Demos/Device/ClassDriver/Keyboard/Keyboard.c @@ -37,7 +37,7 @@ #include "Keyboard.h" /** Buffer to hold the previously generated Keyboard HID report, for comparison purposes inside the HID class driver. */ -uint8_t PrevKeyboardHIDReportBuffer[sizeof(USB_KeyboardReport_Data_t)]; +static uint8_t PrevKeyboardHIDReportBuffer[sizeof(USB_KeyboardReport_Data_t)]; /** LUFA HID Class driver interface configuration and state information. This structure is * passed to all HID Class driver functions, so that multiple instances of the same class @@ -58,6 +58,7 @@ USB_ClassInfo_HID_Device_t Keyboard_HID_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c b/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c index 5563cda727..8b30c463e4 100644 --- a/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c +++ b/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c @@ -37,10 +37,10 @@ #include "KeyboardMouse.h" /** Buffer to hold the previously generated Keyboard HID report, for comparison purposes inside the HID class driver. */ -uint8_t PrevKeyboardHIDReportBuffer[sizeof(USB_KeyboardReport_Data_t)]; +static uint8_t PrevKeyboardHIDReportBuffer[sizeof(USB_KeyboardReport_Data_t)]; /** Buffer to hold the previously generated Mouse HID report, for comparison purposes inside the HID class driver. */ -uint8_t PrevMouseHIDReportBuffer[sizeof(USB_MouseReport_Data_t)]; +static uint8_t PrevMouseHIDReportBuffer[sizeof(USB_MouseReport_Data_t)]; /** LUFA HID Class driver interface configuration and state information. This structure is * passed to all HID Class driver functions, so that multiple instances of the same class @@ -81,6 +81,7 @@ USB_ClassInfo_HID_Device_t Mouse_HID_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Demos/Device/ClassDriver/KeyboardMouseMultiReport/KeyboardMouseMultiReport.c b/Demos/Device/ClassDriver/KeyboardMouseMultiReport/KeyboardMouseMultiReport.c index e936443b24..307e330d3a 100644 --- a/Demos/Device/ClassDriver/KeyboardMouseMultiReport/KeyboardMouseMultiReport.c +++ b/Demos/Device/ClassDriver/KeyboardMouseMultiReport/KeyboardMouseMultiReport.c @@ -37,7 +37,7 @@ #include "KeyboardMouseMultiReport.h" /** Buffer to hold the previously generated HID report, for comparison purposes inside the HID class driver. */ -uint8_t PrevHIDReportBuffer[MAX(sizeof(USB_KeyboardReport_Data_t), sizeof(USB_MouseReport_Data_t))]; +static uint8_t PrevHIDReportBuffer[MAX(sizeof(USB_KeyboardReport_Data_t), sizeof(USB_MouseReport_Data_t))]; /** LUFA HID Class driver interface configuration and state information. This structure is * passed to all HID Class driver functions, so that multiple instances of the same class @@ -58,6 +58,7 @@ USB_ClassInfo_HID_Device_t Device_HID_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Demos/Device/ClassDriver/MIDI/MIDI.c b/Demos/Device/ClassDriver/MIDI/MIDI.c index da2e7c1321..cbf1198699 100644 --- a/Demos/Device/ClassDriver/MIDI/MIDI.c +++ b/Demos/Device/ClassDriver/MIDI/MIDI.c @@ -56,6 +56,7 @@ USB_ClassInfo_MIDI_Device_t Keyboard_MIDI_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Demos/Device/ClassDriver/MassStorage/Lib/SCSI.c b/Demos/Device/ClassDriver/MassStorage/Lib/SCSI.c index be6a7903a0..14421dfdc4 100644 --- a/Demos/Device/ClassDriver/MassStorage/Lib/SCSI.c +++ b/Demos/Device/ClassDriver/MassStorage/Lib/SCSI.c @@ -41,7 +41,7 @@ /** Structure to hold the SCSI response data to a SCSI INQUIRY command. This gives information about the device's * features and capabilities. */ -SCSI_Inquiry_Response_t InquiryData = +static const SCSI_Inquiry_Response_t InquiryData = { .DeviceType = DEVICE_TYPE_BLOCK, .PeripheralQualifier = 0, @@ -73,7 +73,7 @@ SCSI_Inquiry_Response_t InquiryData = /** Structure to hold the sense data for the last issued SCSI command, which is returned to the host after a SCSI REQUEST SENSE * command is issued. This gives information on exactly why the last command failed to complete. */ -SCSI_Request_Sense_Response_t SenseData = +static SCSI_Request_Sense_Response_t SenseData = { .ResponseCode = 0x70, .AdditionalLength = 0x0A, diff --git a/Demos/Device/ClassDriver/MassStorage/MassStorage.c b/Demos/Device/ClassDriver/MassStorage/MassStorage.c index b19279873f..87b8500de0 100644 --- a/Demos/Device/ClassDriver/MassStorage/MassStorage.c +++ b/Demos/Device/ClassDriver/MassStorage/MassStorage.c @@ -58,6 +58,7 @@ USB_ClassInfo_MS_Device_t Disk_MS_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/Lib/SCSI.c b/Demos/Device/ClassDriver/MassStorageKeyboard/Lib/SCSI.c index 83719bf786..eec83086ca 100644 --- a/Demos/Device/ClassDriver/MassStorageKeyboard/Lib/SCSI.c +++ b/Demos/Device/ClassDriver/MassStorageKeyboard/Lib/SCSI.c @@ -41,7 +41,7 @@ /** Structure to hold the SCSI response data to a SCSI INQUIRY command. This gives information about the device's * features and capabilities. */ -SCSI_Inquiry_Response_t InquiryData = +static const SCSI_Inquiry_Response_t InquiryData = { .DeviceType = DEVICE_TYPE_BLOCK, .PeripheralQualifier = 0, @@ -73,7 +73,7 @@ SCSI_Inquiry_Response_t InquiryData = /** Structure to hold the sense data for the last issued SCSI command, which is returned to the host after a SCSI REQUEST SENSE * command is issued. This gives information on exactly why the last command failed to complete. */ -SCSI_Request_Sense_Response_t SenseData = +static SCSI_Request_Sense_Response_t SenseData = { .ResponseCode = 0x70, .AdditionalLength = 0x0A, diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.c b/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.c index 6a08196378..f891ec9143 100644 --- a/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.c +++ b/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.c @@ -60,7 +60,7 @@ USB_ClassInfo_MS_Device_t Disk_MS_Interface = }; /** Buffer to hold the previously generated Keyboard HID report, for comparison purposes inside the HID class driver. */ -uint8_t PrevKeyboardHIDReportBuffer[sizeof(USB_KeyboardReport_Data_t)]; +static uint8_t PrevKeyboardHIDReportBuffer[sizeof(USB_KeyboardReport_Data_t)]; /** LUFA HID Class driver interface configuration and state information. This structure is * passed to all HID Class driver functions, so that multiple instances of the same class diff --git a/Demos/Device/ClassDriver/Mouse/Mouse.c b/Demos/Device/ClassDriver/Mouse/Mouse.c index b09c4cb5b3..bc0153f080 100644 --- a/Demos/Device/ClassDriver/Mouse/Mouse.c +++ b/Demos/Device/ClassDriver/Mouse/Mouse.c @@ -37,7 +37,7 @@ #include "Mouse.h" /** Buffer to hold the previously generated Mouse HID report, for comparison purposes inside the HID class driver. */ -uint8_t PrevMouseHIDReportBuffer[sizeof(USB_MouseReport_Data_t)]; +static uint8_t PrevMouseHIDReportBuffer[sizeof(USB_MouseReport_Data_t)]; /** LUFA HID Class driver interface configuration and state information. This structure is * passed to all HID Class driver functions, so that multiple instances of the same class @@ -58,6 +58,7 @@ USB_ClassInfo_HID_Device_t Mouse_HID_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.c b/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.c index 585604672f..e14f3f1de6 100644 --- a/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.c +++ b/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.c @@ -63,6 +63,7 @@ USB_ClassInfo_RNDIS_Device_t Ethernet_RNDIS_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c b/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c index 6dac7b9b01..c532f4f9dd 100644 --- a/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c +++ b/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c @@ -65,6 +65,7 @@ USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface = */ static FILE USBSerialStream; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c b/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c index 30e9cdff0b..849e0634c5 100644 --- a/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c +++ b/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c @@ -61,7 +61,7 @@ USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface = }; /** Buffer to hold the previously generated Mouse HID report, for comparison purposes inside the HID class driver. */ -uint8_t PrevMouseHIDReportBuffer[sizeof(USB_MouseReport_Data_t)]; +static uint8_t PrevMouseHIDReportBuffer[sizeof(USB_MouseReport_Data_t)]; /** LUFA HID Class driver interface configuration and state information. This structure is * passed to all HID Class driver functions, so that multiple instances of the same class @@ -82,6 +82,7 @@ USB_ClassInfo_HID_Device_t Mouse_HID_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.c b/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.c index a2f3cca865..c393da8ae5 100644 --- a/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.c +++ b/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.c @@ -53,19 +53,19 @@ TMC_Capabilities_t Capabilities = }; /** Current TMC control request that is being processed */ -uint8_t RequestInProgress = 0; +static uint8_t RequestInProgress = 0; /** Stream callback abort flag for bulk IN data */ -bool IsTMCBulkINReset = false; +static bool IsTMCBulkINReset = false; /** Stream callback abort flag for bulk OUT data */ -bool IsTMCBulkOUTReset = false; +static bool IsTMCBulkOUTReset = false; /** Last used tag value for data transfers */ -uint8_t CurrentTransferTag = 0; +static uint8_t CurrentTransferTag = 0; /** Length of last data transfer, for reporting to the host in case an in-progress transfer is aborted */ -uint32_t LastTransferLength = 0; +static uint32_t LastTransferLength = 0; /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. diff --git a/Demos/Device/LowLevel/AudioInput/AudioInput.c b/Demos/Device/LowLevel/AudioInput/AudioInput.c index ab5af7364d..ac819c1b0e 100644 --- a/Demos/Device/LowLevel/AudioInput/AudioInput.c +++ b/Demos/Device/LowLevel/AudioInput/AudioInput.c @@ -37,7 +37,8 @@ #include "AudioInput.h" /** Flag to indicate if the streaming audio alternative interface has been selected by the host. */ -bool StreamingAudioInterfaceSelected = false; +static bool StreamingAudioInterfaceSelected = false; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. diff --git a/Demos/Device/LowLevel/AudioOutput/AudioOutput.c b/Demos/Device/LowLevel/AudioOutput/AudioOutput.c index 8260732305..64a297315b 100644 --- a/Demos/Device/LowLevel/AudioOutput/AudioOutput.c +++ b/Demos/Device/LowLevel/AudioOutput/AudioOutput.c @@ -37,7 +37,8 @@ #include "AudioOutput.h" /** Flag to indicate if the streaming audio alternative interface has been selected by the host. */ -bool StreamingAudioInterfaceSelected = false; +static bool StreamingAudioInterfaceSelected = false; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. diff --git a/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.c b/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.c index 14aa0be715..b9391296bb 100644 --- a/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.c +++ b/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.c @@ -44,10 +44,10 @@ * It is possible to completely ignore these value or use other settings as the host is completely unaware of the physical * serial link characteristics and instead sends and receives data in endpoint streams. */ -CDC_LineEncoding_t LineEncoding1 = { .BaudRateBPS = 0, - .CharFormat = CDC_LINEENCODING_OneStopBit, - .ParityType = CDC_PARITY_None, - .DataBits = 8 }; +static CDC_LineEncoding_t LineEncoding1 = { .BaudRateBPS = 0, + .CharFormat = CDC_LINEENCODING_OneStopBit, + .ParityType = CDC_PARITY_None, + .DataBits = 8 }; /** Contains the current baud rate and other settings of the second virtual serial port. While this demo does not use * the physical USART and thus does not use these settings, they must still be retained and returned to the host @@ -57,10 +57,10 @@ CDC_LineEncoding_t LineEncoding1 = { .BaudRateBPS = 0, * It is possible to completely ignore these value or use other settings as the host is completely unaware of the physical * serial link characteristics and instead sends and receives data in endpoint streams. */ -CDC_LineEncoding_t LineEncoding2 = { .BaudRateBPS = 0, - .CharFormat = CDC_LINEENCODING_OneStopBit, - .ParityType = CDC_PARITY_None, - .DataBits = 8 }; +static CDC_LineEncoding_t LineEncoding2 = { .BaudRateBPS = 0, + .CharFormat = CDC_LINEENCODING_OneStopBit, + .ParityType = CDC_PARITY_None, + .DataBits = 8 }; /** Main program entry point. This routine configures the hardware required by the application, then diff --git a/Demos/Device/LowLevel/Keyboard/Keyboard.c b/Demos/Device/LowLevel/Keyboard/Keyboard.c index 94f0f7deba..5ff7247782 100644 --- a/Demos/Device/LowLevel/Keyboard/Keyboard.c +++ b/Demos/Device/LowLevel/Keyboard/Keyboard.c @@ -40,18 +40,18 @@ /** Indicates what report mode the host has requested, true for normal HID reporting mode, false for special boot * protocol reporting mode. */ -bool UsingReportProtocol = true; +static bool UsingReportProtocol = true; /** Current Idle period. This is set by the host via a Set Idle HID class request to silence the device's reports * for either the entire idle duration, or until the report status changes (e.g. the user presses a key). */ -uint16_t IdleCount = 500; +static uint16_t IdleCount = 500; /** Current Idle period remaining. When the IdleCount value is set, this tracks the remaining number of idle * milliseconds. This is separate to the IdleCount timer and is incremented and compared as the host may request * the current idle period via a Get Idle HID class request, thus its value must be preserved. */ -uint16_t IdleMSRemaining = 0; +static uint16_t IdleMSRemaining = 0; /** Main program entry point. This routine configures the hardware required by the application, then diff --git a/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c b/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c index fbb742ca49..ca061eef81 100644 --- a/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c +++ b/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c @@ -38,10 +38,10 @@ #include "KeyboardMouse.h" /** Global structure to hold the current keyboard interface HID report, for transmission to the host */ -USB_KeyboardReport_Data_t KeyboardReportData; +static USB_KeyboardReport_Data_t KeyboardReportData; /** Global structure to hold the current mouse interface HID report, for transmission to the host */ -USB_MouseReport_Data_t MouseReportData; +static USB_MouseReport_Data_t MouseReportData; /** Main program entry point. This routine configures the hardware required by the application, then diff --git a/Demos/Device/LowLevel/MassStorage/Lib/SCSI.c b/Demos/Device/LowLevel/MassStorage/Lib/SCSI.c index 0400cc2c6e..770d0f7bcd 100644 --- a/Demos/Device/LowLevel/MassStorage/Lib/SCSI.c +++ b/Demos/Device/LowLevel/MassStorage/Lib/SCSI.c @@ -41,7 +41,7 @@ /** Structure to hold the SCSI response data to a SCSI INQUIRY command. This gives information about the device's * features and capabilities. */ -SCSI_Inquiry_Response_t InquiryData = +static const SCSI_Inquiry_Response_t InquiryData = { .DeviceType = DEVICE_TYPE_BLOCK, .PeripheralQualifier = 0, @@ -73,7 +73,7 @@ SCSI_Inquiry_Response_t InquiryData = /** Structure to hold the sense data for the last issued SCSI command, which is returned to the host after a SCSI REQUEST SENSE * command is issued. This gives information on exactly why the last command failed to complete. */ -SCSI_Request_Sense_Response_t SenseData = +static SCSI_Request_Sense_Response_t SenseData = { .ResponseCode = 0x70, .AdditionalLength = 0x0A, diff --git a/Demos/Device/LowLevel/Mouse/Mouse.c b/Demos/Device/LowLevel/Mouse/Mouse.c index 808cf50b0d..ef6c911cc9 100644 --- a/Demos/Device/LowLevel/Mouse/Mouse.c +++ b/Demos/Device/LowLevel/Mouse/Mouse.c @@ -39,18 +39,18 @@ /** Indicates what report mode the host has requested, true for normal HID reporting mode, false for special boot * protocol reporting mode. */ -bool UsingReportProtocol = true; +static bool UsingReportProtocol = true; /** Current Idle period. This is set by the host via a Set Idle HID class request to silence the device's reports * for either the entire idle duration, or until the report status changes (e.g. the user moves the mouse). */ -uint16_t IdleCount = 0; +static uint16_t IdleCount = 0; /** Current Idle period remaining. When the IdleCount value is set, this tracks the remaining number of idle * milliseconds. This is separate to the IdleCount timer and is incremented and compared as the host may request * the current idle period via a Get Idle HID class request, thus its value must be preserved. */ -uint16_t IdleMSRemaining = 0; +static uint16_t IdleMSRemaining = 0; /** Main program entry point. This routine configures the hardware required by the application, then diff --git a/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.c b/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.c index e841ab530f..f4d3d4dd29 100644 --- a/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.c +++ b/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.c @@ -44,10 +44,11 @@ * It is possible to completely ignore these value or use other settings as the host is completely unaware of the physical * serial link characteristics and instead sends and receives data in endpoint streams. */ -CDC_LineEncoding_t LineEncoding = { .BaudRateBPS = 0, - .CharFormat = CDC_LINEENCODING_OneStopBit, - .ParityType = CDC_PARITY_None, - .DataBits = 8 }; +static CDC_LineEncoding_t LineEncoding = { .BaudRateBPS = 0, + .CharFormat = CDC_LINEENCODING_OneStopBit, + .ParityType = CDC_PARITY_None, + .DataBits = 8 }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. diff --git a/Demos/DualRole/ClassDriver/MouseHostDevice/DeviceFunctions.c b/Demos/DualRole/ClassDriver/MouseHostDevice/DeviceFunctions.c index 664839ca20..74c4b09086 100644 --- a/Demos/DualRole/ClassDriver/MouseHostDevice/DeviceFunctions.c +++ b/Demos/DualRole/ClassDriver/MouseHostDevice/DeviceFunctions.c @@ -37,7 +37,7 @@ #include "DeviceFunctions.h" /** Buffer to hold the previously generated Mouse Device HID report, for comparison purposes inside the HID class driver. */ -uint8_t PrevMouseHIDReportBuffer[sizeof(USB_MouseReport_Data_t)]; +static uint8_t PrevMouseHIDReportBuffer[sizeof(USB_MouseReport_Data_t)]; /** LUFA HID Class driver interface configuration and state information. This structure is * passed to all HID Class driver functions, so that multiple instances of the same class diff --git a/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.c b/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.c index 4a53b7c7a2..4ed0bfb8b8 100644 --- a/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.c +++ b/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.c @@ -37,7 +37,7 @@ #include "JoystickHostWithParser.h" /** Processed HID report descriptor items structure, containing information on each HID report element */ -HID_ReportInfo_t HIDReportInfo; +static HID_ReportInfo_t HIDReportInfo; /** LUFA HID Class driver interface configuration and state information. This structure is * passed to all HID Class driver functions, so that multiple instances of the same class diff --git a/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.c b/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.c index 4ad083e036..abb391ceef 100644 --- a/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.c +++ b/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.c @@ -37,7 +37,7 @@ #include "KeyboardHostWithParser.h" /** Processed HID report descriptor items structure, containing information on each HID report element */ -HID_ReportInfo_t HIDReportInfo; +static HID_ReportInfo_t HIDReportInfo; /** LUFA HID Class driver interface configuration and state information. This structure is * passed to all HID Class driver functions, so that multiple instances of the same class diff --git a/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c b/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c index c9db1ec029..8fd49f2a7d 100644 --- a/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c +++ b/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c @@ -37,7 +37,7 @@ #include "MouseHostWithParser.h" /** Processed HID report descriptor items structure, containing information on each HID report element */ -HID_ReportInfo_t HIDReportInfo; +static HID_ReportInfo_t HIDReportInfo; /** LUFA HID Class driver interface configuration and state information. This structure is * passed to all HID Class driver functions, so that multiple instances of the same class diff --git a/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c b/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c index 3fb2b29d13..8d51165e66 100644 --- a/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c +++ b/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c @@ -52,6 +52,7 @@ USB_ClassInfo_PRNT_Host_t Printer_PRNT_Interface = }, }; + /** Main program entry point. This routine configures the hardware required by the application, then * enters a loop to run the application tasks in sequence. */ diff --git a/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c b/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c index d59325b8a9..d19e5a4f05 100644 --- a/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c +++ b/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c @@ -37,7 +37,7 @@ #include "RNDISEthernetHost.h" /** Buffer to hold incoming and outgoing Ethernet packets. */ -uint8_t PacketBuffer[1024]; +static int8_t PacketBuffer[1024]; /** LUFA RNDIS Class driver interface configuration and state information. This structure is * passed to all RNDIS Class driver functions, so that multiple instances of the same class @@ -60,6 +60,7 @@ USB_ClassInfo_RNDIS_Host_t Ethernet_RNDIS_Interface = }, }; + /** Main program entry point. This routine configures the hardware required by the application, then * enters a loop to run the application tasks in sequence. */ diff --git a/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c b/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c index 643374db02..91c482af86 100644 --- a/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c +++ b/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c @@ -55,6 +55,7 @@ USB_ClassInfo_SI_Host_t DigitalCamera_SI_Interface = }, }; + /** Main program entry point. This routine configures the hardware required by the application, then * enters a loop to run the application tasks in sequence. */ diff --git a/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c b/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c index 5d259ced2a..4668908521 100644 --- a/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c +++ b/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c @@ -55,6 +55,7 @@ USB_ClassInfo_CDC_Host_t VirtualSerial_CDC_Interface = }, }; + /** Main program entry point. This routine configures the hardware required by the application, then * enters a loop to run the application tasks in sequence. */ diff --git a/LUFA/Drivers/USB/HighLevel/DeviceStandardReq.c b/LUFA/Drivers/USB/HighLevel/DeviceStandardReq.c index ffd949ed3b..f9cec41683 100644 --- a/LUFA/Drivers/USB/HighLevel/DeviceStandardReq.c +++ b/LUFA/Drivers/USB/HighLevel/DeviceStandardReq.c @@ -48,7 +48,7 @@ bool USB_RemoteWakeupEnabled; void USB_Device_ProcessControlRequest(void) { - uint8_t* RequestHeader = (uint8_t*)&USB_ControlRequest; + uint8_t* RequestHeader = (uint8_t*)&USB_ControlRequest; for (uint8_t RequestHeaderByte = 0; RequestHeaderByte < sizeof(USB_Request_Header_t); RequestHeaderByte++) *(RequestHeader++) = Endpoint_Read_Byte(); @@ -123,10 +123,10 @@ static void USB_Device_SetAddress(void) while (!(Endpoint_IsINReady())); - USB_DeviceState = (DeviceAddress) ? DEVICE_STATE_Addressed : DEVICE_STATE_Default; - USB_Device_SetDeviceAddress(DeviceAddress); } + + USB_DeviceState = (DeviceAddress) ? DEVICE_STATE_Addressed : DEVICE_STATE_Default; } static void USB_Device_SetConfiguration(void) diff --git a/LUFA/Drivers/USB/LowLevel/USBInterrupt.c b/LUFA/Drivers/USB/LowLevel/USBInterrupt.c index b7e21602a4..fdcfef2726 100644 --- a/LUFA/Drivers/USB/LowLevel/USBInterrupt.c +++ b/LUFA/Drivers/USB/LowLevel/USBInterrupt.c @@ -55,19 +55,19 @@ void USB_INT_DisableAllInterrupts(void) void USB_INT_ClearAllInterrupts(void) { #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) - USBINT = 0; + USBINT = 0; #endif #if defined(USB_CAN_BE_BOTH) - OTGINT = 0; + OTGINT = 0; #endif #if defined(USB_CAN_BE_HOST) - UHINT = 0; + UHINT = 0; #endif #if defined(USB_CAN_BE_DEVICE) - UDINT = 0; + UDINT = 0; #endif } diff --git a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c index 7e8695503b..373e191497 100644 --- a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c +++ b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c @@ -108,10 +108,10 @@ static uint16_t TimerCompareFromSCKDuration[] PROGMEM = bool HardwareSPIMode = true; /** Software SPI data register for sending and receiving */ -volatile uint8_t SoftSPI_Data; +static volatile uint8_t SoftSPI_Data; /** Number of bits left to transfer in the software SPI driver */ -volatile uint8_t SoftSPI_BitsRemaining; +static volatile uint8_t SoftSPI_BitsRemaining; /** ISR to handle software SPI transmission and reception */ diff --git a/Projects/AVRISP-MKII/Lib/V2ProtocolParams.c b/Projects/AVRISP-MKII/Lib/V2ProtocolParams.c index 7a2c986cad..3c1a88130a 100644 --- a/Projects/AVRISP-MKII/Lib/V2ProtocolParams.c +++ b/Projects/AVRISP-MKII/Lib/V2ProtocolParams.c @@ -37,7 +37,7 @@ #include "V2ProtocolParams.h" /* Non-Volatile Parameter Values for EEPROM storage */ -uint8_t EEMEM EEPROM_Rest_Polarity = 0x00; +static uint8_t EEMEM EEPROM_Rest_Polarity = 0x00; /* Volatile Parameter Values for RAM storage */ static ParameterItem_t ParameterTable[] = diff --git a/Projects/Benito/Benito.c b/Projects/Benito/Benito.c index 26b5ad2b80..9db6a3f843 100644 --- a/Projects/Benito/Benito.c +++ b/Projects/Benito/Benito.c @@ -37,10 +37,10 @@ #include "Benito.h" /** Circular buffer to hold data from the serial port before it is sent to the host. */ -RingBuffer_t USARTtoUSB_Buffer; +static RingBuffer_t USARTtoUSB_Buffer; /** Underlying data buffer for \ref USARTtoUSB_Buffer, where the stored bytes are located. */ -uint8_t USARTtoUSB_Buffer_Data[128]; +static uint8_t USARTtoUSB_Buffer_Data[128]; /** Pulse generation counters to keep track of the number of milliseconds remaining for each pulse type */ volatile struct diff --git a/Projects/Incomplete/StandaloneProgrammer/DiskDevice.c b/Projects/Incomplete/StandaloneProgrammer/DiskDevice.c index 0eca0d799b..8a8c97760f 100644 --- a/Projects/Incomplete/StandaloneProgrammer/DiskDevice.c +++ b/Projects/Incomplete/StandaloneProgrammer/DiskDevice.c @@ -53,6 +53,7 @@ USB_ClassInfo_MS_Device_t DiskDevice_MS_Interface = }, }; + void DiskDevice_USBTask(void) { MS_Device_USBTask(&DiskDevice_MS_Interface); diff --git a/Projects/Incomplete/StandaloneProgrammer/DiskHost.c b/Projects/Incomplete/StandaloneProgrammer/DiskHost.c index 9ba22542c3..a0e2521c06 100644 --- a/Projects/Incomplete/StandaloneProgrammer/DiskHost.c +++ b/Projects/Incomplete/StandaloneProgrammer/DiskHost.c @@ -47,6 +47,7 @@ USB_ClassInfo_MS_Host_t DiskHost_MS_Interface = }, }; + void DiskHost_USBTask(void) { if (USB_HostState == HOST_STATE_Addressed) diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/SCSI.c b/Projects/Incomplete/StandaloneProgrammer/Lib/SCSI.c index a221a2f6f0..d36d887432 100644 --- a/Projects/Incomplete/StandaloneProgrammer/Lib/SCSI.c +++ b/Projects/Incomplete/StandaloneProgrammer/Lib/SCSI.c @@ -42,7 +42,7 @@ /** Structure to hold the SCSI response data to a SCSI INQUIRY command. This gives information about the device's * features and capabilities. */ -SCSI_Inquiry_Response_t InquiryData = +static const SCSI_Inquiry_Response_t InquiryData = { .DeviceType = DEVICE_TYPE_BLOCK, .PeripheralQualifier = 0, @@ -74,7 +74,7 @@ SCSI_Inquiry_Response_t InquiryData = /** Structure to hold the sense data for the last issued SCSI command, which is returned to the host after a SCSI REQUEST SENSE * command is issued. This gives information on exactly why the last command failed to complete. */ -SCSI_Request_Sense_Response_t SenseData = +static SCSI_Request_Sense_Response_t SenseData = { .ResponseCode = 0x70, .AdditionalLength = 0x0A, diff --git a/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c b/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c index 86007daa5e..3f5d48b00b 100644 --- a/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c +++ b/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c @@ -43,6 +43,7 @@ FILE DiskStream = FDEV_SETUP_STREAM(NULL, Disk_getchar, _FDEV_SETUP_READ); /** Petite FAT Fs structure to hold the internal state of the FAT driver for the Dataflash contents. */ FATFS DiskFATState; + /** Stream character fetching routine for the FAT driver so that characters from the currently open file can be * read in sequence when applied to a stdio stream. */ diff --git a/Projects/MIDIToneGenerator/MIDIToneGenerator.c b/Projects/MIDIToneGenerator/MIDIToneGenerator.c index f9234865e5..a4e2764c01 100644 --- a/Projects/MIDIToneGenerator/MIDIToneGenerator.c +++ b/Projects/MIDIToneGenerator/MIDIToneGenerator.c @@ -57,7 +57,7 @@ USB_ClassInfo_MIDI_Device_t Keyboard_MIDI_Interface = }; /** 8-bit 256 entry Sine Wave lookup table */ -const uint8_t SineTable[256] = +static const uint8_t SineTable[256] = { 128, 131, 134, 137, 140, 143, 146, 149, 152, 156, 159, 162, 165, 168, 171, 174, 176, 179, 182, 185, 188, 191, 193, 196, 199, 201, 204, 206, 209, 211, 213, 216, @@ -78,7 +78,8 @@ const uint8_t SineTable[256] = }; /** Array of structures describing each note being generated */ -DDSNoteData NoteData[MAX_SIMULTANEOUS_NOTES]; +static DDSNoteData NoteData[MAX_SIMULTANEOUS_NOTES]; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. diff --git a/Projects/Magstripe/Magstripe.c b/Projects/Magstripe/Magstripe.c index 2bb16145d0..2b8fe2760f 100644 --- a/Projects/Magstripe/Magstripe.c +++ b/Projects/Magstripe/Magstripe.c @@ -40,13 +40,13 @@ /** Bit buffers to hold the read bits for each of the three magnetic card tracks before they are transmitted * to the host as keyboard presses. */ -BitBuffer_t TrackDataBuffers[TOTAL_TRACKS]; +static BitBuffer_t TrackDataBuffers[TOTAL_TRACKS]; /** Pointer to the current track buffer being sent to the host. */ -BitBuffer_t* CurrentTrackBuffer = &TrackDataBuffers[TOTAL_TRACKS]; +static BitBuffer_t* CurrentTrackBuffer = &TrackDataBuffers[TOTAL_TRACKS]; /** Buffer to hold the previously generated Keyboard HID report, for comparison purposes inside the HID class driver. */ -uint8_t PrevKeyboardHIDReportBuffer[sizeof(USB_KeyboardReport_Data_t)]; +static uint8_t PrevKeyboardHIDReportBuffer[sizeof(USB_KeyboardReport_Data_t)]; /** LUFA HID Class driver interface configuration and state information. This structure is * passed to all HID Class driver functions, so that multiple instances of the same class @@ -67,6 +67,7 @@ USB_ClassInfo_HID_Device_t Keyboard_HID_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Projects/MissileLauncher/MissileLauncher.c b/Projects/MissileLauncher/MissileLauncher.c index b085ed54a7..6a98b54596 100644 --- a/Projects/MissileLauncher/MissileLauncher.c +++ b/Projects/MissileLauncher/MissileLauncher.c @@ -46,46 +46,46 @@ #include "MissileLauncher.h" /** Launcher first init command report data sequence */ -uint8_t CMD_INITA[8] = { 85, 83, 66, 67, 0, 0, 4, 0 }; +static const uint8_t CMD_INITA[8] = { 85, 83, 66, 67, 0, 0, 4, 0 }; /** Launcher second init command report data sequence */ -uint8_t CMD_INITB[8] = { 85, 83, 66, 67, 0, 64, 2, 0 }; +static const uint8_t CMD_INITB[8] = { 85, 83, 66, 67, 0, 64, 2, 0 }; /** Launcher command report data sequence to stop all movement */ -uint8_t CMD_STOP[8] = { 0, 0, 0, 0, 0, 0, 8, 8 }; +static const uint8_t CMD_STOP[8] = { 0, 0, 0, 0, 0, 0, 8, 8 }; /** Launcher command report data sequence to move left */ -uint8_t CMD_LEFT[8] = { 0, 1, 0, 0, 0, 0, 8, 8 }; +static const uint8_t CMD_LEFT[8] = { 0, 1, 0, 0, 0, 0, 8, 8 }; /** Launcher command report data sequence to move right */ -uint8_t CMD_RIGHT[8] = { 0, 0, 1, 0, 0, 0, 8, 8 }; +static const uint8_t CMD_RIGHT[8] = { 0, 0, 1, 0, 0, 0, 8, 8 }; /** Launcher command report data sequence to move up */ -uint8_t CMD_UP[8] = { 0, 0, 0, 1, 0, 0, 8, 8 }; +static const uint8_t CMD_UP[8] = { 0, 0, 0, 1, 0, 0, 8, 8 }; /** Launcher command report data sequence to move down */ -uint8_t CMD_DOWN[8] = { 0, 0, 0, 0, 1, 0, 8, 8 }; +static const uint8_t CMD_DOWN[8] = { 0, 0, 0, 0, 1, 0, 8, 8 }; /** Launcher command report data sequence to move left and up */ -uint8_t CMD_LEFTUP[8] = { 0, 1, 0, 1, 0, 0, 8, 8 }; +static const uint8_t CMD_LEFTUP[8] = { 0, 1, 0, 1, 0, 0, 8, 8 }; /** Launcher command report data sequence to move right and up */ -uint8_t CMD_RIGHTUP[8] = { 0, 0, 1, 1, 0, 0, 8, 8 }; +static const uint8_t CMD_RIGHTUP[8] = { 0, 0, 1, 1, 0, 0, 8, 8 }; /** Launcher command report data sequence to move left and down */ -uint8_t CMD_LEFTDOWN[8] = { 0, 1, 0, 0, 1, 0, 8, 8 }; +static const uint8_t CMD_LEFTDOWN[8] = { 0, 1, 0, 0, 1, 0, 8, 8 }; /** Launcher command report data sequence to move right and down */ -uint8_t CMD_RIGHTDOWN[8] = { 0, 0, 1, 0, 1, 0, 8, 8 }; +static const uint8_t CMD_RIGHTDOWN[8] = { 0, 0, 1, 0, 1, 0, 8, 8 }; /** Launcher command report data sequence to fire a missile */ -uint8_t CMD_FIRE[8] = { 0, 0, 0, 0, 0, 1, 8, 8 }; +static const uint8_t CMD_FIRE[8] = { 0, 0, 0, 0, 0, 1, 8, 8 }; /** Last command sent to the launcher, to determine what new command (if any) must be sent */ -uint8_t* CmdState; +static const uint8_t* CmdState; /** Buffer to hold a command to send to the launcher */ -uint8_t CmdBuffer[LAUNCHER_CMD_BUFFER_SIZE]; +static uint8_t CmdBuffer[LAUNCHER_CMD_BUFFER_SIZE]; /** Main program entry point. This routine configures the hardware required by the application, then @@ -151,7 +151,7 @@ void Read_Joystick_Status(void) * \param[in] Report Report data to send. * \param[in] ReportSize Report length in bytes. */ -void Send_Command_Report(uint8_t* const Report, +void Send_Command_Report(const uint8_t* const Report, const uint16_t ReportSize) { memcpy(CmdBuffer, Report, 8); @@ -162,7 +162,7 @@ void Send_Command_Report(uint8_t* const Report, * * \param[in] Command One of the command constants. */ -void Send_Command(uint8_t* const Command) +void Send_Command(const uint8_t* const Command) { if ((CmdState == CMD_STOP && Command != CMD_STOP) || (CmdState != CMD_STOP && Command == CMD_STOP)) diff --git a/Projects/MissileLauncher/MissileLauncher.h b/Projects/MissileLauncher/MissileLauncher.h index d6cc63771c..7363f0fabc 100644 --- a/Projects/MissileLauncher/MissileLauncher.h +++ b/Projects/MissileLauncher/MissileLauncher.h @@ -73,9 +73,9 @@ void SetupHardware(void); void Read_Joystick_Status(void); - void Send_Command_Report(uint8_t* const Report, + void Send_Command_Report(const uint8_t* const Report, const uint16_t ReportSize); - void Send_Command(uint8_t* const Command); + void Send_Command(const uint8_t* const Command); void HID_Host_Task(void); diff --git a/Projects/TempDataLogger/Lib/SCSI.c b/Projects/TempDataLogger/Lib/SCSI.c index 31f62eef2d..b317bce2a7 100644 --- a/Projects/TempDataLogger/Lib/SCSI.c +++ b/Projects/TempDataLogger/Lib/SCSI.c @@ -41,7 +41,7 @@ /** Structure to hold the SCSI response data to a SCSI INQUIRY command. This gives information about the device's * features and capabilities. */ -SCSI_Inquiry_Response_t InquiryData = +static const SCSI_Inquiry_Response_t InquiryData = { .DeviceType = DEVICE_TYPE_BLOCK, .PeripheralQualifier = 0, @@ -73,7 +73,7 @@ SCSI_Inquiry_Response_t InquiryData = /** Structure to hold the sense data for the last issued SCSI command, which is returned to the host after a SCSI REQUEST SENSE * command is issued. This gives information on exactly why the last command failed to complete. */ -SCSI_Request_Sense_Response_t SenseData = +static SCSI_Request_Sense_Response_t SenseData = { .ResponseCode = 0x70, .AdditionalLength = 0x0A, diff --git a/Projects/TempDataLogger/TempDataLogger.c b/Projects/TempDataLogger/TempDataLogger.c index ec39029085..ecea2fb1a6 100644 --- a/Projects/TempDataLogger/TempDataLogger.c +++ b/Projects/TempDataLogger/TempDataLogger.c @@ -59,7 +59,7 @@ USB_ClassInfo_MS_Device_t Disk_MS_Interface = }; /** Buffer to hold the previously generated HID report, for comparison purposes inside the HID class driver. */ -uint8_t PrevHIDReportBuffer[GENERIC_REPORT_SIZE]; +static uint8_t PrevHIDReportBuffer[GENERIC_REPORT_SIZE]; /** LUFA HID Class driver interface configuration and state information. This structure is * passed to all HID Class driver functions, so that multiple instances of the same class @@ -81,19 +81,19 @@ USB_ClassInfo_HID_Device_t Generic_HID_Interface = }; /** Non-volatile Logging Interval value in EEPROM, stored as a number of 500ms ticks */ -uint8_t EEMEM LoggingInterval500MS_EEPROM = DEFAULT_LOG_INTERVAL; +static uint8_t EEMEM LoggingInterval500MS_EEPROM = DEFAULT_LOG_INTERVAL; /** SRAM Logging Interval value fetched from EEPROM, stored as a number of 500ms ticks */ -uint8_t LoggingInterval500MS_SRAM; +static uint8_t LoggingInterval500MS_SRAM; /** Total number of 500ms logging ticks elapsed since the last log value was recorded */ -uint16_t CurrentLoggingTicks; +static uint16_t CurrentLoggingTicks; /** FAT Fs structure to hold the internal state of the FAT driver for the Dataflash contents. */ -FATFS DiskFATState; +static FATFS DiskFATState; /** FAT Fs structure to hold a FAT file handle for the log data write destination. */ -FIL TempLogFile; +static FIL TempLogFile; /** ISR to handle the 500ms ticks for sampling and data logging */ diff --git a/Projects/USBtoSerial/USBtoSerial.c b/Projects/USBtoSerial/USBtoSerial.c index 9ce00bf131..fe685d6e45 100644 --- a/Projects/USBtoSerial/USBtoSerial.c +++ b/Projects/USBtoSerial/USBtoSerial.c @@ -37,17 +37,16 @@ #include "USBtoSerial.h" /** Circular buffer to hold data from the host before it is sent to the device via the serial port. */ -RingBuffer_t USBtoUSART_Buffer; +static RingBuffer_t USBtoUSART_Buffer; /** Underlying data buffer for \ref USBtoUSART_Buffer, where the stored bytes are located. */ -uint8_t USBtoUSART_Buffer_Data[128]; +static uint8_t USBtoUSART_Buffer_Data[128]; /** Circular buffer to hold data from the serial port before it is sent to the host. */ -RingBuffer_t USARTtoUSB_Buffer; +static RingBuffer_t USARTtoUSB_Buffer; /** Underlying data buffer for \ref USARTtoUSB_Buffer, where the stored bytes are located. */ -uint8_t USARTtoUSB_Buffer_Data[128]; - +static uint8_t USARTtoUSB_Buffer_Data[128]; /** LUFA CDC Class driver interface configuration and state information. This structure is * passed to all CDC Class driver functions, so that multiple instances of the same class @@ -73,6 +72,7 @@ USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface = }, }; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ diff --git a/Projects/Webserver/Lib/SCSI.c b/Projects/Webserver/Lib/SCSI.c index 31f62eef2d..b317bce2a7 100644 --- a/Projects/Webserver/Lib/SCSI.c +++ b/Projects/Webserver/Lib/SCSI.c @@ -41,7 +41,7 @@ /** Structure to hold the SCSI response data to a SCSI INQUIRY command. This gives information about the device's * features and capabilities. */ -SCSI_Inquiry_Response_t InquiryData = +static const SCSI_Inquiry_Response_t InquiryData = { .DeviceType = DEVICE_TYPE_BLOCK, .PeripheralQualifier = 0, @@ -73,7 +73,7 @@ SCSI_Inquiry_Response_t InquiryData = /** Structure to hold the sense data for the last issued SCSI command, which is returned to the host after a SCSI REQUEST SENSE * command is issued. This gives information on exactly why the last command failed to complete. */ -SCSI_Request_Sense_Response_t SenseData = +static SCSI_Request_Sense_Response_t SenseData = { .ResponseCode = 0x70, .AdditionalLength = 0x0A, diff --git a/Projects/Webserver/Lib/uIPManagement.c b/Projects/Webserver/Lib/uIPManagement.c index dc1d23932c..a99e8be938 100644 --- a/Projects/Webserver/Lib/uIPManagement.c +++ b/Projects/Webserver/Lib/uIPManagement.c @@ -38,17 +38,19 @@ #include "uIPManagement.h" /** Connection timer, to retain the time elapsed since the last time the uIP connections were managed. */ -struct timer ConnectionTimer; +static struct timer ConnectionTimer; /** ARP timer, to retain the time elapsed since the ARP cache was last updated. */ -struct timer ARPTimer; +static struct timer ARPTimer; -/** MAC address of the RNDIS device, when enumerated */ +/** MAC address of the RNDIS device, when enumerated. */ struct uip_eth_addr MACAddress; +/** Indicates if an IP configuration has been set in the device. */ bool HaveIPConfiguration; -/** Configures the uIP stack ready for network traffic. */ + +/** Configures the uIP stack ready for network traffic processing. */ void uIPManagement_Init(void) { /* uIP Timing Initialization */ diff --git a/Projects/XPLAINBridge/Lib/SoftUART.c b/Projects/XPLAINBridge/Lib/SoftUART.c index 1da2236764..ddd983a91a 100644 --- a/Projects/XPLAINBridge/Lib/SoftUART.c +++ b/Projects/XPLAINBridge/Lib/SoftUART.c @@ -51,6 +51,7 @@ static uint8_t RX_BitsRemaining; /** Temporary data variable to hold the byte being received as it is shifted in */ static uint8_t RX_Data; + /** Initialises the software UART, ready for data transmission and reception into the global ring buffers. */ void SoftUART_Init(void) { diff --git a/Projects/XPLAINBridge/XPLAINBridge.c b/Projects/XPLAINBridge/XPLAINBridge.c index 25307d3c0d..a2afbbc3c1 100644 --- a/Projects/XPLAINBridge/XPLAINBridge.c +++ b/Projects/XPLAINBridge/XPLAINBridge.c @@ -67,13 +67,13 @@ USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface = RingBuffer_t USBtoUART_Buffer; /** Underlying data buffer for \ref USBtoUART_Buffer, where the stored bytes are located. */ -uint8_t USBtoUART_Buffer_Data[128]; +static uint8_t USBtoUART_Buffer_Data[128]; /** Circular buffer to hold data from the serial port before it is sent to the host. */ RingBuffer_t UARTtoUSB_Buffer; /** Underlying data buffer for \ref UARTtoUSB_Buffer, where the stored bytes are located. */ -uint8_t UARTtoUSB_Buffer_Data[128]; +static uint8_t UARTtoUSB_Buffer_Data[128]; /** Main program entry point. This routine contains the overall program flow, including initial