QMK DFU bootloader generation (#2009)
* adds :bootloader target * update planck and preonic revisions * remove references to .h files for planck * update preonic keymap * only add keyboard.h files that exist * add production target * hook things up with the new lufa variables * update rules for planck/preonic * back backlight key turn of status led when pressed * add manufacturer/product strings to bootloader
This commit is contained in:
parent
3c15c48e6a
commit
ec3e065f0d
27 changed files with 171 additions and 45 deletions
1
lib/lufa/.gitignore
vendored
1
lib/lufa/.gitignore
vendored
|
@ -13,3 +13,4 @@ Documentation/
|
|||
LUFA/StudioIntegration/ProjectGenerator/*
|
||||
LUFA/StudioIntegration/DocBook/*
|
||||
!LUFA/StudioIntegration/Docbook/mshelp/*
|
||||
Keyboard.h
|
|
@ -196,7 +196,7 @@ int main(void)
|
|||
while (RunBootloader || WaitForExit) {
|
||||
USB_USBTask();
|
||||
#if (BOARD == BOARD_QMK)
|
||||
bool pressed = (PIN(QMK_ESC_ROW) & NUM(QMK_ESC_ROW));
|
||||
bool pressed = (PIN(QMK_ESC_INPUT) & NUM(QMK_ESC_INPUT));
|
||||
if ((DFU_State == dfuIDLE) && (keypress > 5000) && pressed) {
|
||||
break;
|
||||
}
|
||||
|
@ -231,12 +231,12 @@ static void SetupHardware(void)
|
|||
MCUCR = (1 << IVSEL);
|
||||
|
||||
#if (BOARD == BOARD_QMK)
|
||||
// column setup
|
||||
DDR(QMK_ESC_COL) |= NUM(QMK_ESC_COL);
|
||||
PORT(QMK_ESC_COL) |= NUM(QMK_ESC_COL);
|
||||
// output setup
|
||||
DDR(QMK_ESC_OUTPUT) |= NUM(QMK_ESC_OUTPUT);
|
||||
PORT(QMK_ESC_OUTPUT) |= NUM(QMK_ESC_OUTPUT);
|
||||
|
||||
// row setup
|
||||
DDR(QMK_ESC_ROW) |= NUM(QMK_ESC_ROW);
|
||||
// input setup
|
||||
DDR(QMK_ESC_INPUT) |= NUM(QMK_ESC_INPUT);
|
||||
#endif
|
||||
|
||||
/* Initialize the USB and other board hardware drivers */
|
||||
|
@ -265,7 +265,7 @@ static void ResetHardware(void)
|
|||
MCUCR = 0;
|
||||
|
||||
#if (BOARD == BOARD_QMK)
|
||||
DDR(QMK_ESC_COL) = PORT(QMK_ESC_COL) = DDR(QMK_ESC_ROW) = PORT(QMK_ESC_ROW) = 0;
|
||||
DDR(QMK_ESC_OUTPUT) = PORT(QMK_ESC_OUTPUT) = DDR(QMK_ESC_INPUT) = PORT(QMK_ESC_INPUT) = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -36,6 +36,14 @@
|
|||
*/
|
||||
|
||||
#include "Descriptors.h"
|
||||
#include "Keyboard.h"
|
||||
|
||||
#ifndef MANUFACTURER
|
||||
#define MANUFACTURER QMK
|
||||
#endif
|
||||
#ifndef PRODUCT
|
||||
#define PRODUCT Keyboard
|
||||
#endif
|
||||
|
||||
/** Device descriptor structure. This descriptor, located in SRAM memory, describes the overall
|
||||
* device characteristics, including the supported USB version, control endpoint size and the
|
||||
|
@ -125,13 +133,13 @@ const USB_Descriptor_String_t LanguageString = USB_STRING_DESCRIPTOR_ARRAY(LANGU
|
|||
* form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device
|
||||
* Descriptor.
|
||||
*/
|
||||
const USB_Descriptor_String_t ManufacturerString = USB_STRING_DESCRIPTOR(L"QMK");
|
||||
const USB_Descriptor_String_t ManufacturerString = USB_STRING_DESCRIPTOR(LSTR(MANUFACTURER));
|
||||
|
||||
/** Product descriptor string. This is a Unicode string containing the product's details in human readable form,
|
||||
* and is read out upon request by the host when the appropriate string ID is requested, listed in the Device
|
||||
* Descriptor.
|
||||
*/
|
||||
const USB_Descriptor_String_t ProductString = USB_STRING_DESCRIPTOR(L"KB");
|
||||
const USB_Descriptor_String_t ProductString = USB_STRING_DESCRIPTOR(LSTR(PRODUCT));
|
||||
|
||||
/** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
|
||||
* documentation) by the application code so that the address and size of a requested descriptor can be given
|
||||
|
|
|
@ -189,6 +189,12 @@
|
|||
const uint16_t wIndex,
|
||||
const void** const DescriptorAddress)
|
||||
ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
|
||||
|
||||
// convert to L string
|
||||
#define LSTR(s) XLSTR(s)
|
||||
#define XLSTR(s) L ## #s
|
||||
// convert to string
|
||||
#define STR(s) XSTR(s)
|
||||
#define XSTR(s) #s
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -103,10 +103,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#define A6 0x06
|
||||
#define A7 0x07
|
||||
|
||||
#define QMK_ESC_COL F1
|
||||
#define QMK_ESC_ROW D5
|
||||
#define QMK_LED E6
|
||||
#define QMK_SPEAKER C6
|
||||
#include "Keyboard.h"
|
||||
|
||||
#ifndef QMK_ESC_INPUT
|
||||
#define QMK_ESC_INPUT F1
|
||||
#endif
|
||||
#ifndef QMK_ESC_OUTPUT
|
||||
#define QMK_ESC_OUTPUT D5
|
||||
#endif
|
||||
#ifndef QMK_LED
|
||||
#define QMK_LED E6
|
||||
#endif
|
||||
#ifndef QMK_SPEAKER
|
||||
#define QMK_SPEAKER C6
|
||||
#endif
|
||||
|
||||
#define DDR(pin) _SFR_IO8(((pin) >> 4) + 1)
|
||||
#define PORT(pin) _SFR_IO8(((pin) >> 4) + 2)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue