commit
f815b4871e
@ -1,49 +1,49 @@
|
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "hal.h"
|
#include "hal.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief PAL setup.
|
* @brief PAL setup.
|
||||||
* @details Digital I/O ports static configuration as defined in @p board.h.
|
* @details Digital I/O ports static configuration as defined in @p board.h.
|
||||||
* This variable is used by the HAL when initializing the PAL driver.
|
* This variable is used by the HAL when initializing the PAL driver.
|
||||||
*/
|
*/
|
||||||
#if HAL_USE_PAL || defined(__DOXYGEN__)
|
#if HAL_USE_PAL || defined(__DOXYGEN__)
|
||||||
const PALConfig pal_default_config =
|
const PALConfig pal_default_config =
|
||||||
{
|
{
|
||||||
{VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH},
|
{VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH},
|
||||||
{VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH},
|
{VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH},
|
||||||
{VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH},
|
{VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH},
|
||||||
{VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH},
|
{VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH},
|
||||||
{VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH},
|
{VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH},
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Early initialization code.
|
* Early initialization code.
|
||||||
* This initialization must be performed just after stack setup and before
|
* This initialization must be performed just after stack setup and before
|
||||||
* any other initialization.
|
* any other initialization.
|
||||||
*/
|
*/
|
||||||
void __early_init(void) {
|
void __early_init(void) {
|
||||||
|
|
||||||
stm32_clock_init();
|
stm32_clock_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Board-specific initialization code.
|
* Board-specific initialization code.
|
||||||
*/
|
*/
|
||||||
void boardInit(void) {
|
void boardInit(void) {
|
||||||
}
|
}
|
||||||
|
@ -1,166 +1,166 @@
|
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _BOARD_H_
|
#ifndef _BOARD_H_
|
||||||
#define _BOARD_H_
|
#define _BOARD_H_
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Setup for a Generic STM32F103 board.
|
* Setup for a Generic STM32F103 board.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Board identifier.
|
* Board identifier.
|
||||||
*/
|
*/
|
||||||
#define BOARD_GENERIC_STM32_F103
|
#define BOARD_GENERIC_STM32_F103
|
||||||
#define BOARD_NAME "Generic STM32F103x board"
|
#define BOARD_NAME "Generic STM32F103x board"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Board frequencies.
|
* Board frequencies.
|
||||||
*/
|
*/
|
||||||
#define STM32_LSECLK 32768
|
#define STM32_LSECLK 32768
|
||||||
#define STM32_HSECLK 8000000
|
#define STM32_HSECLK 8000000
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h.
|
* MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h.
|
||||||
*/
|
*/
|
||||||
#define STM32F103xB
|
#define STM32F103xB
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IO pins assignments
|
* IO pins assignments
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* on-board */
|
/* on-board */
|
||||||
|
|
||||||
#define GPIOC_LED 13
|
#define GPIOC_LED 13
|
||||||
#define GPIOD_OSC_IN 0
|
#define GPIOD_OSC_IN 0
|
||||||
#define GPIOD_OSC_OUT 1
|
#define GPIOD_OSC_OUT 1
|
||||||
|
|
||||||
/* In case your board has a "USB enable" hardware
|
/* In case your board has a "USB enable" hardware
|
||||||
controlled by a pin, define it here. (It could be just
|
controlled by a pin, define it here. (It could be just
|
||||||
a 1.5k resistor connected to D+ line.)
|
a 1.5k resistor connected to D+ line.)
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
#define GPIOB_USB_DISC 10
|
#define GPIOB_USB_DISC 10
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* I/O ports initial setup, this configuration is established soon after reset
|
* I/O ports initial setup, this configuration is established soon after reset
|
||||||
* in the initialization code.
|
* in the initialization code.
|
||||||
*
|
*
|
||||||
* The digits have the following meaning:
|
* The digits have the following meaning:
|
||||||
* 0 - Analog input.
|
* 0 - Analog input.
|
||||||
* 1 - Push Pull output 10MHz.
|
* 1 - Push Pull output 10MHz.
|
||||||
* 2 - Push Pull output 2MHz.
|
* 2 - Push Pull output 2MHz.
|
||||||
* 3 - Push Pull output 50MHz.
|
* 3 - Push Pull output 50MHz.
|
||||||
* 4 - Digital input.
|
* 4 - Digital input.
|
||||||
* 5 - Open Drain output 10MHz.
|
* 5 - Open Drain output 10MHz.
|
||||||
* 6 - Open Drain output 2MHz.
|
* 6 - Open Drain output 2MHz.
|
||||||
* 7 - Open Drain output 50MHz.
|
* 7 - Open Drain output 50MHz.
|
||||||
* 8 - Digital input with PullUp or PullDown resistor depending on ODR.
|
* 8 - Digital input with PullUp or PullDown resistor depending on ODR.
|
||||||
* 9 - Alternate Push Pull output 10MHz.
|
* 9 - Alternate Push Pull output 10MHz.
|
||||||
* A - Alternate Push Pull output 2MHz.
|
* A - Alternate Push Pull output 2MHz.
|
||||||
* B - Alternate Push Pull output 50MHz.
|
* B - Alternate Push Pull output 50MHz.
|
||||||
* C - Reserved.
|
* C - Reserved.
|
||||||
* D - Alternate Open Drain output 10MHz.
|
* D - Alternate Open Drain output 10MHz.
|
||||||
* E - Alternate Open Drain output 2MHz.
|
* E - Alternate Open Drain output 2MHz.
|
||||||
* F - Alternate Open Drain output 50MHz.
|
* F - Alternate Open Drain output 50MHz.
|
||||||
* Please refer to the STM32 Reference Manual for details.
|
* Please refer to the STM32 Reference Manual for details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Port A setup.
|
* Port A setup.
|
||||||
* Everything input with pull-up except:
|
* Everything input with pull-up except:
|
||||||
* PA2 - Alternate output (USART2 TX).
|
* PA2 - Alternate output (USART2 TX).
|
||||||
* PA3 - Normal input (USART2 RX).
|
* PA3 - Normal input (USART2 RX).
|
||||||
* PA9 - Alternate output (USART1 TX).
|
* PA9 - Alternate output (USART1 TX).
|
||||||
* PA10 - Normal input (USART1 RX).
|
* PA10 - Normal input (USART1 RX).
|
||||||
*/
|
*/
|
||||||
#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */
|
#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */
|
||||||
#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */
|
#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */
|
||||||
#define VAL_GPIOAODR 0xFFFFFFFF
|
#define VAL_GPIOAODR 0xFFFFFFFF
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Port B setup.
|
* Port B setup.
|
||||||
* Everything input with pull-up except:
|
* Everything input with pull-up except:
|
||||||
* PB10 - Push Pull output (USB switch).
|
* PB10 - Push Pull output (USB switch).
|
||||||
*/
|
*/
|
||||||
#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */
|
#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */
|
||||||
#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */
|
#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */
|
||||||
#define VAL_GPIOBODR 0xFFFFFFFF
|
#define VAL_GPIOBODR 0xFFFFFFFF
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Port C setup.
|
* Port C setup.
|
||||||
* Everything input with pull-up except:
|
* Everything input with pull-up except:
|
||||||
* PC13 - Push Pull output (LED).
|
* PC13 - Push Pull output (LED).
|
||||||
*/
|
*/
|
||||||
#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */
|
#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */
|
||||||
#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */
|
#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */
|
||||||
#define VAL_GPIOCODR 0xFFFFFFFF
|
#define VAL_GPIOCODR 0xFFFFFFFF
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Port D setup.
|
* Port D setup.
|
||||||
* Everything input with pull-up except:
|
* Everything input with pull-up except:
|
||||||
* PD0 - Normal input (XTAL).
|
* PD0 - Normal input (XTAL).
|
||||||
* PD1 - Normal input (XTAL).
|
* PD1 - Normal input (XTAL).
|
||||||
*/
|
*/
|
||||||
#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */
|
#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */
|
||||||
#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */
|
#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */
|
||||||
#define VAL_GPIODODR 0xFFFFFFFF
|
#define VAL_GPIODODR 0xFFFFFFFF
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Port E setup.
|
* Port E setup.
|
||||||
* Everything input with pull-up except:
|
* Everything input with pull-up except:
|
||||||
*/
|
*/
|
||||||
#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */
|
#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */
|
||||||
#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */
|
#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */
|
||||||
#define VAL_GPIOEODR 0xFFFFFFFF
|
#define VAL_GPIOEODR 0xFFFFFFFF
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* USB bus activation macro, required by the USB driver.
|
* USB bus activation macro, required by the USB driver.
|
||||||
*/
|
*/
|
||||||
/* The point is that most of the generic STM32F103* boards
|
/* The point is that most of the generic STM32F103* boards
|
||||||
have a 1.5k resistor connected on one end to the D+ line
|
have a 1.5k resistor connected on one end to the D+ line
|
||||||
and on the other end to some pin. Or even a slightly more
|
and on the other end to some pin. Or even a slightly more
|
||||||
complicated "USB enable" circuit, controlled by a pin.
|
complicated "USB enable" circuit, controlled by a pin.
|
||||||
That should go here.
|
That should go here.
|
||||||
|
|
||||||
However on some boards (e.g. one that I have), there's no
|
However on some boards (e.g. one that I have), there's no
|
||||||
such hardware. In which case it's better to not do anything.
|
such hardware. In which case it's better to not do anything.
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC)
|
#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC)
|
||||||
*/
|
*/
|
||||||
#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT);
|
#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* USB bus de-activation macro, required by the USB driver.
|
* USB bus de-activation macro, required by the USB driver.
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC)
|
#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC)
|
||||||
*/
|
*/
|
||||||
#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12);
|
#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12);
|
||||||
|
|
||||||
#if !defined(_FROM_ASM_)
|
#if !defined(_FROM_ASM_)
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
void boardInit(void);
|
void boardInit(void);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* _FROM_ASM_ */
|
#endif /* _FROM_ASM_ */
|
||||||
|
|
||||||
#endif /* _BOARD_H_ */
|
#endif /* _BOARD_H_ */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# List of all the board related files.
|
# List of all the board related files.
|
||||||
BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103/board.c
|
BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103/board.c
|
||||||
|
|
||||||
# Required include directories
|
# Required include directories
|
||||||
BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103
|
BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103
|
||||||
|
@ -1,105 +1,105 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com
|
* Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com
|
||||||
* (C) 2016 flabbergast <s3+flabbergast@sdfeu.org>
|
* (C) 2016 flabbergast <s3+flabbergast@sdfeu.org>
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
* a copy of this software and associated documentation files (the "Software"),
|
* a copy of this software and associated documentation files (the "Software"),
|
||||||
* to deal in the Software without restriction, including without limitation
|
* to deal in the Software without restriction, including without limitation
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be included in
|
* The above copyright notice and this permission notice shall be included in
|
||||||
* all copies or substantial portions of the Software.
|
* all copies or substantial portions of the Software.
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* KL26Z64 memory setup.
|
* KL26Z64 memory setup.
|
||||||
*/
|
*/
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
flash0 : org = 0x00000000, len = 0x100
|
flash0 : org = 0x00000000, len = 0x100
|
||||||
flash1 : org = 0x00000400, len = 0x10
|
flash1 : org = 0x00000400, len = 0x10
|
||||||
flash2 : org = 0x00000410, len = 62k - 0x410
|
flash2 : org = 0x00000410, len = 62k - 0x410
|
||||||
flash3 : org = 0x0000F800, len = 2k
|
flash3 : org = 0x0000F800, len = 2k
|
||||||
flash4 : org = 0x00000000, len = 0
|
flash4 : org = 0x00000000, len = 0
|
||||||
flash5 : org = 0x00000000, len = 0
|
flash5 : org = 0x00000000, len = 0
|
||||||
flash6 : org = 0x00000000, len = 0
|
flash6 : org = 0x00000000, len = 0
|
||||||
flash7 : org = 0x00000000, len = 0
|
flash7 : org = 0x00000000, len = 0
|
||||||
ram0 : org = 0x1FFFF800, len = 8k
|
ram0 : org = 0x1FFFF800, len = 8k
|
||||||
ram1 : org = 0x00000000, len = 0
|
ram1 : org = 0x00000000, len = 0
|
||||||
ram2 : org = 0x00000000, len = 0
|
ram2 : org = 0x00000000, len = 0
|
||||||
ram3 : org = 0x00000000, len = 0
|
ram3 : org = 0x00000000, len = 0
|
||||||
ram4 : org = 0x00000000, len = 0
|
ram4 : org = 0x00000000, len = 0
|
||||||
ram5 : org = 0x00000000, len = 0
|
ram5 : org = 0x00000000, len = 0
|
||||||
ram6 : org = 0x00000000, len = 0
|
ram6 : org = 0x00000000, len = 0
|
||||||
ram7 : org = 0x00000000, len = 0
|
ram7 : org = 0x00000000, len = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Flash region for the configuration bytes.*/
|
/* Flash region for the configuration bytes.*/
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
.cfmprotect : ALIGN(4) SUBALIGN(4)
|
.cfmprotect : ALIGN(4) SUBALIGN(4)
|
||||||
{
|
{
|
||||||
KEEP(*(.cfmconfig))
|
KEEP(*(.cfmconfig))
|
||||||
} > flash1
|
} > flash1
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For each data/text section two region are defined, a virtual region
|
/* For each data/text section two region are defined, a virtual region
|
||||||
and a load region (_LMA suffix).*/
|
and a load region (_LMA suffix).*/
|
||||||
|
|
||||||
/* Flash region to be used for exception vectors.*/
|
/* Flash region to be used for exception vectors.*/
|
||||||
REGION_ALIAS("VECTORS_FLASH", flash0);
|
REGION_ALIAS("VECTORS_FLASH", flash0);
|
||||||
REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
|
REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
|
||||||
|
|
||||||
/* Flash region to be used for constructors and destructors.*/
|
/* Flash region to be used for constructors and destructors.*/
|
||||||
REGION_ALIAS("XTORS_FLASH", flash2);
|
REGION_ALIAS("XTORS_FLASH", flash2);
|
||||||
REGION_ALIAS("XTORS_FLASH_LMA", flash2);
|
REGION_ALIAS("XTORS_FLASH_LMA", flash2);
|
||||||
|
|
||||||
/* Flash region to be used for code text.*/
|
/* Flash region to be used for code text.*/
|
||||||
REGION_ALIAS("TEXT_FLASH", flash2);
|
REGION_ALIAS("TEXT_FLASH", flash2);
|
||||||
REGION_ALIAS("TEXT_FLASH_LMA", flash2);
|
REGION_ALIAS("TEXT_FLASH_LMA", flash2);
|
||||||
|
|
||||||
/* Flash region to be used for read only data.*/
|
/* Flash region to be used for read only data.*/
|
||||||
REGION_ALIAS("RODATA_FLASH", flash2);
|
REGION_ALIAS("RODATA_FLASH", flash2);
|
||||||
REGION_ALIAS("RODATA_FLASH_LMA", flash2);
|
REGION_ALIAS("RODATA_FLASH_LMA", flash2);
|
||||||
|
|
||||||
/* Flash region to be used for various.*/
|
/* Flash region to be used for various.*/
|
||||||
REGION_ALIAS("VARIOUS_FLASH", flash2);
|
REGION_ALIAS("VARIOUS_FLASH", flash2);
|
||||||
REGION_ALIAS("VARIOUS_FLASH_LMA", flash2);
|
REGION_ALIAS("VARIOUS_FLASH_LMA", flash2);
|
||||||
|
|
||||||
/* Flash region to be used for RAM(n) initialization data.*/
|
/* Flash region to be used for RAM(n) initialization data.*/
|
||||||
REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2);
|
REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2);
|
||||||
|
|
||||||
/* RAM region to be used for Main stack. This stack accommodates the processing
|
/* RAM region to be used for Main stack. This stack accommodates the processing
|
||||||
of all exceptions and interrupts.*/
|
of all exceptions and interrupts.*/
|
||||||
REGION_ALIAS("MAIN_STACK_RAM", ram0);
|
REGION_ALIAS("MAIN_STACK_RAM", ram0);
|
||||||
|
|
||||||
/* RAM region to be used for the process stack. This is the stack used by
|
/* RAM region to be used for the process stack. This is the stack used by
|
||||||
the main() function.*/
|
the main() function.*/
|
||||||
REGION_ALIAS("PROCESS_STACK_RAM", ram0);
|
REGION_ALIAS("PROCESS_STACK_RAM", ram0);
|
||||||
|
|
||||||
/* RAM region to be used for data segment.*/
|
/* RAM region to be used for data segment.*/
|
||||||
REGION_ALIAS("DATA_RAM", ram0);
|
REGION_ALIAS("DATA_RAM", ram0);
|
||||||
REGION_ALIAS("DATA_RAM_LMA", flash2);
|
REGION_ALIAS("DATA_RAM_LMA", flash2);
|
||||||
|
|
||||||
/* RAM region to be used for BSS segment.*/
|
/* RAM region to be used for BSS segment.*/
|
||||||
REGION_ALIAS("BSS_RAM", ram0);
|
REGION_ALIAS("BSS_RAM", ram0);
|
||||||
|
|
||||||
/* RAM region to be used for the default heap.*/
|
/* RAM region to be used for the default heap.*/
|
||||||
REGION_ALIAS("HEAP_RAM", ram0);
|
REGION_ALIAS("HEAP_RAM", ram0);
|
||||||
|
|
||||||
__eeprom_workarea_start__ = ORIGIN(flash3);
|
__eeprom_workarea_start__ = ORIGIN(flash3);
|
||||||
__eeprom_workarea_size__ = LENGTH(flash3);
|
__eeprom_workarea_size__ = LENGTH(flash3);
|
||||||
__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__;
|
__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__;
|
||||||
|
|
||||||
/* Generic rules inclusion.*/
|
/* Generic rules inclusion.*/
|
||||||
INCLUDE rules.ld
|
INCLUDE rules.ld
|
||||||
|
@ -1,88 +1,88 @@
|
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
|
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ST32F103xB memory setup for use with the maplemini bootloader.
|
* ST32F103xB memory setup for use with the maplemini bootloader.
|
||||||
* You will have to
|
* You will have to
|
||||||
* #define CORTEX_VTOR_INIT 0x5000
|
* #define CORTEX_VTOR_INIT 0x5000
|
||||||
* in your projects chconf.h
|
* in your projects chconf.h
|
||||||
*/
|
*/
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
flash0 : org = 0x08002000, len = 128k - 0x2000
|
flash0 : org = 0x08002000, len = 128k - 0x2000
|
||||||
flash1 : org = 0x00000000, len = 0
|
flash1 : org = 0x00000000, len = 0
|
||||||
flash2 : org = 0x00000000, len = 0
|
flash2 : org = 0x00000000, len = 0
|
||||||
flash3 : org = 0x00000000, len = 0
|
flash3 : org = 0x00000000, len = 0
|
||||||
flash4 : org = 0x00000000, len = 0
|
flash4 : org = 0x00000000, len = 0
|
||||||
flash5 : org = 0x00000000, len = 0
|
flash5 : org = 0x00000000, len = 0
|
||||||
flash6 : org = 0x00000000, len = 0
|
flash6 : org = 0x00000000, len = 0
|
||||||
flash7 : org = 0x00000000, len = 0
|
flash7 : org = 0x00000000, len = 0
|
||||||
ram0 : org = 0x20000000, len = 20k
|
ram0 : org = 0x20000000, len = 20k
|
||||||
ram1 : org = 0x00000000, len = 0
|
ram1 : org = 0x00000000, len = 0
|
||||||
ram2 : org = 0x00000000, len = 0
|
ram2 : org = 0x00000000, len = 0
|
||||||
ram3 : org = 0x00000000, len = 0
|
ram3 : org = 0x00000000, len = 0
|
||||||
ram4 : org = 0x00000000, len = 0
|
ram4 : org = 0x00000000, len = 0
|
||||||
ram5 : org = 0x00000000, len = 0
|
ram5 : org = 0x00000000, len = 0
|
||||||
ram6 : org = 0x00000000, len = 0
|
ram6 : org = 0x00000000, len = 0
|
||||||
ram7 : org = 0x00000000, len = 0
|
ram7 : org = 0x00000000, len = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For each data/text section two region are defined, a virtual region
|
/* For each data/text section two region are defined, a virtual region
|
||||||
and a load region (_LMA suffix).*/
|
and a load region (_LMA suffix).*/
|
||||||
|
|
||||||
/* Flash region to be used for exception vectors.*/
|
/* Flash region to be used for exception vectors.*/
|
||||||
REGION_ALIAS("VECTORS_FLASH", flash0);
|
REGION_ALIAS("VECTORS_FLASH", flash0);
|
||||||
REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
|
REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
|
||||||
|
|
||||||
/* Flash region to be used for constructors and destructors.*/
|
/* Flash region to be used for constructors and destructors.*/
|
||||||
REGION_ALIAS("XTORS_FLASH", flash0);
|
REGION_ALIAS("XTORS_FLASH", flash0);
|
||||||
REGION_ALIAS("XTORS_FLASH_LMA", flash0);
|
REGION_ALIAS("XTORS_FLASH_LMA", flash0);
|
||||||
|
|
||||||
/* Flash region to be used for code text.*/
|
/* Flash region to be used for code text.*/
|
||||||
REGION_ALIAS("TEXT_FLASH", flash0);
|
REGION_ALIAS("TEXT_FLASH", flash0);
|
||||||
REGION_ALIAS("TEXT_FLASH_LMA", flash0);
|
REGION_ALIAS("TEXT_FLASH_LMA", flash0);
|
||||||
|
|
||||||
/* Flash region to be used for read only data.*/
|
/* Flash region to be used for read only data.*/
|
||||||
REGION_ALIAS("RODATA_FLASH", flash0);
|
REGION_ALIAS("RODATA_FLASH", flash0);
|
||||||
REGION_ALIAS("RODATA_FLASH_LMA", flash0);
|
REGION_ALIAS("RODATA_FLASH_LMA", flash0);
|
||||||
|
|
||||||
/* Flash region to be used for various.*/
|
/* Flash region to be used for various.*/
|
||||||
REGION_ALIAS("VARIOUS_FLASH", flash0);
|
REGION_ALIAS("VARIOUS_FLASH", flash0);
|
||||||
REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
|
REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
|
||||||
|
|
||||||
/* Flash region to be used for RAM(n) initialization data.*/
|
/* Flash region to be used for RAM(n) initialization data.*/
|
||||||
REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
|
REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
|
||||||
|
|
||||||
/* RAM region to be used for Main stack. This stack accommodates the processing
|
/* RAM region to be used for Main stack. This stack accommodates the processing
|
||||||
of all exceptions and interrupts.*/
|
of all exceptions and interrupts.*/
|
||||||
REGION_ALIAS("MAIN_STACK_RAM", ram0);
|
REGION_ALIAS("MAIN_STACK_RAM", ram0);
|
||||||
|
|
||||||
/* RAM region to be used for the process stack. This is the stack used by
|
/* RAM region to be used for the process stack. This is the stack used by
|
||||||
the main() function.*/
|
the main() function.*/
|
||||||
REGION_ALIAS("PROCESS_STACK_RAM", ram0);
|
REGION_ALIAS("PROCESS_STACK_RAM", ram0);
|
||||||
|
|
||||||
/* RAM region to be used for data segment.*/
|
/* RAM region to be used for data segment.*/
|
||||||
REGION_ALIAS("DATA_RAM", ram0);
|
REGION_ALIAS("DATA_RAM", ram0);
|
||||||
REGION_ALIAS("DATA_RAM_LMA", flash0);
|
REGION_ALIAS("DATA_RAM_LMA", flash0);
|
||||||
|
|
||||||
/* RAM region to be used for BSS segment.*/
|
/* RAM region to be used for BSS segment.*/
|
||||||
REGION_ALIAS("BSS_RAM", ram0);
|
REGION_ALIAS("BSS_RAM", ram0);
|
||||||
|
|
||||||
/* RAM region to be used for the default heap.*/
|
/* RAM region to be used for the default heap.*/
|
||||||
REGION_ALIAS("HEAP_RAM", ram0);
|
REGION_ALIAS("HEAP_RAM", ram0);
|
||||||
|
|
||||||
/* Generic rules inclusion.*/
|
/* Generic rules inclusion.*/
|
||||||
INCLUDE rules.ld
|
INCLUDE rules.ld
|
||||||
|
@ -1,171 +1,171 @@
|
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _MCUCONF_H_
|
#ifndef _MCUCONF_H_
|
||||||
#define _MCUCONF_H_
|
#define _MCUCONF_H_
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* STM32F0xx drivers configuration.
|
* STM32F0xx drivers configuration.
|
||||||
* The following settings override the default settings present in
|
* The following settings override the default settings present in
|
||||||
* the various device driver implementation headers.
|
* the various device driver implementation headers.
|
||||||
* Note that the settings for each driver only have effect if the whole
|
* Note that the settings for each driver only have effect if the whole
|
||||||
* driver is enabled in halconf.h.
|
* driver is enabled in halconf.h.
|
||||||
*
|
*
|
||||||
* IRQ priorities:
|
* IRQ priorities:
|
||||||
* 3...0 Lowest...Highest.
|
* 3...0 Lowest...Highest.
|
||||||
*
|
*
|
||||||
* DMA priorities:
|
* DMA priorities:
|
||||||
* 0...3 Lowest...Highest.
|
* 0...3 Lowest...Highest.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define STM32F0xx_MCUCONF
|
#define STM32F0xx_MCUCONF
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAL driver system settings.
|
* HAL driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_NO_INIT FALSE
|
#define STM32_NO_INIT FALSE
|
||||||
#define STM32_PVD_ENABLE FALSE
|
#define STM32_PVD_ENABLE FALSE
|
||||||
#define STM32_PLS STM32_PLS_LEV0
|
#define STM32_PLS STM32_PLS_LEV0
|
||||||
#define STM32_HSI_ENABLED TRUE
|
#define STM32_HSI_ENABLED TRUE
|
||||||
#define STM32_HSI14_ENABLED TRUE
|
#define STM32_HSI14_ENABLED TRUE
|
||||||
#define STM32_HSI48_ENABLED FALSE
|
#define STM32_HSI48_ENABLED FALSE
|
||||||
#define STM32_LSI_ENABLED TRUE
|
#define STM32_LSI_ENABLED TRUE
|
||||||
#define STM32_HSE_ENABLED FALSE
|
#define STM32_HSE_ENABLED FALSE
|
||||||
#define STM32_LSE_ENABLED FALSE
|
#define STM32_LSE_ENABLED FALSE
|
||||||
#define STM32_SW STM32_SW_PLL
|
#define STM32_SW STM32_SW_PLL
|
||||||
#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2
|
#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2
|
||||||
#define STM32_PREDIV_VALUE 1
|
#define STM32_PREDIV_VALUE 1
|
||||||
#define STM32_PLLMUL_VALUE 12
|
#define STM32_PLLMUL_VALUE 12
|
||||||
#define STM32_HPRE STM32_HPRE_DIV1
|
#define STM32_HPRE STM32_HPRE_DIV1
|
||||||
#define STM32_PPRE STM32_PPRE_DIV1
|
#define STM32_PPRE STM32_PPRE_DIV1
|
||||||
#define STM32_ADCSW STM32_ADCSW_HSI14
|
#define STM32_ADCSW STM32_ADCSW_HSI14
|
||||||
#define STM32_ADCPRE STM32_ADCPRE_DIV4
|
#define STM32_ADCPRE STM32_ADCPRE_DIV4
|
||||||
#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
|
#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
|
||||||
#define STM32_ADCPRE STM32_ADCPRE_DIV4
|
#define STM32_ADCPRE STM32_ADCPRE_DIV4
|
||||||
#define STM32_ADCSW STM32_ADCSW_HSI14
|
#define STM32_ADCSW STM32_ADCSW_HSI14
|
||||||
#define STM32_USBSW STM32_USBSW_HSI48
|
#define STM32_USBSW STM32_USBSW_HSI48
|
||||||
#define STM32_CECSW STM32_CECSW_HSI
|
#define STM32_CECSW STM32_CECSW_HSI
|
||||||
#define STM32_I2C1SW STM32_I2C1SW_HSI
|
#define STM32_I2C1SW STM32_I2C1SW_HSI
|
||||||
#define STM32_USART1SW STM32_USART1SW_PCLK
|
#define STM32_USART1SW STM32_USART1SW_PCLK
|
||||||
#define STM32_RTCSEL STM32_RTCSEL_LSI
|
#define STM32_RTCSEL STM32_RTCSEL_LSI
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ADC driver system settings.
|
* ADC driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_ADC_USE_ADC1 FALSE
|
#define STM32_ADC_USE_ADC1 FALSE
|
||||||
#define STM32_ADC_ADC1_DMA_PRIORITY 2
|
#define STM32_ADC_ADC1_DMA_PRIORITY 2
|
||||||
#define STM32_ADC_IRQ_PRIORITY 2
|
#define STM32_ADC_IRQ_PRIORITY 2
|
||||||
#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2
|
#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* EXT driver system settings.
|
* EXT driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3
|
#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3
|
||||||
#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3
|
#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3
|
||||||
#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3
|
#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3
|
||||||
#define STM32_EXT_EXTI16_IRQ_PRIORITY 3
|
#define STM32_EXT_EXTI16_IRQ_PRIORITY 3
|
||||||
#define STM32_EXT_EXTI17_IRQ_PRIORITY 3
|
#define STM32_EXT_EXTI17_IRQ_PRIORITY 3
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GPT driver system settings.
|
* GPT driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_GPT_USE_TIM1 FALSE
|
#define STM32_GPT_USE_TIM1 FALSE
|
||||||
#define STM32_GPT_USE_TIM2 FALSE
|
#define STM32_GPT_USE_TIM2 FALSE
|
||||||
#define STM32_GPT_USE_TIM3 FALSE
|
#define STM32_GPT_USE_TIM3 FALSE
|
||||||
#define STM32_GPT_USE_TIM14 FALSE
|
#define STM32_GPT_USE_TIM14 FALSE
|
||||||
#define STM32_GPT_TIM1_IRQ_PRIORITY 2
|
#define STM32_GPT_TIM1_IRQ_PRIORITY 2
|
||||||
#define STM32_GPT_TIM2_IRQ_PRIORITY 2
|
#define STM32_GPT_TIM2_IRQ_PRIORITY 2
|
||||||
#define STM32_GPT_TIM3_IRQ_PRIORITY 2
|
#define STM32_GPT_TIM3_IRQ_PRIORITY 2
|
||||||
#define STM32_GPT_TIM14_IRQ_PRIORITY 2
|
#define STM32_GPT_TIM14_IRQ_PRIORITY 2
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* I2C driver system settings.
|
* I2C driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_I2C_USE_I2C1 FALSE
|
#define STM32_I2C_USE_I2C1 FALSE
|
||||||
#define STM32_I2C_USE_I2C2 FALSE
|
#define STM32_I2C_USE_I2C2 FALSE
|
||||||
#define STM32_I2C_BUSY_TIMEOUT 50
|
#define STM32_I2C_BUSY_TIMEOUT 50
|
||||||
#define STM32_I2C_I2C1_IRQ_PRIORITY 3
|
#define STM32_I2C_I2C1_IRQ_PRIORITY 3
|
||||||
#define STM32_I2C_I2C2_IRQ_PRIORITY 3
|
#define STM32_I2C_I2C2_IRQ_PRIORITY 3
|
||||||
#define STM32_I2C_USE_DMA TRUE
|
#define STM32_I2C_USE_DMA TRUE
|
||||||
#define STM32_I2C_I2C1_DMA_PRIORITY 1
|
#define STM32_I2C_I2C1_DMA_PRIORITY 1
|
||||||
#define STM32_I2C_I2C2_DMA_PRIORITY 1
|
#define STM32_I2C_I2C2_DMA_PRIORITY 1
|
||||||
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
|
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ICU driver system settings.
|
* ICU driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_ICU_USE_TIM1 FALSE
|
#define STM32_ICU_USE_TIM1 FALSE
|
||||||
#define STM32_ICU_USE_TIM2 FALSE
|
#define STM32_ICU_USE_TIM2 FALSE
|
||||||
#define STM32_ICU_USE_TIM3 FALSE
|
#define STM32_ICU_USE_TIM3 FALSE
|
||||||
#define STM32_ICU_TIM1_IRQ_PRIORITY 3
|
#define STM32_ICU_TIM1_IRQ_PRIORITY 3
|
||||||
#define STM32_ICU_TIM2_IRQ_PRIORITY 3
|
#define STM32_ICU_TIM2_IRQ_PRIORITY 3
|
||||||
#define STM32_ICU_TIM3_IRQ_PRIORITY 3
|
#define STM32_ICU_TIM3_IRQ_PRIORITY 3
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PWM driver system settings.
|
* PWM driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_PWM_USE_ADVANCED FALSE
|
#define STM32_PWM_USE_ADVANCED FALSE
|
||||||
#define STM32_PWM_USE_TIM1 FALSE
|
#define STM32_PWM_USE_TIM1 FALSE
|
||||||
#define STM32_PWM_USE_TIM2 FALSE
|
#define STM32_PWM_USE_TIM2 FALSE
|
||||||
#define STM32_PWM_USE_TIM3 FALSE
|
#define STM32_PWM_USE_TIM3 FALSE
|
||||||
#define STM32_PWM_TIM1_IRQ_PRIORITY 3
|
#define STM32_PWM_TIM1_IRQ_PRIORITY 3
|
||||||
#define STM32_PWM_TIM2_IRQ_PRIORITY 3
|
#define STM32_PWM_TIM2_IRQ_PRIORITY 3
|
||||||
#define STM32_PWM_TIM3_IRQ_PRIORITY 3
|
#define STM32_PWM_TIM3_IRQ_PRIORITY 3
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SERIAL driver system settings.
|
* SERIAL driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_SERIAL_USE_USART1 FALSE
|
#define STM32_SERIAL_USE_USART1 FALSE
|
||||||
#define STM32_SERIAL_USE_USART2 FALSE
|
#define STM32_SERIAL_USE_USART2 FALSE
|
||||||
#define STM32_SERIAL_USART1_PRIORITY 3
|
#define STM32_SERIAL_USART1_PRIORITY 3
|
||||||
#define STM32_SERIAL_USART2_PRIORITY 3
|
#define STM32_SERIAL_USART2_PRIORITY 3
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SPI driver system settings.
|
* SPI driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_SPI_USE_SPI1 FALSE
|
#define STM32_SPI_USE_SPI1 FALSE
|
||||||
#define STM32_SPI_USE_SPI2 FALSE
|
#define STM32_SPI_USE_SPI2 FALSE
|
||||||
#define STM32_SPI_SPI1_DMA_PRIORITY 1
|
#define STM32_SPI_SPI1_DMA_PRIORITY 1
|
||||||
#define STM32_SPI_SPI2_DMA_PRIORITY 1
|
#define STM32_SPI_SPI2_DMA_PRIORITY 1
|
||||||
#define STM32_SPI_SPI1_IRQ_PRIORITY 2
|
#define STM32_SPI_SPI1_IRQ_PRIORITY 2
|
||||||
#define STM32_SPI_SPI2_IRQ_PRIORITY 2
|
#define STM32_SPI_SPI2_IRQ_PRIORITY 2
|
||||||
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
|
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ST driver system settings.
|
* ST driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_ST_IRQ_PRIORITY 2
|
#define STM32_ST_IRQ_PRIORITY 2
|
||||||
#define STM32_ST_USE_TIMER 2
|
#define STM32_ST_USE_TIMER 2
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* UART driver system settings.
|
* UART driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_UART_USE_USART1 FALSE
|
#define STM32_UART_USE_USART1 FALSE
|
||||||
#define STM32_UART_USE_USART2 FALSE
|
#define STM32_UART_USE_USART2 FALSE
|
||||||
#define STM32_UART_USART1_IRQ_PRIORITY 3
|
#define STM32_UART_USART1_IRQ_PRIORITY 3
|
||||||
#define STM32_UART_USART2_IRQ_PRIORITY 3
|
#define STM32_UART_USART2_IRQ_PRIORITY 3
|
||||||
#define STM32_UART_USART1_DMA_PRIORITY 0
|
#define STM32_UART_USART1_DMA_PRIORITY 0
|
||||||
#define STM32_UART_USART2_DMA_PRIORITY 0
|
#define STM32_UART_USART2_DMA_PRIORITY 0
|
||||||
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
|
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* USB driver system settings.
|
* USB driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_USB_USE_USB1 TRUE
|
#define STM32_USB_USE_USB1 TRUE
|
||||||
#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
|
#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
|
||||||
#define STM32_USB_USB1_LP_IRQ_PRIORITY 3
|
#define STM32_USB_USB1_LP_IRQ_PRIORITY 3
|
||||||
|
|
||||||
#endif /* _MCUCONF_H_ */
|
#endif /* _MCUCONF_H_ */
|
||||||
|
@ -1,209 +1,209 @@
|
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _MCUCONF_H_
|
#ifndef _MCUCONF_H_
|
||||||
#define _MCUCONF_H_
|
#define _MCUCONF_H_
|
||||||
|
|
||||||
#define STM32F103_MCUCONF
|
#define STM32F103_MCUCONF
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* STM32F103 drivers configuration.
|
* STM32F103 drivers configuration.
|
||||||
* The following settings override the default settings present in
|
* The following settings override the default settings present in
|
||||||
* the various device driver implementation headers.
|
* the various device driver implementation headers.
|
||||||
* Note that the settings for each driver only have effect if the whole
|
* Note that the settings for each driver only have effect if the whole
|
||||||
* driver is enabled in halconf.h.
|
* driver is enabled in halconf.h.
|
||||||
*
|
*
|
||||||
* IRQ priorities:
|
* IRQ priorities:
|
||||||
* 15...0 Lowest...Highest.
|
* 15...0 Lowest...Highest.
|
||||||
*
|
*
|
||||||
* DMA priorities:
|
* DMA priorities:
|
||||||
* 0...3 Lowest...Highest.
|
* 0...3 Lowest...Highest.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAL driver system settings.
|
* HAL driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_NO_INIT FALSE
|
#define STM32_NO_INIT FALSE
|
||||||
#define STM32_HSI_ENABLED TRUE
|
#define STM32_HSI_ENABLED TRUE
|
||||||
#define STM32_LSI_ENABLED FALSE
|
#define STM32_LSI_ENABLED FALSE
|
||||||
#define STM32_HSE_ENABLED TRUE
|
#define STM32_HSE_ENABLED TRUE
|
||||||
#define STM32_LSE_ENABLED FALSE
|
#define STM32_LSE_ENABLED FALSE
|
||||||
#define STM32_SW STM32_SW_PLL
|
#define STM32_SW STM32_SW_PLL
|
||||||
#define STM32_PLLSRC STM32_PLLSRC_HSE
|
#define STM32_PLLSRC STM32_PLLSRC_HSE
|
||||||
#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1
|
#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1
|
||||||
#define STM32_PLLMUL_VALUE 9
|
#define STM32_PLLMUL_VALUE 9
|
||||||
#define STM32_HPRE STM32_HPRE_DIV1
|
#define STM32_HPRE STM32_HPRE_DIV1
|
||||||
#define STM32_PPRE1 STM32_PPRE1_DIV2
|
#define STM32_PPRE1 STM32_PPRE1_DIV2
|
||||||
#define STM32_PPRE2 STM32_PPRE2_DIV2
|
#define STM32_PPRE2 STM32_PPRE2_DIV2
|
||||||
#define STM32_ADCPRE STM32_ADCPRE_DIV4
|
#define STM32_ADCPRE STM32_ADCPRE_DIV4
|
||||||
#define STM32_USB_CLOCK_REQUIRED TRUE
|
#define STM32_USB_CLOCK_REQUIRED TRUE
|
||||||
#define STM32_USBPRE STM32_USBPRE_DIV1P5
|
#define STM32_USBPRE STM32_USBPRE_DIV1P5
|
||||||
#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
|
#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
|
||||||
#define STM32_RTCSEL STM32_RTCSEL_HSEDIV
|
#define STM32_RTCSEL STM32_RTCSEL_HSEDIV
|
||||||
#define STM32_PVD_ENABLE FALSE
|
#define STM32_PVD_ENABLE FALSE
|
||||||
#define STM32_PLS STM32_PLS_LEV0
|
#define STM32_PLS STM32_PLS_LEV0
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ADC driver system settings.
|
* ADC driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_ADC_USE_ADC1 FALSE
|
#define STM32_ADC_USE_ADC1 FALSE
|
||||||
#define STM32_ADC_ADC1_DMA_PRIORITY 2
|
#define STM32_ADC_ADC1_DMA_PRIORITY 2
|
||||||
#define STM32_ADC_ADC1_IRQ_PRIORITY 6
|
#define STM32_ADC_ADC1_IRQ_PRIORITY 6
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* CAN driver system settings.
|
* CAN driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_CAN_USE_CAN1 FALSE
|
#define STM32_CAN_USE_CAN1 FALSE
|
||||||
#define STM32_CAN_CAN1_IRQ_PRIORITY 11
|
#define STM32_CAN_CAN1_IRQ_PRIORITY 11
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* EXT driver system settings.
|
* EXT driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_EXT_EXTI0_IRQ_PRIORITY 6
|
#define STM32_EXT_EXTI0_IRQ_PRIORITY 6
|
||||||
#define STM32_EXT_EXTI1_IRQ_PRIORITY 6
|
#define STM32_EXT_EXTI1_IRQ_PRIORITY 6
|
||||||
#define STM32_EXT_EXTI2_IRQ_PRIORITY 6
|
#define STM32_EXT_EXTI2_IRQ_PRIORITY 6
|
||||||
#define STM32_EXT_EXTI3_IRQ_PRIORITY 6
|
#define STM32_EXT_EXTI3_IRQ_PRIORITY 6
|
||||||
#define STM32_EXT_EXTI4_IRQ_PRIORITY 6
|
#define STM32_EXT_EXTI4_IRQ_PRIORITY 6
|
||||||
#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6
|
#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6
|
||||||
#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6
|
#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6
|
||||||
#define STM32_EXT_EXTI16_IRQ_PRIORITY 6
|
#define STM32_EXT_EXTI16_IRQ_PRIORITY 6
|
||||||
#define STM32_EXT_EXTI17_IRQ_PRIORITY 6
|
#define STM32_EXT_EXTI17_IRQ_PRIORITY 6
|
||||||
#define STM32_EXT_EXTI18_IRQ_PRIORITY 6
|
#define STM32_EXT_EXTI18_IRQ_PRIORITY 6
|
||||||
#define STM32_EXT_EXTI19_IRQ_PRIORITY 6
|
#define STM32_EXT_EXTI19_IRQ_PRIORITY 6
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GPT driver system settings.
|
* GPT driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_GPT_USE_TIM1 FALSE
|
#define STM32_GPT_USE_TIM1 FALSE
|
||||||
#define STM32_GPT_USE_TIM2 FALSE
|
#define STM32_GPT_USE_TIM2 FALSE
|
||||||
#define STM32_GPT_USE_TIM3 FALSE
|
#define STM32_GPT_USE_TIM3 FALSE
|
||||||
#define STM32_GPT_USE_TIM4 FALSE
|
#define STM32_GPT_USE_TIM4 FALSE
|
||||||
#define STM32_GPT_USE_TIM5 FALSE
|
#define STM32_GPT_USE_TIM5 FALSE
|
||||||
#define STM32_GPT_USE_TIM8 FALSE
|
#define STM32_GPT_USE_TIM8 FALSE
|
||||||
#define STM32_GPT_TIM1_IRQ_PRIORITY 7
|
#define STM32_GPT_TIM1_IRQ_PRIORITY 7
|
||||||
#define STM32_GPT_TIM2_IRQ_PRIORITY 7
|
#define STM32_GPT_TIM2_IRQ_PRIORITY 7
|
||||||
#define STM32_GPT_TIM3_IRQ_PRIORITY 7
|
#define STM32_GPT_TIM3_IRQ_PRIORITY 7
|
||||||
#define STM32_GPT_TIM4_IRQ_PRIORITY 7
|
#define STM32_GPT_TIM4_IRQ_PRIORITY 7
|
||||||
#define STM32_GPT_TIM5_IRQ_PRIORITY 7
|
#define STM32_GPT_TIM5_IRQ_PRIORITY 7
|
||||||
#define STM32_GPT_TIM8_IRQ_PRIORITY 7
|
#define STM32_GPT_TIM8_IRQ_PRIORITY 7
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* I2C driver system settings.
|
* I2C driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_I2C_USE_I2C1 FALSE
|
#define STM32_I2C_USE_I2C1 FALSE
|
||||||
#define STM32_I2C_USE_I2C2 FALSE
|
#define STM32_I2C_USE_I2C2 FALSE
|
||||||
#define STM32_I2C_BUSY_TIMEOUT 50
|
#define STM32_I2C_BUSY_TIMEOUT 50
|
||||||
#define STM32_I2C_I2C1_IRQ_PRIORITY 5
|
#define STM32_I2C_I2C1_IRQ_PRIORITY 5
|
||||||
#define STM32_I2C_I2C2_IRQ_PRIORITY 5
|
#define STM32_I2C_I2C2_IRQ_PRIORITY 5
|
||||||
#define STM32_I2C_I2C1_DMA_PRIORITY 3
|
#define STM32_I2C_I2C1_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
||||||
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
|
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ICU driver system settings.
|
* ICU driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_ICU_USE_TIM1 FALSE
|
#define STM32_ICU_USE_TIM1 FALSE
|
||||||
#define STM32_ICU_USE_TIM2 FALSE
|
#define STM32_ICU_USE_TIM2 FALSE
|
||||||
#define STM32_ICU_USE_TIM3 FALSE
|
#define STM32_ICU_USE_TIM3 FALSE
|
||||||
#define STM32_ICU_USE_TIM4 FALSE
|
#define STM32_ICU_USE_TIM4 FALSE
|
||||||
#define STM32_ICU_USE_TIM5 FALSE
|
#define STM32_ICU_USE_TIM5 FALSE
|
||||||
#define STM32_ICU_USE_TIM8 FALSE
|
#define STM32_ICU_USE_TIM8 FALSE
|
||||||
#define STM32_ICU_TIM1_IRQ_PRIORITY 7
|
#define STM32_ICU_TIM1_IRQ_PRIORITY 7
|
||||||
#define STM32_ICU_TIM2_IRQ_PRIORITY 7
|
#define STM32_ICU_TIM2_IRQ_PRIORITY 7
|
||||||
#define STM32_ICU_TIM3_IRQ_PRIORITY 7
|
#define STM32_ICU_TIM3_IRQ_PRIORITY 7
|
||||||
#define STM32_ICU_TIM4_IRQ_PRIORITY 7
|
#define STM32_ICU_TIM4_IRQ_PRIORITY 7
|
||||||
#define STM32_ICU_TIM5_IRQ_PRIORITY 7
|
#define STM32_ICU_TIM5_IRQ_PRIORITY 7
|
||||||
#define STM32_ICU_TIM8_IRQ_PRIORITY 7
|
#define STM32_ICU_TIM8_IRQ_PRIORITY 7
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PWM driver system settings.
|
* PWM driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_PWM_USE_ADVANCED FALSE
|
#define STM32_PWM_USE_ADVANCED FALSE
|
||||||
#define STM32_PWM_USE_TIM1 FALSE
|
#define STM32_PWM_USE_TIM1 FALSE
|
||||||
#define STM32_PWM_USE_TIM2 FALSE
|
#define STM32_PWM_USE_TIM2 FALSE
|
||||||
#define STM32_PWM_USE_TIM3 FALSE
|
#define STM32_PWM_USE_TIM3 FALSE
|
||||||
#define STM32_PWM_USE_TIM4 FALSE
|
#define STM32_PWM_USE_TIM4 FALSE
|
||||||
#define STM32_PWM_USE_TIM5 FALSE
|
#define STM32_PWM_USE_TIM5 FALSE
|
||||||
#define STM32_PWM_USE_TIM8 FALSE
|
#define STM32_PWM_USE_TIM8 FALSE
|
||||||
#define STM32_PWM_TIM1_IRQ_PRIORITY 7
|
#define STM32_PWM_TIM1_IRQ_PRIORITY 7
|
||||||
#define STM32_PWM_TIM2_IRQ_PRIORITY 7
|
#define STM32_PWM_TIM2_IRQ_PRIORITY 7
|
||||||
#define STM32_PWM_TIM3_IRQ_PRIORITY 7
|
#define STM32_PWM_TIM3_IRQ_PRIORITY 7
|
||||||
#define STM32_PWM_TIM4_IRQ_PRIORITY 7
|
#define STM32_PWM_TIM4_IRQ_PRIORITY 7
|
||||||
#define STM32_PWM_TIM5_IRQ_PRIORITY 7
|
#define STM32_PWM_TIM5_IRQ_PRIORITY 7
|
||||||
#define STM32_PWM_TIM8_IRQ_PRIORITY 7
|
#define STM32_PWM_TIM8_IRQ_PRIORITY 7
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* RTC driver system settings.
|
* RTC driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_RTC_IRQ_PRIORITY 15
|
#define STM32_RTC_IRQ_PRIORITY 15
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SERIAL driver system settings.
|
* SERIAL driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_SERIAL_USE_USART1 FALSE
|
#define STM32_SERIAL_USE_USART1 FALSE
|
||||||
#define STM32_SERIAL_USE_USART2 FALSE
|
#define STM32_SERIAL_USE_USART2 FALSE
|
||||||
#define STM32_SERIAL_USE_USART3 FALSE
|
#define STM32_SERIAL_USE_USART3 FALSE
|
||||||
#define STM32_SERIAL_USE_UART4 FALSE
|
#define STM32_SERIAL_USE_UART4 FALSE
|
||||||
#define STM32_SERIAL_USE_UART5 FALSE
|
#define STM32_SERIAL_USE_UART5 FALSE
|
||||||
#define STM32_SERIAL_USART1_PRIORITY 12
|
#define STM32_SERIAL_USART1_PRIORITY 12
|
||||||
#define STM32_SERIAL_USART2_PRIORITY 12
|
#define STM32_SERIAL_USART2_PRIORITY 12
|
||||||
#define STM32_SERIAL_USART3_PRIORITY 12
|
#define STM32_SERIAL_USART3_PRIORITY 12
|
||||||
#define STM32_SERIAL_UART4_PRIORITY 12
|
#define STM32_SERIAL_UART4_PRIORITY 12
|
||||||
#define STM32_SERIAL_UART5_PRIORITY 12
|
#define STM32_SERIAL_UART5_PRIORITY 12
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SPI driver system settings.
|
* SPI driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_SPI_USE_SPI1 FALSE
|
#define STM32_SPI_USE_SPI1 FALSE
|
||||||
#define STM32_SPI_USE_SPI2 FALSE
|
#define STM32_SPI_USE_SPI2 FALSE
|
||||||
#define STM32_SPI_USE_SPI3 FALSE
|
#define STM32_SPI_USE_SPI3 FALSE
|
||||||
#define STM32_SPI_SPI1_DMA_PRIORITY 1
|
#define STM32_SPI_SPI1_DMA_PRIORITY 1
|
||||||
#define STM32_SPI_SPI2_DMA_PRIORITY 1
|
#define STM32_SPI_SPI2_DMA_PRIORITY 1
|
||||||
#define STM32_SPI_SPI3_DMA_PRIORITY 1
|
#define STM32_SPI_SPI3_DMA_PRIORITY 1
|
||||||
#define STM32_SPI_SPI1_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI1_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_SPI2_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI2_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_SPI3_IRQ_PRIORITY 10
|
#define STM32_SPI_SPI3_IRQ_PRIORITY 10
|
||||||
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
|
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ST driver system settings.
|
* ST driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_ST_IRQ_PRIORITY 8
|
#define STM32_ST_IRQ_PRIORITY 8
|
||||||
#define STM32_ST_USE_TIMER 2
|
#define STM32_ST_USE_TIMER 2
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* UART driver system settings.
|
* UART driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_UART_USE_USART1 FALSE
|
#define STM32_UART_USE_USART1 FALSE
|
||||||
#define STM32_UART_USE_USART2 FALSE
|
#define STM32_UART_USE_USART2 FALSE
|
||||||
#define STM32_UART_USE_USART3 FALSE
|
#define STM32_UART_USE_USART3 FALSE
|
||||||
#define STM32_UART_USART1_IRQ_PRIORITY 12
|
#define STM32_UART_USART1_IRQ_PRIORITY 12
|
||||||
#define STM32_UART_USART2_IRQ_PRIORITY 12
|
#define STM32_UART_USART2_IRQ_PRIORITY 12
|
||||||
#define STM32_UART_USART3_IRQ_PRIORITY 12
|
#define STM32_UART_USART3_IRQ_PRIORITY 12
|
||||||
#define STM32_UART_USART1_DMA_PRIORITY 0
|
#define STM32_UART_USART1_DMA_PRIORITY 0
|
||||||
#define STM32_UART_USART2_DMA_PRIORITY 0
|
#define STM32_UART_USART2_DMA_PRIORITY 0
|
||||||
#define STM32_UART_USART3_DMA_PRIORITY 0
|
#define STM32_UART_USART3_DMA_PRIORITY 0
|
||||||
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
|
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* USB driver system settings.
|
* USB driver system settings.
|
||||||
*/
|
*/
|
||||||
#define STM32_USB_USE_USB1 TRUE
|
#define STM32_USB_USE_USB1 TRUE
|
||||||
#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
|
#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
|
||||||
#define STM32_USB_USB1_HP_IRQ_PRIORITY 13
|
#define STM32_USB_USB1_HP_IRQ_PRIORITY 13
|
||||||
#define STM32_USB_USB1_LP_IRQ_PRIORITY 14
|
#define STM32_USB_USB1_LP_IRQ_PRIORITY 14
|
||||||
|
|
||||||
#endif /* _MCUCONF_H_ */
|
#endif /* _MCUCONF_H_ */
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,187 +1,187 @@
|
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file templates/halconf.h
|
* @file templates/halconf.h
|
||||||
* @brief HAL configuration header.
|
* @brief HAL configuration header.
|
||||||
* @details HAL configuration file, this file allows to enable or disable the
|
* @details HAL configuration file, this file allows to enable or disable the
|
||||||
* various device drivers from your application. You may also use
|
* various device drivers from your application. You may also use
|
||||||
* this file in order to override the device drivers default settings.
|
* this file in order to override the device drivers default settings.
|
||||||
*
|
*
|
||||||
* @addtogroup HAL_CONF
|
* @addtogroup HAL_CONF
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _HALCONF_H_
|
#ifndef _HALCONF_H_
|
||||||
#define _HALCONF_H_
|
#define _HALCONF_H_
|
||||||
|
|
||||||
#include "mcuconf.h"
|
#include "mcuconf.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the PAL subsystem.
|
* @brief Enables the PAL subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_PAL TRUE
|
#define HAL_USE_PAL TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the ADC subsystem.
|
* @brief Enables the ADC subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_ADC FALSE
|
#define HAL_USE_ADC FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the CAN subsystem.
|
* @brief Enables the CAN subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_CAN FALSE
|
#define HAL_USE_CAN FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the DAC subsystem.
|
* @brief Enables the DAC subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_DAC FALSE
|
#define HAL_USE_DAC FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the EXT subsystem.
|
* @brief Enables the EXT subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_EXT FALSE
|
#define HAL_USE_EXT FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the GPT subsystem.
|
* @brief Enables the GPT subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_GPT FALSE
|
#define HAL_USE_GPT FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the I2C subsystem.
|
* @brief Enables the I2C subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_I2C FALSE
|
#define HAL_USE_I2C FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the I2S subsystem.
|
* @brief Enables the I2S subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_I2S FALSE
|
#define HAL_USE_I2S FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the ICU subsystem.
|
* @brief Enables the ICU subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_ICU FALSE
|
#define HAL_USE_ICU FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the MAC subsystem.
|
* @brief Enables the MAC subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_MAC FALSE
|
#define HAL_USE_MAC FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the MMC_SPI subsystem.
|
* @brief Enables the MMC_SPI subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_MMC_SPI FALSE
|
#define HAL_USE_MMC_SPI FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the PWM subsystem.
|
* @brief Enables the PWM subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_PWM FALSE
|
#define HAL_USE_PWM FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the RTC subsystem.
|
* @brief Enables the RTC subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_RTC FALSE
|
#define HAL_USE_RTC FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SDC subsystem.
|
* @brief Enables the SDC subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_SDC FALSE
|
#define HAL_USE_SDC FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SERIAL subsystem.
|
* @brief Enables the SERIAL subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_SERIAL FALSE
|
#define HAL_USE_SERIAL FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SERIAL over USB subsystem.
|
* @brief Enables the SERIAL over USB subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_SERIAL_USB FALSE
|
#define HAL_USE_SERIAL_USB FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SPI subsystem.
|
* @brief Enables the SPI subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_SPI FALSE
|
#define HAL_USE_SPI FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the UART subsystem.
|
* @brief Enables the UART subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_UART FALSE
|
#define HAL_USE_UART FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the USB subsystem.
|
* @brief Enables the USB subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_USB TRUE
|
#define HAL_USE_USB TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the WDG subsystem.
|
* @brief Enables the WDG subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_WDG FALSE
|
#define HAL_USE_WDG FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* USB driver related settings. */
|
/* USB driver related settings. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables synchronous APIs.
|
* @brief Enables synchronous APIs.
|
||||||
* @note Disabling this option saves both code and data space.
|
* @note Disabling this option saves both code and data space.
|
||||||
*/
|
*/
|
||||||
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
|
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
|
||||||
#define USB_USE_WAIT TRUE
|
#define USB_USE_WAIT TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* _HALCONF_H_ */
|
#endif /* _HALCONF_H_ */
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
@ -1,55 +1,55 @@
|
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _MCUCONF_H_
|
#ifndef _MCUCONF_H_
|
||||||
#define _MCUCONF_H_
|
#define _MCUCONF_H_
|
||||||
|
|
||||||
#define KL2x_MCUCONF
|
#define KL2x_MCUCONF
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAL driver system settings.
|
* HAL driver system settings.
|
||||||
*/
|
*/
|
||||||
#if 1
|
#if 1
|
||||||
/* PEE mode - 48MHz system clock driven by (16 MHz) external crystal. */
|
/* PEE mode - 48MHz system clock driven by (16 MHz) external crystal. */
|
||||||
#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE
|
#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE
|
||||||
#define KINETIS_PLLCLK_FREQUENCY 96000000UL
|
#define KINETIS_PLLCLK_FREQUENCY 96000000UL
|
||||||
#define KINETIS_SYSCLK_FREQUENCY 48000000UL
|
#define KINETIS_SYSCLK_FREQUENCY 48000000UL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/* crystal-less FEI mode - 48 MHz with internal 32.768 kHz crystal */
|
/* crystal-less FEI mode - 48 MHz with internal 32.768 kHz crystal */
|
||||||
#define KINETIS_MCG_MODE KINETIS_MCG_MODE_FEI
|
#define KINETIS_MCG_MODE KINETIS_MCG_MODE_FEI
|
||||||
#define KINETIS_MCG_FLL_DMX32 1 /* Fine-tune for 32.768 kHz */
|
#define KINETIS_MCG_FLL_DMX32 1 /* Fine-tune for 32.768 kHz */
|
||||||
#define KINETIS_MCG_FLL_DRS 1 /* 1464x FLL factor */
|
#define KINETIS_MCG_FLL_DRS 1 /* 1464x FLL factor */
|
||||||
#define KINETIS_SYSCLK_FREQUENCY 47972352UL /* 32.768 kHz * 1464 (~48 MHz) */
|
#define KINETIS_SYSCLK_FREQUENCY 47972352UL /* 32.768 kHz * 1464 (~48 MHz) */
|
||||||
#define KINETIS_CLKDIV1_OUTDIV1 1 /* do not divide system clock */
|
#define KINETIS_CLKDIV1_OUTDIV1 1 /* do not divide system clock */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SERIAL driver system settings.
|
* SERIAL driver system settings.
|
||||||
*/
|
*/
|
||||||
#define KINETIS_SERIAL_USE_UART0 TRUE
|
#define KINETIS_SERIAL_USE_UART0 TRUE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* USB driver settings
|
* USB driver settings
|
||||||
*/
|
*/
|
||||||
#define KINETIS_USB_USE_USB0 TRUE
|
#define KINETIS_USB_USE_USB0 TRUE
|
||||||
/* Need to redefine this, since the default is for K20x */
|
/* Need to redefine this, since the default is for K20x */
|
||||||
/* This is for Teensy LC; you should comment it out (or change to 5)
|
/* This is for Teensy LC; you should comment it out (or change to 5)
|
||||||
* for Teensy 3.x */
|
* for Teensy 3.x */
|
||||||
#define KINETIS_USB_USB0_IRQ_PRIORITY 2
|
#define KINETIS_USB_USB0_IRQ_PRIORITY 2
|
||||||
|
|
||||||
#endif /* _MCUCONF_H_ */
|
#endif /* _MCUCONF_H_ */
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
ifndef MAKEFILE_INCLUDED
|
ifndef MAKEFILE_INCLUDED
|
||||||
include ../../Makefile
|
include ../../Makefile
|
||||||
endif
|
endif
|
||||||
|
@ -1,161 +1,161 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CONFIG_H
|
#ifndef CONFIG_H
|
||||||
#define CONFIG_H
|
#define CONFIG_H
|
||||||
|
|
||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0xFEED
|
||||||
#define PRODUCT_ID 0x6060
|
#define PRODUCT_ID 0x6060
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER geekhack
|
#define MANUFACTURER geekhack
|
||||||
#define PRODUCT GH60
|
#define PRODUCT GH60
|
||||||
#define DESCRIPTION t.m.k. keyboard firmware for GH60
|
#define DESCRIPTION t.m.k. keyboard firmware for GH60
|
||||||
|
|
||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
#define MATRIX_ROWS 5
|
#define MATRIX_ROWS 5
|
||||||
#define MATRIX_COLS 14
|
#define MATRIX_COLS 14
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Keyboard Matrix Assignments
|
* Keyboard Matrix Assignments
|
||||||
*
|
*
|
||||||
* Change this to how you wired your keyboard
|
* Change this to how you wired your keyboard
|
||||||
* COLS: AVR pins used for columns, left to right
|
* COLS: AVR pins used for columns, left to right
|
||||||
* ROWS: AVR pins used for rows, top to bottom
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
|
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
|
||||||
// Rev A
|
// Rev A
|
||||||
// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 }
|
// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 }
|
||||||
// Rev B/C
|
// Rev B/C
|
||||||
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
|
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
|
||||||
#define UNUSED_PINS
|
#define UNUSED_PINS
|
||||||
|
|
||||||
/* COL2ROW or ROW2COL */
|
/* COL2ROW or ROW2COL */
|
||||||
#define DIODE_DIRECTION COL2ROW
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
#define DEBOUNCING_DELAY 5
|
#define DEBOUNCING_DELAY 5
|
||||||
|
|
||||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||||
//#define MATRIX_HAS_GHOST
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
/* number of backlight levels */
|
/* number of backlight levels */
|
||||||
#define BACKLIGHT_LEVELS 3
|
#define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
#define LOCKING_SUPPORT_ENABLE
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Force NKRO
|
* Force NKRO
|
||||||
*
|
*
|
||||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||||
* makefile for this to work.)
|
* makefile for this to work.)
|
||||||
*
|
*
|
||||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||||
* until the next keyboard reset.
|
* until the next keyboard reset.
|
||||||
*
|
*
|
||||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||||
* fully operational during normal computer usage.
|
* fully operational during normal computer usage.
|
||||||
*
|
*
|
||||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||||
* power-up.
|
* power-up.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//#define FORCE_NKRO
|
//#define FORCE_NKRO
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Magic Key Options
|
* Magic Key Options
|
||||||
*
|
*
|
||||||
* Magic keys are hotkey commands that allow control over firmware functions of
|
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||||
* the keyboard. They are best used in combination with the HID Listen program,
|
* the keyboard. They are best used in combination with the HID Listen program,
|
||||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||||
*
|
*
|
||||||
* The options below allow the magic key functionality to be changed. This is
|
* The options below allow the magic key functionality to be changed. This is
|
||||||
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* key combination for magic key command */
|
/* key combination for magic key command */
|
||||||
#define IS_COMMAND() ( \
|
#define IS_COMMAND() ( \
|
||||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* control how magic key switches layers */
|
/* control how magic key switches layers */
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||||
|
|
||||||
/* override magic key keymap */
|
/* override magic key keymap */
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||||
//#define MAGIC_KEY_HELP1 H
|
//#define MAGIC_KEY_HELP1 H
|
||||||
//#define MAGIC_KEY_HELP2 SLASH
|
//#define MAGIC_KEY_HELP2 SLASH
|
||||||
//#define MAGIC_KEY_DEBUG D
|
//#define MAGIC_KEY_DEBUG D
|
||||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||||
//#define MAGIC_KEY_DEBUG_KBD K
|
//#define MAGIC_KEY_DEBUG_KBD K
|
||||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||||
//#define MAGIC_KEY_VERSION V
|
//#define MAGIC_KEY_VERSION V
|
||||||
//#define MAGIC_KEY_STATUS S
|
//#define MAGIC_KEY_STATUS S
|
||||||
//#define MAGIC_KEY_CONSOLE C
|
//#define MAGIC_KEY_CONSOLE C
|
||||||
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
||||||
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
||||||
//#define MAGIC_KEY_LAYER0 0
|
//#define MAGIC_KEY_LAYER0 0
|
||||||
//#define MAGIC_KEY_LAYER1 1
|
//#define MAGIC_KEY_LAYER1 1
|
||||||
//#define MAGIC_KEY_LAYER2 2
|
//#define MAGIC_KEY_LAYER2 2
|
||||||
//#define MAGIC_KEY_LAYER3 3
|
//#define MAGIC_KEY_LAYER3 3
|
||||||
//#define MAGIC_KEY_LAYER4 4
|
//#define MAGIC_KEY_LAYER4 4
|
||||||
//#define MAGIC_KEY_LAYER5 5
|
//#define MAGIC_KEY_LAYER5 5
|
||||||
//#define MAGIC_KEY_LAYER6 6
|
//#define MAGIC_KEY_LAYER6 6
|
||||||
//#define MAGIC_KEY_LAYER7 7
|
//#define MAGIC_KEY_LAYER7 7
|
||||||
//#define MAGIC_KEY_LAYER8 8
|
//#define MAGIC_KEY_LAYER8 8
|
||||||
//#define MAGIC_KEY_LAYER9 9
|
//#define MAGIC_KEY_LAYER9 9
|
||||||
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
||||||
//#define MAGIC_KEY_LOCK CAPS
|
//#define MAGIC_KEY_LOCK CAPS
|
||||||
//#define MAGIC_KEY_EEPROM E
|
//#define MAGIC_KEY_EEPROM E
|
||||||
//#define MAGIC_KEY_NKRO N
|
//#define MAGIC_KEY_NKRO N
|
||||||
//#define MAGIC_KEY_SLEEP_LED Z
|
//#define MAGIC_KEY_SLEEP_LED Z
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature disable options
|
* Feature disable options
|
||||||
* These options are also useful to firmware size reduction.
|
* These options are also useful to firmware size reduction.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* disable debug print */
|
/* disable debug print */
|
||||||
//#define NO_DEBUG
|
//#define NO_DEBUG
|
||||||
|
|
||||||
/* disable print */
|
/* disable print */
|
||||||
//#define NO_PRINT
|
//#define NO_PRINT
|
||||||
|
|
||||||
/* disable action features */
|
/* disable action features */
|
||||||
//#define NO_ACTION_LAYER
|
//#define NO_ACTION_LAYER
|
||||||
//#define NO_ACTION_TAPPING
|
//#define NO_ACTION_TAPPING
|
||||||
//#define NO_ACTION_ONESHOT
|
//#define NO_ACTION_ONESHOT
|
||||||
//#define NO_ACTION_MACRO
|
//#define NO_ACTION_MACRO
|
||||||
//#define NO_ACTION_FUNCTION
|
//#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,25 +1,25 @@
|
|||||||
#include "gh60.h"
|
#include "gh60.h"
|
||||||
|
|
||||||
void led_set_kb(uint8_t usb_led) {
|
void led_set_kb(uint8_t usb_led) {
|
||||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||||
|
|
||||||
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
|
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
|
||||||
gh60_caps_led_on();
|
gh60_caps_led_on();
|
||||||
} else {
|
} else {
|
||||||
gh60_caps_led_off();
|
gh60_caps_led_off();
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (usb_led & (1<<USB_LED_NUM_LOCK)) {
|
// if (usb_led & (1<<USB_LED_NUM_LOCK)) {
|
||||||
// gh60_esc_led_on();
|
// gh60_esc_led_on();
|
||||||
// } else {
|
// } else {
|
||||||
// gh60_esc_led_off();
|
// gh60_esc_led_off();
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
|
// if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
|
||||||
// gh60_fn_led_on();
|
// gh60_fn_led_on();
|
||||||
// } else {
|
// } else {
|
||||||
// gh60_fn_led_off();
|
// gh60_fn_led_off();
|
||||||
// }
|
// }
|
||||||
|
|
||||||
led_set_user(usb_led);
|
led_set_user(usb_led);
|
||||||
}
|
}
|
||||||
|
@ -1,74 +1,74 @@
|
|||||||
#ifndef GH60_H
|
#ifndef GH60_H
|
||||||
#define GH60_H
|
#define GH60_H
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
#include "led.h"
|
#include "led.h"
|
||||||
|
|
||||||
/* GH60 LEDs
|
/* GH60 LEDs
|
||||||
* GPIO pads
|
* GPIO pads
|
||||||
* 0 F7 WASD LEDs
|
* 0 F7 WASD LEDs
|
||||||
* 1 F6 ESC LED
|
* 1 F6 ESC LED
|
||||||
* 2 F5 FN LED
|
* 2 F5 FN LED
|
||||||
* 3 F4 POKER Arrow LEDs
|
* 3 F4 POKER Arrow LEDs
|
||||||
* B2 Capslock LED
|
* B2 Capslock LED
|
||||||
* B0 not connected
|
* B0 not connected
|
||||||
*/
|
*/
|
||||||
inline void gh60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
|
inline void gh60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
|
||||||
inline void gh60_poker_leds_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); }
|
inline void gh60_poker_leds_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); }
|
||||||
inline void gh60_fn_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); }
|
inline void gh60_fn_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); }
|
||||||
inline void gh60_esc_led_on(void) { DDRF |= (1<<6); PORTF &= ~(1<<6); }
|
inline void gh60_esc_led_on(void) { DDRF |= (1<<6); PORTF &= ~(1<<6); }
|
||||||
inline void gh60_wasd_leds_on(void) { DDRF |= (1<<7); PORTF &= ~(1<<7); }
|
inline void gh60_wasd_leds_on(void) { DDRF |= (1<<7); PORTF &= ~(1<<7); }
|
||||||
|
|
||||||
inline void gh60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
|
inline void gh60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
|
||||||
inline void gh60_poker_leds_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
|
inline void gh60_poker_leds_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
|
||||||
inline void gh60_fn_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); }
|
inline void gh60_fn_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); }
|
||||||
inline void gh60_esc_led_off(void) { DDRF &= ~(1<<6); PORTF &= ~(1<<6); }
|
inline void gh60_esc_led_off(void) { DDRF &= ~(1<<6); PORTF &= ~(1<<6); }
|
||||||
inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); }
|
inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); }
|
||||||
|
|
||||||
/* GH60 keymap definition macro
|
/* GH60 keymap definition macro
|
||||||
* K2C, K31 and K3C are extra keys for ISO
|
* K2C, K31 and K3C are extra keys for ISO
|
||||||
*/
|
*/
|
||||||
#define KEYMAP( \
|
#define KEYMAP( \
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||||
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
|
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
|
||||||
) { \
|
) { \
|
||||||
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \
|
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \
|
||||||
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \
|
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \
|
||||||
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D }, \
|
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D }, \
|
||||||
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D }, \
|
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D }, \
|
||||||
{ KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \
|
{ KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ANSI valiant. No extra keys for ISO */
|
/* ANSI valiant. No extra keys for ISO */
|
||||||
#define KEYMAP_ANSI( \
|
#define KEYMAP_ANSI( \
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
||||||
K40, K41, K42, K45, K4A, K4B, K4C, K4D \
|
K40, K41, K42, K45, K4A, K4B, K4C, K4D \
|
||||||
) KEYMAP( \
|
) KEYMAP( \
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
|
||||||
K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, NO, K3D, \
|
K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, NO, K3D, \
|
||||||
K40, K41, K42, K45, NO, K4A, K4B, K4C, K4D \
|
K40, K41, K42, K45, NO, K4A, K4B, K4C, K4D \
|
||||||
)
|
)
|
||||||
|
|
||||||
#define KEYMAP_HHKB( \
|
#define KEYMAP_HHKB( \
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \
|
||||||
K40, K41, K42, K45, K4A, K4B, K4C, K4D \
|
K40, K41, K42, K45, K4A, K4B, K4C, K4D \
|
||||||
) KEYMAP( \
|
) KEYMAP( \
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
|
||||||
K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||||
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
|
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
|
||||||
)
|
)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,112 +1,112 @@
|
|||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# On command line:
|
# On command line:
|
||||||
#
|
#
|
||||||
# make all = Make software.
|
# make all = Make software.
|
||||||
#
|
#
|
||||||
# make clean = Clean out built project files.
|
# make clean = Clean out built project files.
|
||||||
#
|
#
|
||||||
# make coff = Convert ELF to AVR COFF.
|
# make coff = Convert ELF to AVR COFF.
|
||||||
#
|
#
|
||||||
# make extcoff = Convert ELF to AVR Extended COFF.
|
# make extcoff = Convert ELF to AVR Extended COFF.
|
||||||
#
|
#
|
||||||
# make program = Download the hex file to the device.
|
# make program = Download the hex file to the device.
|
||||||
# Please customize your programmer settings(PROGRAM_CMD)
|
# Please customize your programmer settings(PROGRAM_CMD)
|
||||||
#
|
#
|
||||||
# make teensy = Download the hex file to the device, using teensy_loader_cli.
|
# make teensy = Download the hex file to the device, using teensy_loader_cli.
|
||||||
# (must have teensy_loader_cli installed).
|
# (must have teensy_loader_cli installed).
|
||||||
#
|
#
|
||||||
# make dfu = Download the hex file to the device, using dfu-programmer (must
|
# make dfu = Download the hex file to the device, using dfu-programmer (must
|
||||||
# have dfu-programmer installed).
|
# have dfu-programmer installed).
|
||||||
#
|
#
|
||||||
# make flip = Download the hex file to the device, using Atmel FLIP (must
|
# make flip = Download the hex file to the device, using Atmel FLIP (must
|
||||||
# have Atmel FLIP installed).
|
# have Atmel FLIP installed).
|
||||||
#
|
#
|
||||||
# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
|
# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
|
||||||
# (must have dfu-programmer installed).
|
# (must have dfu-programmer installed).
|
||||||
#
|
#
|
||||||
# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
|
# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
|
||||||
# (must have Atmel FLIP installed).
|
# (must have Atmel FLIP 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.
|
# with avr-gdb or avr-insight as the front end for debugging.
|
||||||
#
|
#
|
||||||
# make filename.s = Just compile filename.c into the assembler code only.
|
# make filename.s = Just compile filename.c into the assembler code only.
|
||||||
#
|
#
|
||||||
# make filename.i = Create a preprocessed source file for use in submitting
|
# make filename.i = Create a preprocessed source file for use in submitting
|
||||||
# bug reports to the GCC project.
|
# bug reports to the GCC project.
|
||||||
#
|
#
|
||||||
# To rebuild project do "make clean" then "make all".
|
# To rebuild project do "make clean" then "make all".
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
# MCU name
|
# MCU name
|
||||||
#MCU = at90usb1287
|
#MCU = at90usb1287
|
||||||
MCU = atmega32u4
|
MCU = atmega32u4
|
||||||
|
|
||||||
# Processor frequency.
|
# Processor frequency.
|
||||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
# 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
|
# 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
|
# 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.
|
# automatically to create a 32-bit value in your source code.
|
||||||
#
|
#
|
||||||
# This will be an integer division of F_USB below, as it is sourced by
|
# This will be an integer division of F_USB below, as it is sourced by
|
||||||
# F_USB after it has run through any CPU prescalers. Note that this value
|
# F_USB after it has run through any CPU prescalers. Note that this value
|
||||||
# does not *change* the processor frequency - it should merely be updated to
|
# does not *change* the processor frequency - it should merely be updated to
|
||||||
# reflect the processor speed set externally so that the code can use accurate
|
# reflect the processor speed set externally so that the code can use accurate
|
||||||
# software delays.
|
# software delays.
|
||||||
F_CPU = 16000000
|
F_CPU = 16000000
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# LUFA specific
|
# LUFA specific
|
||||||
#
|
#
|
||||||
# Target architecture (see library "Board Types" documentation).
|
# Target architecture (see library "Board Types" documentation).
|
||||||
ARCH = AVR8
|
ARCH = AVR8
|
||||||
|
|
||||||
# Input clock frequency.
|
# Input clock frequency.
|
||||||
# This will define a symbol, F_USB, in all source code files equal to the
|
# This will define a symbol, F_USB, in all source code files equal to the
|
||||||
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
# 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
|
# 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
|
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
||||||
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
||||||
# at the end, this will be done automatically to create a 32-bit value in your
|
# at the end, this will be done automatically to create a 32-bit value in your
|
||||||
# source code.
|
# source code.
|
||||||
#
|
#
|
||||||
# If no clock division is performed on the input clock inside the AVR (via the
|
# If no clock division is performed on the input clock inside the AVR (via the
|
||||||
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||||
F_USB = $(F_CPU)
|
F_USB = $(F_CPU)
|
||||||
|
|
||||||
# Interrupt driven control endpoint task(+60)
|
# Interrupt driven control endpoint task(+60)
|
||||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
# Boot Section Size in *bytes*
|
||||||
# Teensy halfKay 512
|
# Teensy halfKay 512
|
||||||
# Teensy++ halfKay 1024
|
# Teensy++ halfKay 1024
|
||||||
# Atmel DFU loader 4096
|
# Atmel DFU loader 4096
|
||||||
# LUFA bootloader 4096
|
# LUFA bootloader 4096
|
||||||
# USBaspLoader 2048
|
# USBaspLoader 2048
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
# Build Options
|
||||||
# comment out to disable the options.
|
# comment out to disable the options.
|
||||||
#
|
#
|
||||||
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
# CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
# CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||||
# COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
# COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
|
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
||||||
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
||||||
# MIDI_ENABLE ?= YES # MIDI controls
|
# MIDI_ENABLE ?= YES # MIDI controls
|
||||||
# UNICODE_ENABLE ?= YES # Unicode
|
# UNICODE_ENABLE ?= YES # Unicode
|
||||||
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
|
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
RGBLIGHT_ENABLE ?= yes # Enable RGB Underglow
|
RGBLIGHT_ENABLE ?= yes # Enable RGB Underglow
|
||||||
|
|
||||||
ifndef QUANTUM_DIR
|
ifndef QUANTUM_DIR
|
||||||
include ../../../../Makefile
|
include ../../../../Makefile
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -1,190 +1,190 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CONFIG_H
|
#ifndef CONFIG_H
|
||||||
#define CONFIG_H
|
#define CONFIG_H
|
||||||
|
|
||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0xFEED
|
||||||
#define PRODUCT_ID 0x6060
|
#define PRODUCT_ID 0x6060
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER geekhack
|
#define MANUFACTURER geekhack
|
||||||
#define PRODUCT GH60
|
#define PRODUCT GH60
|
||||||
#define DESCRIPTION t.m.k. keyboard firmware for GH60
|
#define DESCRIPTION t.m.k. keyboard firmware for GH60
|
||||||
|
|
||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
#define MATRIX_ROWS 5
|
#define MATRIX_ROWS 5
|
||||||
#define MATRIX_COLS 14
|
#define MATRIX_COLS 14
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Keyboard Matrix Assignments
|
* Keyboard Matrix Assignments
|
||||||
*
|
*
|
||||||
* Change this to how you wired your keyboard
|
* Change this to how you wired your keyboard
|
||||||
* COLS: AVR pins used for columns, left to right
|
* COLS: AVR pins used for columns, left to right
|
||||||
* ROWS: AVR pins used for rows, top to bottom
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
|
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
|
||||||
// Rev A
|
// Rev A
|
||||||
// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 }
|
// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 }
|
||||||
// Rev B/C
|
// Rev B/C
|
||||||
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
|
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
|
||||||
#define UNUSED_PINS
|
#define UNUSED_PINS
|
||||||
|
|
||||||
/* COL2ROW or ROW2COL */
|
/* COL2ROW or ROW2COL */
|
||||||
#define DIODE_DIRECTION COL2ROW
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
#define DEBOUNCING_DELAY 5
|
#define DEBOUNCING_DELAY 5
|
||||||
|
|
||||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||||
//#define MATRIX_HAS_GHOST
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
/* number of backlight levels */
|
/* number of backlight levels */
|
||||||
#define BACKLIGHT_LEVELS 3
|
#define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
#define LOCKING_SUPPORT_ENABLE
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
/* Locking resynchronize hack */
|
/* Locking resynchronize hack */
|
||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Force NKRO
|
* Force NKRO
|
||||||
*
|
*
|
||||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||||
* makefile for this to work.)
|
* makefile for this to work.)
|
||||||
*
|
*
|
||||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||||
* until the next keyboard reset.
|
* until the next keyboard reset.
|
||||||
*
|
*
|
||||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||||
* fully operational during normal computer usage.
|
* fully operational during normal computer usage.
|
||||||
*
|
*
|
||||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||||
* power-up.
|
* power-up.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//#define FORCE_NKRO
|
//#define FORCE_NKRO
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Magic Key Options
|
* Magic Key Options
|
||||||
*
|
*
|
||||||
* Magic keys are hotkey commands that allow control over firmware functions of
|
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||||
* the keyboard. They are best used in combination with the HID Listen program,
|
* the keyboard. They are best used in combination with the HID Listen program,
|
||||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||||
*
|
*
|
||||||
* The options below allow the magic key functionality to be changed. This is
|
* The options below allow the magic key functionality to be changed. This is
|
||||||
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* key combination for magic key command */
|
/* key combination for magic key command */
|
||||||
#define IS_COMMAND() ( \
|
#define IS_COMMAND() ( \
|
||||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* control how magic key switches layers */
|
/* control how magic key switches layers */
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||||
|
|
||||||
/* override magic key keymap */
|
/* override magic key keymap */
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||||
//#define MAGIC_KEY_HELP1 H
|
//#define MAGIC_KEY_HELP1 H
|
||||||
//#define MAGIC_KEY_HELP2 SLASH
|
//#define MAGIC_KEY_HELP2 SLASH
|
||||||
//#define MAGIC_KEY_DEBUG D
|
//#define MAGIC_KEY_DEBUG D
|
||||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||||
//#define MAGIC_KEY_DEBUG_KBD K
|
//#define MAGIC_KEY_DEBUG_KBD K
|
||||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||||
//#define MAGIC_KEY_VERSION V
|
//#define MAGIC_KEY_VERSION V
|
||||||
//#define MAGIC_KEY_STATUS S
|
//#define MAGIC_KEY_STATUS S
|
||||||
//#define MAGIC_KEY_CONSOLE C
|
//#define MAGIC_KEY_CONSOLE C
|
||||||
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
||||||
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
||||||
//#define MAGIC_KEY_LAYER0 0
|
//#define MAGIC_KEY_LAYER0 0
|
||||||
//#define MAGIC_KEY_LAYER1 1
|
//#define MAGIC_KEY_LAYER1 1
|
||||||
//#define MAGIC_KEY_LAYER2 2
|
//#define MAGIC_KEY_LAYER2 2
|
||||||
//#define MAGIC_KEY_LAYER3 3
|
//#define MAGIC_KEY_LAYER3 3
|
||||||
//#define MAGIC_KEY_LAYER4 4
|
//#define MAGIC_KEY_LAYER4 4
|
||||||
//#define MAGIC_KEY_LAYER5 5
|
//#define MAGIC_KEY_LAYER5 5
|
||||||
//#define MAGIC_KEY_LAYER6 6
|
//#define MAGIC_KEY_LAYER6 6
|
||||||
//#define MAGIC_KEY_LAYER7 7
|
//#define MAGIC_KEY_LAYER7 7
|
||||||
//#define MAGIC_KEY_LAYER8 8
|
//#define MAGIC_KEY_LAYER8 8
|
||||||
//#define MAGIC_KEY_LAYER9 9
|
//#define MAGIC_KEY_LAYER9 9
|
||||||
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
||||||
//#define MAGIC_KEY_LOCK CAPS
|
//#define MAGIC_KEY_LOCK CAPS
|
||||||
//#define MAGIC_KEY_EEPROM E
|
//#define MAGIC_KEY_EEPROM E
|
||||||
//#define MAGIC_KEY_NKRO N
|
//#define MAGIC_KEY_NKRO N
|
||||||
//#define MAGIC_KEY_SLEEP_LED Z
|
//#define MAGIC_KEY_SLEEP_LED Z
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature disable options
|
* Feature disable options
|
||||||
* These options are also useful to firmware size reduction.
|
* These options are also useful to firmware size reduction.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* disable debug print */
|
/* disable debug print */
|
||||||
//#define NO_DEBUG
|
//#define NO_DEBUG
|
||||||
|
|
||||||
/* disable print */
|
/* disable print */
|
||||||
//#define NO_PRINT
|
//#define NO_PRINT
|
||||||
|
|
||||||
/* disable action features */
|
/* disable action features */
|
||||||
//#define NO_ACTION_LAYER
|
//#define NO_ACTION_LAYER
|
||||||
//#define NO_ACTION_TAPPING
|
//#define NO_ACTION_TAPPING
|
||||||
//#define NO_ACTION_ONESHOT
|
//#define NO_ACTION_ONESHOT
|
||||||
//#define NO_ACTION_MACRO
|
//#define NO_ACTION_MACRO
|
||||||
//#define NO_ACTION_FUNCTION
|
//#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* RGB Underglow
|
* RGB Underglow
|
||||||
* These settings are for the F4 by default:
|
* These settings are for the F4 by default:
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* #define ws2812_PORTREG PORTF
|
* #define ws2812_PORTREG PORTF
|
||||||
* #define ws2812_DDRREG DDRF
|
* #define ws2812_DDRREG DDRF
|
||||||
* #define ws2812_pin PF4
|
* #define ws2812_pin PF4
|
||||||
* #define RGBLED_NUM 14 // Number of LEDs
|
* #define RGBLED_NUM 14 // Number of LEDs
|
||||||
* #define RGBLIGHT_HUE_STEP 10
|
* #define RGBLIGHT_HUE_STEP 10
|
||||||
* #define RGBLIGHT_SAT_STEP 17
|
* #define RGBLIGHT_SAT_STEP 17
|
||||||
* #define RGBLIGHT_VAL_STEP 17
|
* #define RGBLIGHT_VAL_STEP 17
|
||||||
*
|
*
|
||||||
* The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects.
|
* The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects.
|
||||||
* To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations.
|
* To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations.
|
||||||
* For details, please check this keymap. keyboard/planck/keymaps/yang/keymap.c
|
* For details, please check this keymap. keyboard/planck/keymaps/yang/keymap.c
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Deprecated code below
|
/* Deprecated code below
|
||||||
#define ws2812_PORTREG PORTF
|
#define ws2812_PORTREG PORTF
|
||||||
#define ws2812_DDRREG DDRF
|
#define ws2812_DDRREG DDRF
|
||||||
#define ws2812_pin PF4
|
#define ws2812_pin PF4
|
||||||
*/
|
*/
|
||||||
#define RGB_DI_PIN F4
|
#define RGB_DI_PIN F4
|
||||||
#define RGBLIGHT_TIMER
|
#define RGBLIGHT_TIMER
|
||||||
#define RGBLED_NUM 8 // Number of LEDs
|
#define RGBLED_NUM 8 // Number of LEDs
|
||||||
#define RGBLIGHT_HUE_STEP 8
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
#define RGBLIGHT_SAT_STEP 8
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
#define RGBLIGHT_VAL_STEP 8
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
/* Column pin configuration
|
/* Column pin configuration
|
||||||
* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
|
* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
|
||||||
* pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C)
|
* pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Row pin configuration
|
/* Row pin configuration
|
||||||
* row: 0 1 2 3 4
|
* row: 0 1 2 3 4
|
||||||
* pin: D0 D1 D2 D3 D5
|
* pin: D0 D1 D2 D3 D5
|
||||||
*/
|
*/
|
||||||
|
|
||||||
GPIO pads
|
GPIO pads
|
||||||
0 F7 WASD LEDs
|
0 F7 WASD LEDs
|
||||||
1 F6 ESC LED
|
1 F6 ESC LED
|
||||||
2 F5 FN LED
|
2 F5 FN LED
|
||||||
3 F4 POKER Arrow LEDs
|
3 F4 POKER Arrow LEDs
|
||||||
|
|
||||||
B2 Capslock LED
|
B2 Capslock LED
|
||||||
B0 not connected
|
B0 not connected
|
@ -1,62 +1,62 @@
|
|||||||
## gh60 Rev C keyboard firmware
|
## gh60 Rev C keyboard firmware
|
||||||
|
|
||||||
![gh60 Rev C PCB](gh60revc.jpg)
|
![gh60 Rev C PCB](gh60revc.jpg)
|
||||||
|
|
||||||
/* Column pin configuration
|
/* Column pin configuration
|
||||||
* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
|
* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
|
||||||
* pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C)
|
* pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Row pin configuration
|
/* Row pin configuration
|
||||||
* row: 0 1 2 3 4
|
* row: 0 1 2 3 4
|
||||||
* pin: D0 D1 D2 D3 D5
|
* pin: D0 D1 D2 D3 D5
|
||||||
*/
|
*/
|
||||||
|
|
||||||
GPIO pads
|
GPIO pads
|
||||||
0 F7 WASD LEDs
|
0 F7 WASD LEDs
|
||||||
1 F6 ESC LED
|
1 F6 ESC LED
|
||||||
2 F5 FN LED
|
2 F5 FN LED
|
||||||
3 F4 POKER Arrow LEDs
|
3 F4 POKER Arrow LEDs
|
||||||
|
|
||||||
B2 Capslock LED
|
B2 Capslock LED
|
||||||
B0 not connected
|
B0 not connected
|
||||||
|
|
||||||
Functions to controls LED clusters
|
Functions to controls LED clusters
|
||||||
|
|
||||||
gh60_caps_led_on()
|
gh60_caps_led_on()
|
||||||
gh60_poker_leds_on()
|
gh60_poker_leds_on()
|
||||||
gh60_fn_led_on()
|
gh60_fn_led_on()
|
||||||
gh60_esc_led_on()
|
gh60_esc_led_on()
|
||||||
gh60_wasd_leds_on()
|
gh60_wasd_leds_on()
|
||||||
|
|
||||||
gh60_caps_led_off()
|
gh60_caps_led_off()
|
||||||
gh60_poker_leds_off()
|
gh60_poker_leds_off()
|
||||||
gh60_fn_led_off()
|
gh60_fn_led_off()
|
||||||
gh60_esc_led_off()
|
gh60_esc_led_off()
|
||||||
gh60_wasd_leds_off()
|
gh60_wasd_leds_off()
|
||||||
|
|
||||||
======================
|
======================
|
||||||
|
|
||||||
## Quantum MK Firmware
|
## Quantum MK Firmware
|
||||||
|
|
||||||
For the full Quantum feature list, see [the parent readme.md](/readme.md).
|
For the full Quantum feature list, see [the parent readme.md](/readme.md).
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
Download or clone the whole firmware and navigate to the keyboards/gh60_rev_c folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
|
Download or clone the whole firmware and navigate to the keyboards/gh60_rev_c folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
|
||||||
|
|
||||||
Depending on which keymap you would like to use, you will have to compile slightly differently.
|
Depending on which keymap you would like to use, you will have to compile slightly differently.
|
||||||
|
|
||||||
### Default
|
### Default
|
||||||
To build with the default keymap, simply run `make default`.
|
To build with the default keymap, simply run `make default`.
|
||||||
|
|
||||||
### Other Keymaps
|
### Other Keymaps
|
||||||
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files.
|
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files.
|
||||||
|
|
||||||
To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
|
To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ make [default|jack|<name>]
|
$ make [default|jack|<name>]
|
||||||
```
|
```
|
||||||
|
|
||||||
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
|
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,353 +1,353 @@
|
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file templates/halconf.h
|
* @file templates/halconf.h
|
||||||
* @brief HAL configuration header.
|
* @brief HAL configuration header.
|
||||||
* @details HAL configuration file, this file allows to enable or disable the
|
* @details HAL configuration file, this file allows to enable or disable the
|
||||||
* various device drivers from your application. You may also use
|
* various device drivers from your application. You may also use
|
||||||
* this file in order to override the device drivers default settings.
|
* this file in order to override the device drivers default settings.
|
||||||
*
|
*
|
||||||
* @addtogroup HAL_CONF
|
* @addtogroup HAL_CONF
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _HALCONF_H_
|
#ifndef _HALCONF_H_
|
||||||
#define _HALCONF_H_
|
#define _HALCONF_H_
|
||||||
|
|
||||||
#include "mcuconf.h"
|
#include "mcuconf.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the PAL subsystem.
|
* @brief Enables the PAL subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_PAL TRUE
|
#define HAL_USE_PAL TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the ADC subsystem.
|
* @brief Enables the ADC subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_ADC FALSE
|
#define HAL_USE_ADC FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the CAN subsystem.
|
* @brief Enables the CAN subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_CAN FALSE
|
#define HAL_USE_CAN FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the DAC subsystem.
|
* @brief Enables the DAC subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_DAC FALSE
|
#define HAL_USE_DAC FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the EXT subsystem.
|
* @brief Enables the EXT subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_EXT FALSE
|
#define HAL_USE_EXT FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the GPT subsystem.
|
* @brief Enables the GPT subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_GPT FALSE
|
#define HAL_USE_GPT FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the I2C subsystem.
|
* @brief Enables the I2C subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_I2C FALSE
|
#define HAL_USE_I2C FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the I2S subsystem.
|
* @brief Enables the I2S subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_I2S FALSE
|
#define HAL_USE_I2S FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the ICU subsystem.
|
* @brief Enables the ICU subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_ICU FALSE
|
#define HAL_USE_ICU FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the MAC subsystem.
|
* @brief Enables the MAC subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_MAC FALSE
|
#define HAL_USE_MAC FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the MMC_SPI subsystem.
|
* @brief Enables the MMC_SPI subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_MMC_SPI FALSE
|
#define HAL_USE_MMC_SPI FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the PWM subsystem.
|
* @brief Enables the PWM subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_PWM FALSE
|
#define HAL_USE_PWM FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the RTC subsystem.
|
* @brief Enables the RTC subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_RTC FALSE
|
#define HAL_USE_RTC FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SDC subsystem.
|
* @brief Enables the SDC subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_SDC FALSE
|
#define HAL_USE_SDC FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SERIAL subsystem.
|
* @brief Enables the SERIAL subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_SERIAL FALSE
|
#define HAL_USE_SERIAL FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SERIAL over USB subsystem.
|
* @brief Enables the SERIAL over USB subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_SERIAL_USB TRUE
|
#define HAL_USE_SERIAL_USB TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SPI subsystem.
|
* @brief Enables the SPI subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_SPI FALSE
|
#define HAL_USE_SPI FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the UART subsystem.
|
* @brief Enables the UART subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_UART FALSE
|
#define HAL_USE_UART FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the USB subsystem.
|
* @brief Enables the USB subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_USB TRUE
|
#define HAL_USE_USB TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the WDG subsystem.
|
* @brief Enables the WDG subsystem.
|
||||||
*/
|
*/
|
||||||
#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
|
#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
|
||||||
#define HAL_USE_WDG FALSE
|
#define HAL_USE_WDG FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* ADC driver related settings. */
|
/* ADC driver related settings. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables synchronous APIs.
|
* @brief Enables synchronous APIs.
|
||||||
* @note Disabling this option saves both code and data space.
|
* @note Disabling this option saves both code and data space.
|
||||||
*/
|
*/
|
||||||
#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
|
#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
|
||||||
#define ADC_USE_WAIT TRUE
|
#define ADC_USE_WAIT TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs.
|
* @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs.
|
||||||
* @note Disabling this option saves both code and data space.
|
* @note Disabling this option saves both code and data space.
|
||||||
*/
|
*/
|
||||||
#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
|
#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
|
||||||
#define ADC_USE_MUTUAL_EXCLUSION TRUE
|
#define ADC_USE_MUTUAL_EXCLUSION TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* CAN driver related settings. */
|
/* CAN driver related settings. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Sleep mode related APIs inclusion switch.
|
* @brief Sleep mode related APIs inclusion switch.
|
||||||
*/
|
*/
|
||||||
#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
|
#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
|
||||||
#define CAN_USE_SLEEP_MODE TRUE
|
#define CAN_USE_SLEEP_MODE TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* I2C driver related settings. */
|
/* I2C driver related settings. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the mutual exclusion APIs on the I2C bus.
|
* @brief Enables the mutual exclusion APIs on the I2C bus.
|
||||||
*/
|
*/
|
||||||
#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
|
#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
|
||||||
#define I2C_USE_MUTUAL_EXCLUSION TRUE
|
#define I2C_USE_MUTUAL_EXCLUSION TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* MAC driver related settings. */
|
/* MAC driver related settings. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables an event sources for incoming packets.
|
* @brief Enables an event sources for incoming packets.
|
||||||
*/
|
*/
|
||||||
#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
|
#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
|
||||||
#define MAC_USE_ZERO_COPY FALSE
|
#define MAC_USE_ZERO_COPY FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables an event sources for incoming packets.
|
* @brief Enables an event sources for incoming packets.
|
||||||
*/
|
*/
|
||||||
#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
|
#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
|
||||||
#define MAC_USE_EVENTS TRUE
|
#define MAC_USE_EVENTS TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* MMC_SPI driver related settings. */
|
/* MMC_SPI driver related settings. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Delays insertions.
|
* @brief Delays insertions.
|
||||||
* @details If enabled this options inserts delays into the MMC waiting
|
* @details If enabled this options inserts delays into the MMC waiting
|
||||||
* routines releasing some extra CPU time for the threads with
|
* routines releasing some extra CPU time for the threads with
|
||||||
* lower priority, this may slow down the driver a bit however.
|
* lower priority, this may slow down the driver a bit however.
|
||||||
* This option is recommended also if the SPI driver does not
|
* This option is recommended also if the SPI driver does not
|
||||||
* use a DMA channel and heavily loads the CPU.
|
* use a DMA channel and heavily loads the CPU.
|
||||||
*/
|
*/
|
||||||
#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
|
#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
|
||||||
#define MMC_NICE_WAITING TRUE
|
#define MMC_NICE_WAITING TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* SDC driver related settings. */
|
/* SDC driver related settings. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Number of initialization attempts before rejecting the card.
|
* @brief Number of initialization attempts before rejecting the card.
|
||||||
* @note Attempts are performed at 10mS intervals.
|
* @note Attempts are performed at 10mS intervals.
|
||||||
*/
|
*/
|
||||||
#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
|
#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
|
||||||
#define SDC_INIT_RETRY 100
|
#define SDC_INIT_RETRY 100
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Include support for MMC cards.
|
* @brief Include support for MMC cards.
|
||||||
* @note MMC support is not yet implemented so this option must be kept
|
* @note MMC support is not yet implemented so this option must be kept
|
||||||
* at @p FALSE.
|
* at @p FALSE.
|
||||||
*/
|
*/
|
||||||
#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
|
#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
|
||||||
#define SDC_MMC_SUPPORT FALSE
|
#define SDC_MMC_SUPPORT FALSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Delays insertions.
|
* @brief Delays insertions.
|
||||||
* @details If enabled this options inserts delays into the MMC waiting
|
* @details If enabled this options inserts delays into the MMC waiting
|
||||||
* routines releasing some extra CPU time for the threads with
|
* routines releasing some extra CPU time for the threads with
|
||||||
* lower priority, this may slow down the driver a bit however.
|
* lower priority, this may slow down the driver a bit however.
|
||||||
*/
|
*/
|
||||||
#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
|
#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
|
||||||
#define SDC_NICE_WAITING TRUE
|
#define SDC_NICE_WAITING TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* SERIAL driver related settings. */
|
/* SERIAL driver related settings. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Default bit rate.
|
* @brief Default bit rate.
|
||||||
* @details Configuration parameter, this is the baud rate selected for the
|
* @details Configuration parameter, this is the baud rate selected for the
|
||||||
* default configuration.
|
* default configuration.
|
||||||
*/
|
*/
|
||||||
#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
|
#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
|
||||||
#define SERIAL_DEFAULT_BITRATE 38400
|
#define SERIAL_DEFAULT_BITRATE 38400
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Serial buffers size.
|
* @brief Serial buffers size.
|
||||||
* @details Configuration parameter, you can change the depth of the queue
|
* @details Configuration parameter, you can change the depth of the queue
|
||||||
* buffers depending on the requirements of your application.
|
* buffers depending on the requirements of your application.
|
||||||
* @note The default is 64 bytes for both the transmission and receive
|
* @note The default is 64 bytes for both the transmission and receive
|
||||||
* buffers.
|
* buffers.
|
||||||
*/
|
*/
|
||||||
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
|
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
|
||||||
#define SERIAL_BUFFERS_SIZE 16
|
#define SERIAL_BUFFERS_SIZE 16
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* SERIAL_USB driver related setting. */
|
/* SERIAL_USB driver related setting. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Serial over USB buffers size.
|
* @brief Serial over USB buffers size.
|
||||||
* @details Configuration parameter, the buffer size must be a multiple of
|
* @details Configuration parameter, the buffer size must be a multiple of
|
||||||
* the USB data endpoint maximum packet size.
|
* the USB data endpoint maximum packet size.
|
||||||
* @note The default is 64 bytes for both the transmission and receive
|
* @note The default is 64 bytes for both the transmission and receive
|
||||||
* buffers.
|
* buffers.
|
||||||
*/
|
*/
|
||||||
#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
|
#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
|
||||||
#define SERIAL_USB_BUFFERS_SIZE 256
|
#define SERIAL_USB_BUFFERS_SIZE 256
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* SPI driver related settings. */
|
/* SPI driver related settings. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables synchronous APIs.
|
* @brief Enables synchronous APIs.
|
||||||
* @note Disabling this option saves both code and data space.
|
* @note Disabling this option saves both code and data space.
|
||||||
*/
|
*/
|
||||||
#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
|
#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
|
||||||
#define SPI_USE_WAIT TRUE
|
#define SPI_USE_WAIT TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
|
* @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
|
||||||
* @note Disabling this option saves both code and data space.
|
* @note Disabling this option saves both code and data space.
|
||||||
*/
|
*/
|
||||||
#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
|
#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
|
||||||
#define SPI_USE_MUTUAL_EXCLUSION TRUE
|
#define SPI_USE_MUTUAL_EXCLUSION TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* USB driver related settings. */
|
/* USB driver related settings. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables synchronous APIs.
|
* @brief Enables synchronous APIs.
|
||||||
* @note Disabling this option saves both code and data space.
|
* @note Disabling this option saves both code and data space.
|
||||||
*/
|
*/
|
||||||
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
|
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
|
||||||
#define USB_USE_WAIT TRUE
|
#define USB_USE_WAIT TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* _HALCONF_H_ */
|
#endif /* _HALCONF_H_ */
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
@ -1,55 +1,55 @@
|
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _MCUCONF_H_
|
#ifndef _MCUCONF_H_
|
||||||
#define _MCUCONF_H_
|
#define _MCUCONF_H_
|
||||||
|
|
||||||
#define K20x_MCUCONF
|
#define K20x_MCUCONF
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAL driver system settings.
|
* HAL driver system settings.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Select the MCU clocking mode below by enabling the appropriate block. */
|
/* Select the MCU clocking mode below by enabling the appropriate block. */
|
||||||
|
|
||||||
#define KINETIS_NO_INIT FALSE
|
#define KINETIS_NO_INIT FALSE
|
||||||
|
|
||||||
/* FEI mode - 48 MHz with internal 32.768 kHz crystal */
|
/* FEI mode - 48 MHz with internal 32.768 kHz crystal */
|
||||||
#define KINETIS_MCG_MODE KINETIS_MCG_MODE_FEI
|
#define KINETIS_MCG_MODE KINETIS_MCG_MODE_FEI
|
||||||
#define KINETIS_MCG_FLL_DMX32 1 /* Fine-tune for 32.768 kHz */
|
#define KINETIS_MCG_FLL_DMX32 1 /* Fine-tune for 32.768 kHz */
|
||||||
#define KINETIS_MCG_FLL_DRS 1 /* 1464x FLL factor */
|
#define KINETIS_MCG_FLL_DRS 1 /* 1464x FLL factor */
|
||||||
#define KINETIS_SYSCLK_FREQUENCY 47972352UL /* 32.768 kHz * 1464 (~48 MHz) */
|
#define KINETIS_SYSCLK_FREQUENCY 47972352UL /* 32.768 kHz * 1464 (~48 MHz) */
|
||||||
#define KINETIS_CLKDIV1_OUTDIV1 1
|
#define KINETIS_CLKDIV1_OUTDIV1 1
|
||||||
#define KINETIS_CLKDIV1_OUTDIV2 1
|
#define KINETIS_CLKDIV1_OUTDIV2 1
|
||||||
#define KINETIS_CLKDIV1_OUTDIV4 2
|
#define KINETIS_CLKDIV1_OUTDIV4 2
|
||||||
#define KINETIS_BUSCLK_FREQUENCY KINETIS_SYSCLK_FREQUENCY
|
#define KINETIS_BUSCLK_FREQUENCY KINETIS_SYSCLK_FREQUENCY
|
||||||
#define KINETIS_FLASHCLK_FREQUENCY KINETIS_SYSCLK_FREQUENCY/2
|
#define KINETIS_FLASHCLK_FREQUENCY KINETIS_SYSCLK_FREQUENCY/2
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SERIAL driver system settings.
|
* SERIAL driver system settings.
|
||||||
*/
|
*/
|
||||||
#define KINETIS_SERIAL_USE_UART0 TRUE
|
#define KINETIS_SERIAL_USE_UART0 TRUE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* USB driver settings
|
* USB driver settings
|
||||||
*/
|
*/
|
||||||
#define KINETIS_USB_USE_USB0 TRUE
|
#define KINETIS_USB_USE_USB0 TRUE
|
||||||
/* Need to redefine this, since the default is for K20x */
|
/* Need to redefine this, since the default is for K20x */
|
||||||
/* This is for Teensy LC; you should comment it out (or change to 5)
|
/* This is for Teensy LC; you should comment it out (or change to 5)
|
||||||
* for Teensy 3.x */
|
* for Teensy 3.x */
|
||||||
#define KINETIS_USB_USB0_IRQ_PRIORITY 2
|
#define KINETIS_USB_USB0_IRQ_PRIORITY 2
|
||||||
|
|
||||||
#endif /* _MCUCONF_H_ */
|
#endif /* _MCUCONF_H_ */
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,111 +1,111 @@
|
|||||||
/*---------------------------------------------------------------------------
|
/*---------------------------------------------------------------------------
|
||||||
Extended itoa, puts and printf (C)ChaN, 2011
|
Extended itoa, puts and printf (C)ChaN, 2011
|
||||||
-----------------------------------------------------------------------------*/
|
-----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#ifndef XPRINTF_H
|
#ifndef XPRINTF_H
|
||||||
#define XPRINTF_H
|
#define XPRINTF_H
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include <avr/pgmspace.h>
|
#include <avr/pgmspace.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern void (*xfunc_out)(uint8_t);
|
extern void (*xfunc_out)(uint8_t);
|
||||||
#define xdev_out(func) xfunc_out = (void(*)(uint8_t))(func)
|
#define xdev_out(func) xfunc_out = (void(*)(uint8_t))(func)
|
||||||
|
|
||||||
/* This is a pointer to user defined output function. It must be initialized
|
/* This is a pointer to user defined output function. It must be initialized
|
||||||
before using this modle.
|
before using this modle.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void xputc(char chr);
|
void xputc(char chr);
|
||||||
|
|
||||||
/* This is a stub function to forward outputs to user defined output function.
|
/* This is a stub function to forward outputs to user defined output function.
|
||||||
All outputs from this module are output via this function.
|
All outputs from this module are output via this function.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------------*/
|
/*-----------------------------------------------------------------------------*/
|
||||||
void xputs(const char *string_p);
|
void xputs(const char *string_p);
|
||||||
|
|
||||||
/* The string placed in the ROM is forwarded to xputc() directly.
|
/* The string placed in the ROM is forwarded to xputc() directly.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------------*/
|
/*-----------------------------------------------------------------------------*/
|
||||||
void xitoa(long value, char radix, char width);
|
void xitoa(long value, char radix, char width);
|
||||||
|
|
||||||
/* Extended itoa().
|
/* Extended itoa().
|
||||||
|
|
||||||
value radix width output
|
value radix width output
|
||||||
100 10 6 " 100"
|
100 10 6 " 100"
|
||||||
100 10 -6 "000100"
|
100 10 -6 "000100"
|
||||||
100 10 0 "100"
|
100 10 0 "100"
|
||||||
4294967295 10 0 "4294967295"
|
4294967295 10 0 "4294967295"
|
||||||
4294967295 -10 0 "-1"
|
4294967295 -10 0 "-1"
|
||||||
655360 16 -8 "000A0000"
|
655360 16 -8 "000A0000"
|
||||||
1024 16 0 "400"
|
1024 16 0 "400"
|
||||||
0x55 2 -8 "01010101"
|
0x55 2 -8 "01010101"
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------------*/
|
/*-----------------------------------------------------------------------------*/
|
||||||
#define xprintf(format, ...) __xprintf(PSTR(format), ##__VA_ARGS__)
|
#define xprintf(format, ...) __xprintf(PSTR(format), ##__VA_ARGS__)
|
||||||
#define xsprintf(str, format, ...) __xsprintf(str, PSTR(format), ##__VA_ARGS__)
|
#define xsprintf(str, format, ...) __xsprintf(str, PSTR(format), ##__VA_ARGS__)
|
||||||
#define xfprintf(func, format, ...) __xfprintf(func, PSTR(format), ##__VA_ARGS__)
|
#define xfprintf(func, format, ...) __xfprintf(func, PSTR(format), ##__VA_ARGS__)
|
||||||
|
|
||||||
void __xprintf(const char *format_p, ...); /* Send formatted string to the registered device */
|
void __xprintf(const char *format_p, ...); /* Send formatted string to the registered device */
|
||||||
void __xsprintf(char*, const char *format_p, ...); /* Put formatted string to the memory */
|
void __xsprintf(char*, const char *format_p, ...); /* Put formatted string to the memory */
|
||||||
void __xfprintf(void(*func)(uint8_t), const char *format_p, ...); /* Send formatted string to the specified device */
|
void __xfprintf(void(*func)(uint8_t), const char *format_p, ...); /* Send formatted string to the specified device */
|
||||||
|
|
||||||
/* Format string is placed in the ROM. The format flags is similar to printf().
|
/* Format string is placed in the ROM. The format flags is similar to printf().
|
||||||
|
|
||||||
%[flag][width][size]type
|
%[flag][width][size]type
|
||||||
|
|
||||||
flag
|
flag
|
||||||
A '0' means filled with '0' when output is shorter than width.
|
A '0' means filled with '0' when output is shorter than width.
|
||||||
' ' is used in default. This is effective only numeral type.
|
' ' is used in default. This is effective only numeral type.
|
||||||
width
|
width
|
||||||
Minimum width in decimal number. This is effective only numeral type.
|
Minimum width in decimal number. This is effective only numeral type.
|
||||||
Default width is zero.
|
Default width is zero.
|
||||||
size
|
size
|
||||||
A 'l' means the argument is long(32bit). Default is short(16bit).
|
A 'l' means the argument is long(32bit). Default is short(16bit).
|
||||||
This is effective only numeral type.
|
This is effective only numeral type.
|
||||||
type
|
type
|
||||||
'c' : Character, argument is the value
|
'c' : Character, argument is the value
|
||||||
's' : String placed on the RAM, argument is the pointer
|
's' : String placed on the RAM, argument is the pointer
|
||||||
'S' : String placed on the ROM, argument is the pointer
|
'S' : String placed on the ROM, argument is the pointer
|
||||||
'd' : Signed decimal, argument is the value
|
'd' : Signed decimal, argument is the value
|
||||||
'u' : Unsigned decimal, argument is the value
|
'u' : Unsigned decimal, argument is the value
|
||||||
'X' : Hexdecimal, argument is the value
|
'X' : Hexdecimal, argument is the value
|
||||||
'b' : Binary, argument is the value
|
'b' : Binary, argument is the value
|
||||||
'%' : '%'
|
'%' : '%'
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------------*/
|
/*-----------------------------------------------------------------------------*/
|
||||||
char xatoi(char **str, long *ret);
|
char xatoi(char **str, long *ret);
|
||||||
|
|
||||||
/* Get value of the numeral string.
|
/* Get value of the numeral string.
|
||||||
|
|
||||||
str
|
str
|
||||||
Pointer to pointer to source string
|
Pointer to pointer to source string
|
||||||
|
|
||||||
"0b11001010" binary
|
"0b11001010" binary
|
||||||
"0377" octal
|
"0377" octal
|
||||||
"0xff800" hexdecimal
|
"0xff800" hexdecimal
|
||||||
"1250000" decimal
|
"1250000" decimal
|
||||||
"-25000" decimal
|
"-25000" decimal
|
||||||
|
|
||||||
ret
|
ret
|
||||||
Pointer to return value
|
Pointer to return value
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1,156 +1,156 @@
|
|||||||
;---------------------------------------------------------------------------;
|
;---------------------------------------------------------------------------;
|
||||||
; Software implemented UART module ;
|
; Software implemented UART module ;
|
||||||
; (C)ChaN, 2005 (http://elm-chan.org/) ;
|
; (C)ChaN, 2005 (http://elm-chan.org/) ;
|
||||||
;---------------------------------------------------------------------------;
|
;---------------------------------------------------------------------------;
|
||||||
; Bit rate settings:
|
; Bit rate settings:
|
||||||
;
|
;
|
||||||
; 1MHz 2MHz 4MHz 6MHz 8MHz 10MHz 12MHz 16MHz 20MHz
|
; 1MHz 2MHz 4MHz 6MHz 8MHz 10MHz 12MHz 16MHz 20MHz
|
||||||
; 2.4kbps 138 - - - - - - - -
|
; 2.4kbps 138 - - - - - - - -
|
||||||
; 4.8kbps 68 138 - - - - - - -
|
; 4.8kbps 68 138 - - - - - - -
|
||||||
; 9.6kbps 33 68 138 208 - - - - -
|
; 9.6kbps 33 68 138 208 - - - - -
|
||||||
; 19.2kbps - 33 68 102 138 173 208 - -
|
; 19.2kbps - 33 68 102 138 173 208 - -
|
||||||
; 38.4kbps - - 33 50 68 85 102 138 172
|
; 38.4kbps - - 33 50 68 85 102 138 172
|
||||||
; 57.6kbps - - 21 33 44 56 68 91 114
|
; 57.6kbps - - 21 33 44 56 68 91 114
|
||||||
; 115.2kbps - - - - 21 27 33 44 56
|
; 115.2kbps - - - - 21 27 33 44 56
|
||||||
|
|
||||||
.nolist
|
.nolist
|
||||||
#include <avr/io.h>
|
#include <avr/io.h>
|
||||||
.list
|
.list
|
||||||
|
|
||||||
#define BPS 102 /* Bit delay. (see above table) */
|
#define BPS 102 /* Bit delay. (see above table) */
|
||||||
#define BIDIR 0 /* 0:Separated Tx/Rx, 1:Shared Tx/Rx */
|
#define BIDIR 0 /* 0:Separated Tx/Rx, 1:Shared Tx/Rx */
|
||||||
|
|
||||||
#define OUT_1 sbi _SFR_IO_ADDR(SUART_OUT_PORT), SUART_OUT_BIT /* Output 1 */
|
#define OUT_1 sbi _SFR_IO_ADDR(SUART_OUT_PORT), SUART_OUT_BIT /* Output 1 */
|
||||||
#define OUT_0 cbi _SFR_IO_ADDR(SUART_OUT_PORT), SUART_OUT_BIT /* Output 0 */
|
#define OUT_0 cbi _SFR_IO_ADDR(SUART_OUT_PORT), SUART_OUT_BIT /* Output 0 */
|
||||||
#define SKIP_IN_1 sbis _SFR_IO_ADDR(SUART_IN_PIN), SUART_IN_BIT /* Skip if 1 */
|
#define SKIP_IN_1 sbis _SFR_IO_ADDR(SUART_IN_PIN), SUART_IN_BIT /* Skip if 1 */
|
||||||
#define SKIP_IN_0 sbic _SFR_IO_ADDR(SUART_IN_PIN), SUART_IN_BIT /* Skip if 0 */
|
#define SKIP_IN_0 sbic _SFR_IO_ADDR(SUART_IN_PIN), SUART_IN_BIT /* Skip if 0 */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef SPM_PAGESIZE
|
#ifdef SPM_PAGESIZE
|
||||||
.macro _LPMI reg
|
.macro _LPMI reg
|
||||||
lpm \reg, Z+
|
lpm \reg, Z+
|
||||||
.endm
|
.endm
|
||||||
.macro _MOVW dh,dl, sh,sl
|
.macro _MOVW dh,dl, sh,sl
|
||||||
movw \dl, \sl
|
movw \dl, \sl
|
||||||
.endm
|
.endm
|
||||||
#else
|
#else
|
||||||
.macro _LPMI reg
|
.macro _LPMI reg
|
||||||
lpm
|
lpm
|
||||||
mov \reg, r0
|
mov \reg, r0
|
||||||
adiw ZL, 1
|
adiw ZL, 1
|
||||||
.endm
|
.endm
|
||||||
.macro _MOVW dh,dl, sh,sl
|
.macro _MOVW dh,dl, sh,sl
|
||||||
mov \dl, \sl
|
mov \dl, \sl
|
||||||
mov \dh, \sh
|
mov \dh, \sh
|
||||||
.endm
|
.endm
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;---------------------------------------------------------------------------;
|
;---------------------------------------------------------------------------;
|
||||||
; Transmit a byte in serial format of N81
|
; Transmit a byte in serial format of N81
|
||||||
;
|
;
|
||||||
;Prototype: void xmit (uint8_t data);
|
;Prototype: void xmit (uint8_t data);
|
||||||
;Size: 16 words
|
;Size: 16 words
|
||||||
|
|
||||||
.global xmit
|
.global xmit
|
||||||
.func xmit
|
.func xmit
|
||||||
xmit:
|
xmit:
|
||||||
#if BIDIR
|
#if BIDIR
|
||||||
ldi r23, BPS-1 ;Pre-idle time for bidirectional data line
|
ldi r23, BPS-1 ;Pre-idle time for bidirectional data line
|
||||||
5: dec r23 ;
|
5: dec r23 ;
|
||||||
brne 5b ;/
|
brne 5b ;/
|
||||||
#endif
|
#endif
|
||||||
in r0, _SFR_IO_ADDR(SREG) ;Save flags
|
in r0, _SFR_IO_ADDR(SREG) ;Save flags
|
||||||
|
|
||||||
com r24 ;C = start bit
|
com r24 ;C = start bit
|
||||||
ldi r25, 10 ;Bit counter
|
ldi r25, 10 ;Bit counter
|
||||||
cli ;Start critical section
|
cli ;Start critical section
|
||||||
|
|
||||||
1: ldi r23, BPS-1 ;----- Bit transferring loop
|
1: ldi r23, BPS-1 ;----- Bit transferring loop
|
||||||
2: dec r23 ;Wait for a bit time
|
2: dec r23 ;Wait for a bit time
|
||||||
brne 2b ;/
|
brne 2b ;/
|
||||||
brcs 3f ;MISO = bit to be sent
|
brcs 3f ;MISO = bit to be sent
|
||||||
OUT_1 ;
|
OUT_1 ;
|
||||||
3: brcc 4f ;
|
3: brcc 4f ;
|
||||||
OUT_0 ;/
|
OUT_0 ;/
|
||||||
4: lsr r24 ;Get next bit into C
|
4: lsr r24 ;Get next bit into C
|
||||||
dec r25 ;All bits sent?
|
dec r25 ;All bits sent?
|
||||||
brne 1b ; no, coutinue
|
brne 1b ; no, coutinue
|
||||||
|
|
||||||
out _SFR_IO_ADDR(SREG), r0 ;End of critical section
|
out _SFR_IO_ADDR(SREG), r0 ;End of critical section
|
||||||
ret
|
ret
|
||||||
.endfunc
|
.endfunc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;---------------------------------------------------------------------------;
|
;---------------------------------------------------------------------------;
|
||||||
; Receive a byte
|
; Receive a byte
|
||||||
;
|
;
|
||||||
;Prototype: uint8_t rcvr (void);
|
;Prototype: uint8_t rcvr (void);
|
||||||
;Size: 19 words
|
;Size: 19 words
|
||||||
|
|
||||||
.global rcvr
|
.global rcvr
|
||||||
.func rcvr
|
.func rcvr
|
||||||
rcvr:
|
rcvr:
|
||||||
in r0, _SFR_IO_ADDR(SREG) ;Save flags
|
in r0, _SFR_IO_ADDR(SREG) ;Save flags
|
||||||
|
|
||||||
ldi r24, 0x80 ;Receiving shift reg
|
ldi r24, 0x80 ;Receiving shift reg
|
||||||
cli ;Start critical section
|
cli ;Start critical section
|
||||||
|
|
||||||
1: SKIP_IN_1 ;Wait for idle
|
1: SKIP_IN_1 ;Wait for idle
|
||||||
rjmp 1b
|
rjmp 1b
|
||||||
2: SKIP_IN_0 ;Wait for start bit
|
2: SKIP_IN_0 ;Wait for start bit
|
||||||
rjmp 2b
|
rjmp 2b
|
||||||
ldi r25, BPS/2 ;Wait for half bit time
|
ldi r25, BPS/2 ;Wait for half bit time
|
||||||
3: dec r25
|
3: dec r25
|
||||||
brne 3b
|
brne 3b
|
||||||
|
|
||||||
4: ldi r25, BPS ;----- Bit receiving loop
|
4: ldi r25, BPS ;----- Bit receiving loop
|
||||||
5: dec r25 ;Wait for a bit time
|
5: dec r25 ;Wait for a bit time
|
||||||
brne 5b ;/
|
brne 5b ;/
|
||||||
lsr r24 ;Next bit
|
lsr r24 ;Next bit
|
||||||
SKIP_IN_0 ;Get a data bit into r24.7
|
SKIP_IN_0 ;Get a data bit into r24.7
|
||||||
ori r24, 0x80
|
ori r24, 0x80
|
||||||
brcc 4b ;All bits received? no, continue
|
brcc 4b ;All bits received? no, continue
|
||||||
|
|
||||||
out _SFR_IO_ADDR(SREG), r0 ;End of critical section
|
out _SFR_IO_ADDR(SREG), r0 ;End of critical section
|
||||||
ret
|
ret
|
||||||
.endfunc
|
.endfunc
|
||||||
|
|
||||||
|
|
||||||
; Not wait for start bit. This should be called after detecting start bit.
|
; Not wait for start bit. This should be called after detecting start bit.
|
||||||
.global recv
|
.global recv
|
||||||
.func recv
|
.func recv
|
||||||
recv:
|
recv:
|
||||||
in r0, _SFR_IO_ADDR(SREG) ;Save flags
|
in r0, _SFR_IO_ADDR(SREG) ;Save flags
|
||||||
|
|
||||||
ldi r24, 0x80 ;Receiving shift reg
|
ldi r24, 0x80 ;Receiving shift reg
|
||||||
cli ;Start critical section
|
cli ;Start critical section
|
||||||
|
|
||||||
;1: SKIP_IN_1 ;Wait for idle
|
;1: SKIP_IN_1 ;Wait for idle
|
||||||
; rjmp 1b
|
; rjmp 1b
|
||||||
;2: SKIP_IN_0 ;Wait for start bit
|
;2: SKIP_IN_0 ;Wait for start bit
|
||||||
; rjmp 2b
|
; rjmp 2b
|
||||||
ldi r25, BPS/2 ;Wait for half bit time
|
ldi r25, BPS/2 ;Wait for half bit time
|
||||||
3: dec r25
|
3: dec r25
|
||||||
brne 3b
|
brne 3b
|
||||||
|
|
||||||
4: ldi r25, BPS ;----- Bit receiving loop
|
4: ldi r25, BPS ;----- Bit receiving loop
|
||||||
5: dec r25 ;Wait for a bit time
|
5: dec r25 ;Wait for a bit time
|
||||||
brne 5b ;/
|
brne 5b ;/
|
||||||
lsr r24 ;Next bit
|
lsr r24 ;Next bit
|
||||||
SKIP_IN_0 ;Get a data bit into r24.7
|
SKIP_IN_0 ;Get a data bit into r24.7
|
||||||
ori r24, 0x80
|
ori r24, 0x80
|
||||||
brcc 4b ;All bits received? no, continue
|
brcc 4b ;All bits received? no, continue
|
||||||
|
|
||||||
ldi r25, BPS/2 ;Wait for half bit time
|
ldi r25, BPS/2 ;Wait for half bit time
|
||||||
6: dec r25
|
6: dec r25
|
||||||
brne 6b
|
brne 6b
|
||||||
7: SKIP_IN_1 ;Wait for stop bit
|
7: SKIP_IN_1 ;Wait for stop bit
|
||||||
rjmp 7b
|
rjmp 7b
|
||||||
|
|
||||||
out _SFR_IO_ADDR(SREG), r0 ;End of critical section
|
out _SFR_IO_ADDR(SREG), r0 ;End of critical section
|
||||||
ret
|
ret
|
||||||
.endfunc
|
.endfunc
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
#ifndef SUART
|
#ifndef SUART
|
||||||
#define SUART
|
#define SUART
|
||||||
|
|
||||||
void xmit(uint8_t);
|
void xmit(uint8_t);
|
||||||
uint8_t rcvr(void);
|
uint8_t rcvr(void);
|
||||||
uint8_t recv(void);
|
uint8_t recv(void);
|
||||||
|
|
||||||
#endif /* SUART */
|
#endif /* SUART */
|
||||||
|
@ -1,159 +1,159 @@
|
|||||||
/* This is from http://www.mtcnet.net/~henryvm/wdt/ */
|
/* This is from http://www.mtcnet.net/~henryvm/wdt/ */
|
||||||
#ifndef _AVR_WD_H_
|
#ifndef _AVR_WD_H_
|
||||||
#define _AVR_WD_H_
|
#define _AVR_WD_H_
|
||||||
|
|
||||||
#include <avr/io.h>
|
#include <avr/io.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Copyright (c) 2009, Curt Van Maanen
|
Copyright (c) 2009, Curt Van Maanen
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software for any
|
Permission to use, copy, modify, and/or distribute this software for any
|
||||||
purpose with or without fee is hereby granted, provided that the above
|
purpose with or without fee is hereby granted, provided that the above
|
||||||
copyright notice and this permission notice appear in all copies.
|
copyright notice and this permission notice appear in all copies.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
include usage-
|
include usage-
|
||||||
#include "wd.h" //if in same directory as project
|
#include "wd.h" //if in same directory as project
|
||||||
#include <avr/wd.h> //if wd.h is in avr directory
|
#include <avr/wd.h> //if wd.h is in avr directory
|
||||||
|
|
||||||
set watchdog modes and prescale
|
set watchdog modes and prescale
|
||||||
|
|
||||||
usage-
|
usage-
|
||||||
WD_SET(mode,[timeout]); //prescale always set
|
WD_SET(mode,[timeout]); //prescale always set
|
||||||
|
|
||||||
modes-
|
modes-
|
||||||
WD_OFF disabled
|
WD_OFF disabled
|
||||||
WD_RST normal reset mode
|
WD_RST normal reset mode
|
||||||
WD_IRQ interrupt only mode (if supported)
|
WD_IRQ interrupt only mode (if supported)
|
||||||
WD_RST_IRQ interrupt+reset mode (if supported)
|
WD_RST_IRQ interrupt+reset mode (if supported)
|
||||||
|
|
||||||
timeout-
|
timeout-
|
||||||
WDTO_15MS default if no timeout provided
|
WDTO_15MS default if no timeout provided
|
||||||
WDTO_30MS
|
WDTO_30MS
|
||||||
WDTO_60MS
|
WDTO_60MS
|
||||||
WDTO_120MS
|
WDTO_120MS
|
||||||
WDTO_250MS
|
WDTO_250MS
|
||||||
WDTO_500MS
|
WDTO_500MS
|
||||||
WDTO_1S
|
WDTO_1S
|
||||||
WDTO_2S
|
WDTO_2S
|
||||||
WDTO_4S (if supported)
|
WDTO_4S (if supported)
|
||||||
WDTO_8S (if supported)
|
WDTO_8S (if supported)
|
||||||
|
|
||||||
examples-
|
examples-
|
||||||
WD_SET(WD_RST,WDTO_1S); //reset mode, 1s timeout
|
WD_SET(WD_RST,WDTO_1S); //reset mode, 1s timeout
|
||||||
WD_SET(WD_OFF); //watchdog disabled (if not fused on)
|
WD_SET(WD_OFF); //watchdog disabled (if not fused on)
|
||||||
WD_SET(WD_RST); //reset mode, 15ms (default timeout)
|
WD_SET(WD_RST); //reset mode, 15ms (default timeout)
|
||||||
WD_SET(WD_IRQ,WDTO_120MS); //interrupt only mode, 120ms timeout
|
WD_SET(WD_IRQ,WDTO_120MS); //interrupt only mode, 120ms timeout
|
||||||
WD_SET(WD_RST_IRQ,WDTO_2S); //interrupt+reset mode, 2S timeout
|
WD_SET(WD_RST_IRQ,WDTO_2S); //interrupt+reset mode, 2S timeout
|
||||||
|
|
||||||
|
|
||||||
for enhanced watchdogs, if the watchdog is not being used WDRF should be
|
for enhanced watchdogs, if the watchdog is not being used WDRF should be
|
||||||
cleared on every power up or reset, along with disabling the watchdog-
|
cleared on every power up or reset, along with disabling the watchdog-
|
||||||
WD_DISABLE(); //clear WDRF, then turn off watchdog
|
WD_DISABLE(); //clear WDRF, then turn off watchdog
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//reset registers to the same name (MCUCSR)
|
//reset registers to the same name (MCUCSR)
|
||||||
#if !defined(MCUCSR)
|
#if !defined(MCUCSR)
|
||||||
#define MCUCSR MCUSR
|
#define MCUCSR MCUSR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//watchdog registers to the same name (WDTCSR)
|
//watchdog registers to the same name (WDTCSR)
|
||||||
#if !defined(WDTCSR)
|
#if !defined(WDTCSR)
|
||||||
#define WDTCSR WDTCR
|
#define WDTCSR WDTCR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//if enhanced watchdog, define irq values, create disable macro
|
//if enhanced watchdog, define irq values, create disable macro
|
||||||
#if defined(WDIF)
|
#if defined(WDIF)
|
||||||
#define WD_IRQ 0xC0
|
#define WD_IRQ 0xC0
|
||||||
#define WD_RST_IRQ 0xC8
|
#define WD_RST_IRQ 0xC8
|
||||||
#define WD_DISABLE() do{ \
|
#define WD_DISABLE() do{ \
|
||||||
MCUCSR &= ~(1<<WDRF); \
|
MCUCSR &= ~(1<<WDRF); \
|
||||||
WD_SET(WD_OFF); \
|
WD_SET(WD_OFF); \
|
||||||
}while(0)
|
}while(0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//all watchdogs
|
//all watchdogs
|
||||||
#define WD_RST 8
|
#define WD_RST 8
|
||||||
#define WD_OFF 0
|
#define WD_OFF 0
|
||||||
|
|
||||||
//prescale values
|
//prescale values
|
||||||
#define WDTO_15MS 0
|
#define WDTO_15MS 0
|
||||||
#define WDTO_30MS 1
|
#define WDTO_30MS 1
|
||||||
#define WDTO_60MS 2
|
#define WDTO_60MS 2
|
||||||
#define WDTO_120MS 3
|
#define WDTO_120MS 3
|
||||||
#define WDTO_250MS 4
|
#define WDTO_250MS 4
|
||||||
#define WDTO_500MS 5
|
#define WDTO_500MS 5
|
||||||
#define WDTO_1S 6
|
#define WDTO_1S 6
|
||||||
#define WDTO_2S 7
|
#define WDTO_2S 7
|
||||||
|
|
||||||
//prescale values for avrs with WDP3
|
//prescale values for avrs with WDP3
|
||||||
#if defined(WDP3)
|
#if defined(WDP3)
|
||||||
#define WDTO_4S 0x20
|
#define WDTO_4S 0x20
|
||||||
#define WDTO_8S 0x21
|
#define WDTO_8S 0x21
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//watchdog reset
|
//watchdog reset
|
||||||
#define WDR() __asm__ __volatile__("wdr")
|
#define WDR() __asm__ __volatile__("wdr")
|
||||||
|
|
||||||
//avr reset using watchdog
|
//avr reset using watchdog
|
||||||
#define WD_AVR_RESET() do{ \
|
#define WD_AVR_RESET() do{ \
|
||||||
__asm__ __volatile__("cli"); \
|
__asm__ __volatile__("cli"); \
|
||||||
WD_SET_UNSAFE(WD_RST); \
|
WD_SET_UNSAFE(WD_RST); \
|
||||||
while(1); \
|
while(1); \
|
||||||
}while(0)
|
}while(0)
|
||||||
|
|
||||||
/*set the watchdog-
|
/*set the watchdog-
|
||||||
1. save SREG
|
1. save SREG
|
||||||
2. turn off irq's
|
2. turn off irq's
|
||||||
3. reset watchdog timer
|
3. reset watchdog timer
|
||||||
4. enable watchdog change
|
4. enable watchdog change
|
||||||
5. write watchdog value
|
5. write watchdog value
|
||||||
6. restore SREG (restoring irq status)
|
6. restore SREG (restoring irq status)
|
||||||
*/
|
*/
|
||||||
#define WD_SET(val,...) \
|
#define WD_SET(val,...) \
|
||||||
__asm__ __volatile__( \
|
__asm__ __volatile__( \
|
||||||
"in __tmp_reg__,__SREG__" "\n\t" \
|
"in __tmp_reg__,__SREG__" "\n\t" \
|
||||||
"cli" "\n\t" \
|
"cli" "\n\t" \
|
||||||
"wdr" "\n\t" \
|
"wdr" "\n\t" \
|
||||||
"sts %[wdreg],%[wden]" "\n\t" \
|
"sts %[wdreg],%[wden]" "\n\t" \
|
||||||
"sts %[wdreg],%[wdval]" "\n\t" \
|
"sts %[wdreg],%[wdval]" "\n\t" \
|
||||||
"out __SREG__,__tmp_reg__" "\n\t" \
|
"out __SREG__,__tmp_reg__" "\n\t" \
|
||||||
: \
|
: \
|
||||||
: [wdreg] "M" (&WDTCSR), \
|
: [wdreg] "M" (&WDTCSR), \
|
||||||
[wden] "r" ((uint8_t)(0x18)), \
|
[wden] "r" ((uint8_t)(0x18)), \
|
||||||
[wdval] "r" ((uint8_t)(val|(__VA_ARGS__+0))) \
|
[wdval] "r" ((uint8_t)(val|(__VA_ARGS__+0))) \
|
||||||
: "r0" \
|
: "r0" \
|
||||||
)
|
)
|
||||||
|
|
||||||
/*set the watchdog when I bit in SREG known to be clear-
|
/*set the watchdog when I bit in SREG known to be clear-
|
||||||
1. reset watchdog timer
|
1. reset watchdog timer
|
||||||
2. enable watchdog change
|
2. enable watchdog change
|
||||||
5. write watchdog value
|
5. write watchdog value
|
||||||
*/
|
*/
|
||||||
#define WD_SET_UNSAFE(val,...) \
|
#define WD_SET_UNSAFE(val,...) \
|
||||||
__asm__ __volatile__( \
|
__asm__ __volatile__( \
|
||||||
"wdr" "\n\t" \
|
"wdr" "\n\t" \
|
||||||
"sts %[wdreg],%[wden]" "\n\t" \
|
"sts %[wdreg],%[wden]" "\n\t" \
|
||||||
"sts %[wdreg],%[wdval]" "\n\t" \
|
"sts %[wdreg],%[wdval]" "\n\t" \
|
||||||
: \
|
: \
|
||||||
: [wdreg] "M" (&WDTCSR), \
|
: [wdreg] "M" (&WDTCSR), \
|
||||||
[wden] "r" ((uint8_t)(0x18)), \
|
[wden] "r" ((uint8_t)(0x18)), \
|
||||||
[wdval] "r" ((uint8_t)(val|(__VA_ARGS__+0))) \
|
[wdval] "r" ((uint8_t)(val|(__VA_ARGS__+0))) \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
//for compatibility with avr/wdt.h
|
//for compatibility with avr/wdt.h
|
||||||
#define wdt_enable(val) WD_SET(WD_RST,val)
|
#define wdt_enable(val) WD_SET(WD_RST,val)
|
||||||
#define wdt_disable() WD_SET(WD_OFF)
|
#define wdt_disable() WD_SET(WD_OFF)
|
||||||
|
|
||||||
|
|
||||||
#endif /* _AVR_WD_H_ */
|
#endif /* _AVR_WD_H_ */
|
||||||
|
@ -1,161 +1,161 @@
|
|||||||
<asf xmlversion="1.0">
|
<asf xmlversion="1.0">
|
||||||
<project caption="CDC Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.128_4" force-caption="true" workspace-name="lufa_cdc_128kb_4kb_">
|
<project caption="CDC Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.128_4" force-caption="true" workspace-name="lufa_cdc_128kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.cdc"/>
|
<require idref="lufa.bootloaders.cdc"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="at90usb1287"/>
|
<device-support value="at90usb1287"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x1F000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x1F000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="CDC Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.64_4" force-caption="true" workspace-name="lufa_cdc_64kb_4kb_">
|
<project caption="CDC Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.64_4" force-caption="true" workspace-name="lufa_cdc_64kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.cdc"/>
|
<require idref="lufa.bootloaders.cdc"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="at90usb647"/>
|
<device-support value="at90usb647"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0xF000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0xF000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="CDC Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.32_4" force-caption="true" workspace-name="lufa_cdc_32kb_4kb_">
|
<project caption="CDC Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.32_4" force-caption="true" workspace-name="lufa_cdc_32kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.cdc"/>
|
<require idref="lufa.bootloaders.cdc"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="atmega32u4"/>
|
<device-support value="atmega32u4"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x7000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x7000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="CDC Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.16_4" force-caption="true" workspace-name="lufa_cdc_16kb_4kb_">
|
<project caption="CDC Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.16_4" force-caption="true" workspace-name="lufa_cdc_16kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.cdc"/>
|
<require idref="lufa.bootloaders.cdc"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="atmega16u2"/>
|
<device-support value="atmega16u2"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x3000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x3000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="CDC Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.8_4" force-caption="true" workspace-name="lufa_cdc_8kb_4kb_">
|
<project caption="CDC Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.8_4" force-caption="true" workspace-name="lufa_cdc_8kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.cdc"/>
|
<require idref="lufa.bootloaders.cdc"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="atmega8u2"/>
|
<device-support value="atmega8u2"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x1000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x1000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<module type="application" id="lufa.bootloaders.cdc" caption="CDC Bootloader">
|
<module type="application" id="lufa.bootloaders.cdc" caption="CDC Bootloader">
|
||||||
<info type="description" value="summary">
|
<info type="description" value="summary">
|
||||||
CDC Class Bootloader, capable of reprogramming a device using avrdude or other AVR109 protocol compliant software when plugged into a host.
|
CDC Class Bootloader, capable of reprogramming a device using avrdude or other AVR109 protocol compliant software when plugged into a host.
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<info type="gui-flag" value="move-to-root"/>
|
<info type="gui-flag" value="move-to-root"/>
|
||||||
|
|
||||||
<info type="keyword" value="Technology">
|
<info type="keyword" value="Technology">
|
||||||
<keyword value="Bootloaders"/>
|
<keyword value="Bootloaders"/>
|
||||||
<keyword value="USB Device"/>
|
<keyword value="USB Device"/>
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<device-support-alias value="lufa_avr8"/>
|
<device-support-alias value="lufa_avr8"/>
|
||||||
<device-support-alias value="lufa_xmega"/>
|
<device-support-alias value="lufa_xmega"/>
|
||||||
<device-support-alias value="lufa_uc3"/>
|
<device-support-alias value="lufa_uc3"/>
|
||||||
|
|
||||||
<build type="include-path" value="."/>
|
<build type="include-path" value="."/>
|
||||||
<build type="c-source" value="BootloaderCDC.c"/>
|
<build type="c-source" value="BootloaderCDC.c"/>
|
||||||
<build type="header-file" value="BootloaderCDC.h"/>
|
<build type="header-file" value="BootloaderCDC.h"/>
|
||||||
<build type="c-source" value="Descriptors.c"/>
|
<build type="c-source" value="Descriptors.c"/>
|
||||||
<build type="header-file" value="Descriptors.h"/>
|
<build type="header-file" value="Descriptors.h"/>
|
||||||
<build type="c-source" value="BootloaderAPI.c"/>
|
<build type="c-source" value="BootloaderAPI.c"/>
|
||||||
<build type="header-file" value="BootloaderAPI.h"/>
|
<build type="header-file" value="BootloaderAPI.h"/>
|
||||||
<build type="asm-source" value="BootloaderAPITable.S"/>
|
<build type="asm-source" value="BootloaderAPITable.S"/>
|
||||||
|
|
||||||
<build type="module-config" subtype="path" value="Config"/>
|
<build type="module-config" subtype="path" value="Config"/>
|
||||||
<build type="header-file" value="Config/LUFAConfig.h"/>
|
<build type="header-file" value="Config/LUFAConfig.h"/>
|
||||||
<build type="header-file" value="Config/AppConfig.h"/>
|
<build type="header-file" value="Config/AppConfig.h"/>
|
||||||
|
|
||||||
<build type="distribute" subtype="user-file" value="doxyfile"/>
|
<build type="distribute" subtype="user-file" value="doxyfile"/>
|
||||||
<build type="distribute" subtype="user-file" value="BootloaderCDC.txt"/>
|
<build type="distribute" subtype="user-file" value="BootloaderCDC.txt"/>
|
||||||
<build type="distribute" subtype="user-file" value="LUFA CDC Bootloader.inf"/>
|
<build type="distribute" subtype="user-file" value="LUFA CDC Bootloader.inf"/>
|
||||||
|
|
||||||
<require idref="lufa.common"/>
|
<require idref="lufa.common"/>
|
||||||
<require idref="lufa.platform"/>
|
<require idref="lufa.platform"/>
|
||||||
<require idref="lufa.drivers.usb"/>
|
<require idref="lufa.drivers.usb"/>
|
||||||
<require idref="lufa.drivers.board"/>
|
<require idref="lufa.drivers.board"/>
|
||||||
<require idref="lufa.drivers.board.leds"/>
|
<require idref="lufa.drivers.board.leds"/>
|
||||||
</module>
|
</module>
|
||||||
</asf>
|
</asf>
|
||||||
|
@ -1,156 +1,156 @@
|
|||||||
<asf xmlversion="1.0">
|
<asf xmlversion="1.0">
|
||||||
<project caption="DFU Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.128_4" force-caption="true" workspace-name="lufa_dfu_128kb_4kb_">
|
<project caption="DFU Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.128_4" force-caption="true" workspace-name="lufa_dfu_128kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.dfu"/>
|
<require idref="lufa.bootloaders.dfu"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="at90usb1287"/>
|
<device-support value="at90usb1287"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x1F000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x1F000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="DFU Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.64_4" force-caption="true" workspace-name="lufa_dfu_64kb_4kb_">
|
<project caption="DFU Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.64_4" force-caption="true" workspace-name="lufa_dfu_64kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.dfu"/>
|
<require idref="lufa.bootloaders.dfu"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="at90usb647"/>
|
<device-support value="at90usb647"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0xF000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0xF000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="DFU Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.32_4" force-caption="true" workspace-name="lufa_dfu_32kb_4kb_">
|
<project caption="DFU Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.32_4" force-caption="true" workspace-name="lufa_dfu_32kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.dfu"/>
|
<require idref="lufa.bootloaders.dfu"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="atmega32u4"/>
|
<device-support value="atmega32u4"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x7000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x7000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="DFU Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.16_4" force-caption="true" workspace-name="lufa_dfu_16kb_4kb_">
|
<project caption="DFU Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.16_4" force-caption="true" workspace-name="lufa_dfu_16kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.dfu"/>
|
<require idref="lufa.bootloaders.dfu"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="atmega16u2"/>
|
<device-support value="atmega16u2"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x3000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x3000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="DFU Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.8_4" force-caption="true" workspace-name="lufa_dfu_8kb_4kb_">
|
<project caption="DFU Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.8_4" force-caption="true" workspace-name="lufa_dfu_8kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.dfu"/>
|
<require idref="lufa.bootloaders.dfu"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="atmega8u2"/>
|
<device-support value="atmega8u2"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x1000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x1000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<module type="application" id="lufa.bootloaders.dfu" caption="DFU Bootloader">
|
<module type="application" id="lufa.bootloaders.dfu" caption="DFU Bootloader">
|
||||||
<info type="description" value="summary">
|
<info type="description" value="summary">
|
||||||
DFU Class Bootloader, capable of reprogramming a device using the Atmel FLIP or other AVR DFU programming software when plugged into a host.
|
DFU Class Bootloader, capable of reprogramming a device using the Atmel FLIP or other AVR DFU programming software when plugged into a host.
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<info type="gui-flag" value="move-to-root"/>
|
<info type="gui-flag" value="move-to-root"/>
|
||||||
|
|
||||||
<info type="keyword" value="Technology">
|
<info type="keyword" value="Technology">
|
||||||
<keyword value="Bootloaders"/>
|
<keyword value="Bootloaders"/>
|
||||||
<keyword value="USB Device"/>
|
<keyword value="USB Device"/>
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<device-support-alias value="lufa_avr8"/>
|
<device-support-alias value="lufa_avr8"/>
|
||||||
<device-support-alias value="lufa_xmega"/>
|
<device-support-alias value="lufa_xmega"/>
|
||||||
<device-support-alias value="lufa_uc3"/>
|
<device-support-alias value="lufa_uc3"/>
|
||||||
|
|
||||||
<build type="include-path" value="."/>
|
<build type="include-path" value="."/>
|
||||||
<build type="c-source" value="BootloaderDFU.c"/>
|
<build type="c-source" value="BootloaderDFU.c"/>
|
||||||
<build type="header-file" value="BootloaderDFU.h"/>
|
<build type="header-file" value="BootloaderDFU.h"/>
|
||||||
<build type="c-source" value="Descriptors.c"/>
|
<build type="c-source" value="Descriptors.c"/>
|
||||||
<build type="header-file" value="Descriptors.h"/>
|
<build type="header-file" value="Descriptors.h"/>
|
||||||
<build type="c-source" value="BootloaderAPI.c"/>
|
<build type="c-source" value="BootloaderAPI.c"/>
|
||||||
<build type="header-file" value="BootloaderAPI.h"/>
|
<build type="header-file" value="BootloaderAPI.h"/>
|
||||||
<build type="asm-source" value="BootloaderAPITable.S"/>
|
<build type="asm-source" value="BootloaderAPITable.S"/>
|
||||||
|
|
||||||
<build type="module-config" subtype="path" value="Config"/>
|
<build type="module-config" subtype="path" value="Config"/>
|
||||||
<build type="header-file" value="Config/LUFAConfig.h"/>
|
<build type="header-file" value="Config/LUFAConfig.h"/>
|
||||||
<build type="header-file" value="Config/AppConfig.h"/>
|
<build type="header-file" value="Config/AppConfig.h"/>
|
||||||
|
|
||||||
<build type="distribute" subtype="user-file" value="doxyfile"/>
|
<build type="distribute" subtype="user-file" value="doxyfile"/>
|
||||||
<build type="distribute" subtype="user-file" value="BootloaderDFU.txt"/>
|
<build type="distribute" subtype="user-file" value="BootloaderDFU.txt"/>
|
||||||
|
|
||||||
<require idref="lufa.common"/>
|
<require idref="lufa.common"/>
|
||||||
<require idref="lufa.platform"/>
|
<require idref="lufa.platform"/>
|
||||||
<require idref="lufa.drivers.usb"/>
|
<require idref="lufa.drivers.usb"/>
|
||||||
<require idref="lufa.drivers.board"/>
|
<require idref="lufa.drivers.board"/>
|
||||||
<require idref="lufa.drivers.board.leds"/>
|
<require idref="lufa.drivers.board.leds"/>
|
||||||
</module>
|
</module>
|
||||||
</asf>
|
</asf>
|
||||||
|
@ -1,123 +1,123 @@
|
|||||||
<asf xmlversion="1.0">
|
<asf xmlversion="1.0">
|
||||||
<project caption="HID Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.128_4" force-caption="true" workspace-name="lufa_hid_128kb_4kb_">
|
<project caption="HID Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.128_4" force-caption="true" workspace-name="lufa_hid_128kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.hid"/>
|
<require idref="lufa.bootloaders.hid"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="at90usb1287"/>
|
<device-support value="at90usb1287"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x1F000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x1F000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="HID Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.64_4" force-caption="true" workspace-name="lufa_hid_64kb_4kb_">
|
<project caption="HID Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.64_4" force-caption="true" workspace-name="lufa_hid_64kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.hid"/>
|
<require idref="lufa.bootloaders.hid"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="at90usb647"/>
|
<device-support value="at90usb647"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0xF000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0xF000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="HID Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.32_4" force-caption="true" workspace-name="lufa_hid_32kb_4kb_">
|
<project caption="HID Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.32_4" force-caption="true" workspace-name="lufa_hid_32kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.hid"/>
|
<require idref="lufa.bootloaders.hid"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="atmega32u4"/>
|
<device-support value="atmega32u4"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x7000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x7000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="HID Bootloader - 16KB FLASH / 2KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.16_2" force-caption="true" workspace-name="lufa_hid_16kb_2kb_">
|
<project caption="HID Bootloader - 16KB FLASH / 2KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.16_2" force-caption="true" workspace-name="lufa_hid_16kb_2kb_">
|
||||||
<require idref="lufa.bootloaders.hid"/>
|
<require idref="lufa.bootloaders.hid"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="atmega16u2"/>
|
<device-support value="atmega16u2"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x3800"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x3800"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x3800"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x3800"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="HID Bootloader - 8KB FLASH / 2KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.8_2" force-caption="true" workspace-name="lufa_hid_8kb_2kb_">
|
<project caption="HID Bootloader - 8KB FLASH / 2KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.8_2" force-caption="true" workspace-name="lufa_hid_8kb_2kb_">
|
||||||
<require idref="lufa.bootloaders.hid"/>
|
<require idref="lufa.bootloaders.hid"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="atmega8u2"/>
|
<device-support value="atmega8u2"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x1800"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x1800"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1800"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1800"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<module type="application" id="lufa.bootloaders.hid" caption="HID Bootloader">
|
<module type="application" id="lufa.bootloaders.hid" caption="HID Bootloader">
|
||||||
<info type="description" value="summary">
|
<info type="description" value="summary">
|
||||||
HID Class Bootloader, capable of reprogramming a device via a custom cross-platform command line utility when plugged into a host.
|
HID Class Bootloader, capable of reprogramming a device via a custom cross-platform command line utility when plugged into a host.
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<info type="gui-flag" value="move-to-root"/>
|
<info type="gui-flag" value="move-to-root"/>
|
||||||
|
|
||||||
<info type="keyword" value="Technology">
|
<info type="keyword" value="Technology">
|
||||||
<keyword value="Bootloaders"/>
|
<keyword value="Bootloaders"/>
|
||||||
<keyword value="USB Device"/>
|
<keyword value="USB Device"/>
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<device-support-alias value="lufa_avr8"/>
|
<device-support-alias value="lufa_avr8"/>
|
||||||
<device-support-alias value="lufa_xmega"/>
|
<device-support-alias value="lufa_xmega"/>
|
||||||
<device-support-alias value="lufa_uc3"/>
|
<device-support-alias value="lufa_uc3"/>
|
||||||
|
|
||||||
<build type="include-path" value="."/>
|
<build type="include-path" value="."/>
|
||||||
<build type="c-source" value="BootloaderHID.c"/>
|
<build type="c-source" value="BootloaderHID.c"/>
|
||||||
<build type="header-file" value="BootloaderHID.h"/>
|
<build type="header-file" value="BootloaderHID.h"/>
|
||||||
<build type="c-source" value="Descriptors.c"/>
|
<build type="c-source" value="Descriptors.c"/>
|
||||||
<build type="header-file" value="Descriptors.h"/>
|
<build type="header-file" value="Descriptors.h"/>
|
||||||
|
|
||||||
<build type="module-config" subtype="path" value="Config"/>
|
<build type="module-config" subtype="path" value="Config"/>
|
||||||
<build type="header-file" value="Config/LUFAConfig.h"/>
|
<build type="header-file" value="Config/LUFAConfig.h"/>
|
||||||
|
|
||||||
<build type="distribute" subtype="user-file" value="doxyfile"/>
|
<build type="distribute" subtype="user-file" value="doxyfile"/>
|
||||||
<build type="distribute" subtype="user-file" value="BootloaderHID.txt"/>
|
<build type="distribute" subtype="user-file" value="BootloaderHID.txt"/>
|
||||||
<build type="distribute" subtype="directory" value="HostLoaderApp"/>
|
<build type="distribute" subtype="directory" value="HostLoaderApp"/>
|
||||||
<build type="distribute" subtype="directory" value="HostLoaderApp_Python"/>
|
<build type="distribute" subtype="directory" value="HostLoaderApp_Python"/>
|
||||||
|
|
||||||
<require idref="lufa.common"/>
|
<require idref="lufa.common"/>
|
||||||
<require idref="lufa.platform"/>
|
<require idref="lufa.platform"/>
|
||||||
<require idref="lufa.drivers.usb"/>
|
<require idref="lufa.drivers.usb"/>
|
||||||
<require idref="lufa.drivers.board"/>
|
<require idref="lufa.drivers.board"/>
|
||||||
<require idref="lufa.drivers.board.leds"/>
|
<require idref="lufa.drivers.board.leds"/>
|
||||||
</module>
|
</module>
|
||||||
</asf>
|
</asf>
|
||||||
|
@ -1,102 +1,102 @@
|
|||||||
/*
|
/*
|
||||||
LUFA Library
|
LUFA Library
|
||||||
Copyright (C) Dean Camera, 2014.
|
Copyright (C) Dean Camera, 2014.
|
||||||
|
|
||||||
dean [at] fourwalledcubicle [dot] com
|
dean [at] fourwalledcubicle [dot] com
|
||||||
www.lufa-lib.org
|
www.lufa-lib.org
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com)
|
Copyright 2014 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
|
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
|
all copies and that both that the copyright notice and this
|
||||||
permission notice and warranty disclaimer appear in supporting
|
permission notice and warranty disclaimer appear in supporting
|
||||||
documentation, and that the name of the author not be used in
|
documentation, and that the name of the author not be used in
|
||||||
advertising or publicity pertaining to distribution of the
|
advertising or publicity pertaining to distribution of the
|
||||||
software without specific, written prior permission.
|
software without specific, written prior permission.
|
||||||
|
|
||||||
The author disclaims all warranties with regard to this
|
The author disclaims all warranties with regard to this
|
||||||
software, including all implied warranties of merchantability
|
software, including all implied warranties of merchantability
|
||||||
and fitness. In no event shall the author be liable for any
|
and fitness. In no event shall the author be liable for any
|
||||||
special, indirect or consequential damages or any damages
|
special, indirect or consequential damages or any damages
|
||||||
whatsoever resulting from loss of use, data or profits, whether
|
whatsoever resulting from loss of use, data or profits, whether
|
||||||
in an action of contract, negligence or other tortious action,
|
in an action of contract, negligence or other tortious action,
|
||||||
arising out of or in connection with the use or performance of
|
arising out of or in connection with the use or performance of
|
||||||
this software.
|
this software.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if AUX_BOOT_SECTION_SIZE > 0
|
#if AUX_BOOT_SECTION_SIZE > 0
|
||||||
#warning Using a AUX bootloader section in addition to the defined bootloader space (see documentation).
|
#warning Using a AUX bootloader section in addition to the defined bootloader space (see documentation).
|
||||||
|
|
||||||
; Trampoline to jump over the AUX bootloader section to the start of the bootloader,
|
; Trampoline to jump over the AUX bootloader section to the start of the bootloader,
|
||||||
; on devices where an AUX bootloader section is used.
|
; on devices where an AUX bootloader section is used.
|
||||||
.section .boot_aux_trampoline, "ax"
|
.section .boot_aux_trampoline, "ax"
|
||||||
.global Boot_AUX_Trampoline
|
.global Boot_AUX_Trampoline
|
||||||
Boot_AUX_Trampoline:
|
Boot_AUX_Trampoline:
|
||||||
jmp BOOT_START_ADDR
|
jmp BOOT_START_ADDR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
; Trampolines to actual API implementations if the target address is outside the
|
; Trampolines to actual API implementations if the target address is outside the
|
||||||
; range of a rjmp instruction (can happen with large bootloader sections)
|
; range of a rjmp instruction (can happen with large bootloader sections)
|
||||||
.section .apitable_trampolines, "ax"
|
.section .apitable_trampolines, "ax"
|
||||||
.global BootloaderAPI_Trampolines
|
.global BootloaderAPI_Trampolines
|
||||||
BootloaderAPI_Trampolines:
|
BootloaderAPI_Trampolines:
|
||||||
|
|
||||||
BootloaderAPI_ErasePage_Trampoline:
|
BootloaderAPI_ErasePage_Trampoline:
|
||||||
jmp BootloaderAPI_ErasePage
|
jmp BootloaderAPI_ErasePage
|
||||||
BootloaderAPI_WritePage_Trampoline:
|
BootloaderAPI_WritePage_Trampoline:
|
||||||
jmp BootloaderAPI_WritePage
|
jmp BootloaderAPI_WritePage
|
||||||
BootloaderAPI_FillWord_Trampoline:
|
BootloaderAPI_FillWord_Trampoline:
|
||||||
jmp BootloaderAPI_FillWord
|
jmp BootloaderAPI_FillWord
|
||||||
BootloaderAPI_ReadSignature_Trampoline:
|
BootloaderAPI_ReadSignature_Trampoline:
|
||||||
jmp BootloaderAPI_ReadSignature
|
jmp BootloaderAPI_ReadSignature
|
||||||
BootloaderAPI_ReadFuse_Trampoline:
|
BootloaderAPI_ReadFuse_Trampoline:
|
||||||
jmp BootloaderAPI_ReadFuse
|
jmp BootloaderAPI_ReadFuse
|
||||||
BootloaderAPI_ReadLock_Trampoline:
|
BootloaderAPI_ReadLock_Trampoline:
|
||||||
jmp BootloaderAPI_ReadLock
|
jmp BootloaderAPI_ReadLock
|
||||||
BootloaderAPI_WriteLock_Trampoline:
|
BootloaderAPI_WriteLock_Trampoline:
|
||||||
jmp BootloaderAPI_WriteLock
|
jmp BootloaderAPI_WriteLock
|
||||||
BootloaderAPI_UNUSED1:
|
BootloaderAPI_UNUSED1:
|
||||||
ret
|
ret
|
||||||
BootloaderAPI_UNUSED2:
|
BootloaderAPI_UNUSED2:
|
||||||
ret
|
ret
|
||||||
BootloaderAPI_UNUSED3:
|
BootloaderAPI_UNUSED3:
|
||||||
ret
|
ret
|
||||||
BootloaderAPI_UNUSED4:
|
BootloaderAPI_UNUSED4:
|
||||||
ret
|
ret
|
||||||
BootloaderAPI_UNUSED5:
|
BootloaderAPI_UNUSED5:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; API function jump table
|
; API function jump table
|
||||||
.section .apitable_jumptable, "ax"
|
.section .apitable_jumptable, "ax"
|
||||||
.global BootloaderAPI_JumpTable
|
.global BootloaderAPI_JumpTable
|
||||||
BootloaderAPI_JumpTable:
|
BootloaderAPI_JumpTable:
|
||||||
|
|
||||||
rjmp BootloaderAPI_ErasePage_Trampoline
|
rjmp BootloaderAPI_ErasePage_Trampoline
|
||||||
rjmp BootloaderAPI_WritePage_Trampoline
|
rjmp BootloaderAPI_WritePage_Trampoline
|
||||||
rjmp BootloaderAPI_FillWord_Trampoline
|
rjmp BootloaderAPI_FillWord_Trampoline
|
||||||
rjmp BootloaderAPI_ReadSignature_Trampoline
|
rjmp BootloaderAPI_ReadSignature_Trampoline
|
||||||
rjmp BootloaderAPI_ReadFuse_Trampoline
|
rjmp BootloaderAPI_ReadFuse_Trampoline
|
||||||
rjmp BootloaderAPI_ReadLock_Trampoline
|
rjmp BootloaderAPI_ReadLock_Trampoline
|
||||||
rjmp BootloaderAPI_WriteLock_Trampoline
|
rjmp BootloaderAPI_WriteLock_Trampoline
|
||||||
rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1
|
rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1
|
||||||
rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2
|
rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2
|
||||||
rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3
|
rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3
|
||||||
rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4
|
rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4
|
||||||
rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5
|
rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; Bootloader table signatures and information
|
; Bootloader table signatures and information
|
||||||
.section .apitable_signatures, "ax"
|
.section .apitable_signatures, "ax"
|
||||||
.global BootloaderAPI_Signatures
|
.global BootloaderAPI_Signatures
|
||||||
BootloaderAPI_Signatures:
|
BootloaderAPI_Signatures:
|
||||||
|
|
||||||
.long BOOT_START_ADDR ; Start address of the bootloader
|
.long BOOT_START_ADDR ; Start address of the bootloader
|
||||||
.word 0xDF30 ; Signature for the MS class bootloader, V1
|
.word 0xDF30 ; Signature for the MS class bootloader, V1
|
||||||
.word 0xDCFB ; Signature for a LUFA class bootloader
|
.word 0xDCFB ; Signature for a LUFA class bootloader
|
||||||
|
@ -1,156 +1,156 @@
|
|||||||
<asf xmlversion="1.0">
|
<asf xmlversion="1.0">
|
||||||
<project caption="Mass Storage Bootloader - 128KB FLASH / 8KB Boot - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.128_8" force-caption="true" workspace-name="lufa_ms_128kb_8kb_">
|
<project caption="Mass Storage Bootloader - 128KB FLASH / 8KB Boot - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.128_8" force-caption="true" workspace-name="lufa_ms_128kb_8kb_">
|
||||||
<require idref="lufa.bootloaders.mass_storage"/>
|
<require idref="lufa.bootloaders.mass_storage"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="at90usb1287"/>
|
<device-support value="at90usb1287"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x1E000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x1E000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1E000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1E000"/>
|
||||||
|
|
||||||
<build type="define" name="AUX_BOOT_SECTION_SIZE" value="0"/>
|
<build type="define" name="AUX_BOOT_SECTION_SIZE" value="0"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="Mass Storage Bootloader - 64KB FLASH / 8KB Boot - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.64_8" force-caption="true" workspace-name="lufa_ms_64kb_8kb_">
|
<project caption="Mass Storage Bootloader - 64KB FLASH / 8KB Boot - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.64_8" force-caption="true" workspace-name="lufa_ms_64kb_8kb_">
|
||||||
<require idref="lufa.bootloaders.mass_storage"/>
|
<require idref="lufa.bootloaders.mass_storage"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="at90usb647"/>
|
<device-support value="at90usb647"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0xE000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0xE000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0xE000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0xE000"/>
|
||||||
|
|
||||||
<build type="define" name="AUX_BOOT_SECTION_SIZE" value="0"/>
|
<build type="define" name="AUX_BOOT_SECTION_SIZE" value="0"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="Mass Storage Bootloader - 32KB FLASH / 4KB Boot (2KB AUX) - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.32_4" force-caption="true" workspace-name="lufa_ms_32kb_4kb_">
|
<project caption="Mass Storage Bootloader - 32KB FLASH / 4KB Boot (2KB AUX) - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.32_4" force-caption="true" workspace-name="lufa_ms_32kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.mass_storage"/>
|
<require idref="lufa.bootloaders.mass_storage"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="atmega32u4"/>
|
<device-support value="atmega32u4"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x7000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x7000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
|
||||||
|
|
||||||
<build type="define" name="AUX_BOOT_SECTION_SIZE" value="2048"/>
|
<build type="define" name="AUX_BOOT_SECTION_SIZE" value="2048"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.boot_aux=0x6810"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.boot_aux=0x6810"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.boot_aux_trampoline=0x6800"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.boot_aux_trampoline=0x6800"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=Boot_AUX_Trampoline"/>
|
<build type="linker-config" subtype="flags" value="--undefined=Boot_AUX_Trampoline"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="Mass Storage Bootloader - 16KB FLASH / 4KB Boot (2KB AUX) - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.16_4" force-caption="true" workspace-name="lufa_ms_16kb_4kb_">
|
<project caption="Mass Storage Bootloader - 16KB FLASH / 4KB Boot (2KB AUX) - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.16_4" force-caption="true" workspace-name="lufa_ms_16kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.mass_storage"/>
|
<require idref="lufa.bootloaders.mass_storage"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="atmega16u2"/>
|
<device-support value="atmega16u2"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x3000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x3000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/>
|
||||||
|
|
||||||
<build type="define" name="AUX_BOOT_SECTION_SIZE" value="2048"/>
|
<build type="define" name="AUX_BOOT_SECTION_SIZE" value="2048"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.boot_aux=0x2810"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.boot_aux=0x2810"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.boot_aux_trampoline=0x2800"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.boot_aux_trampoline=0x2800"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=Boot_AUX_Trampoline"/>
|
<build type="linker-config" subtype="flags" value="--undefined=Boot_AUX_Trampoline"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<module type="application" id="lufa.bootloaders.mass_storage" caption="Mass Storage Bootloader">
|
<module type="application" id="lufa.bootloaders.mass_storage" caption="Mass Storage Bootloader">
|
||||||
<info type="description" value="summary">
|
<info type="description" value="summary">
|
||||||
Mass Storage Class Bootloader, capable of reprogramming a device via binary BIN files copied to the virtual FAT12 file-system it creates when plugged into a host.
|
Mass Storage Class Bootloader, capable of reprogramming a device via binary BIN files copied to the virtual FAT12 file-system it creates when plugged into a host.
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<info type="gui-flag" value="move-to-root"/>
|
<info type="gui-flag" value="move-to-root"/>
|
||||||
|
|
||||||
<info type="keyword" value="Technology">
|
<info type="keyword" value="Technology">
|
||||||
<keyword value="Bootloaders"/>
|
<keyword value="Bootloaders"/>
|
||||||
<keyword value="USB Device"/>
|
<keyword value="USB Device"/>
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<device-support-alias value="lufa_avr8"/>
|
<device-support-alias value="lufa_avr8"/>
|
||||||
<device-support-alias value="lufa_xmega"/>
|
<device-support-alias value="lufa_xmega"/>
|
||||||
<device-support-alias value="lufa_uc3"/>
|
<device-support-alias value="lufa_uc3"/>
|
||||||
|
|
||||||
<build type="include-path" value="."/>
|
<build type="include-path" value="."/>
|
||||||
<build type="c-source" value="BootloaderMassStorage.c"/>
|
<build type="c-source" value="BootloaderMassStorage.c"/>
|
||||||
<build type="header-file" value="BootloaderMassStorage.h"/>
|
<build type="header-file" value="BootloaderMassStorage.h"/>
|
||||||
<build type="c-source" value="Descriptors.c"/>
|
<build type="c-source" value="Descriptors.c"/>
|
||||||
<build type="header-file" value="Descriptors.h"/>
|
<build type="header-file" value="Descriptors.h"/>
|
||||||
<build type="c-source" value="BootloaderAPI.c"/>
|
<build type="c-source" value="BootloaderAPI.c"/>
|
||||||
<build type="header-file" value="BootloaderAPI.h"/>
|
<build type="header-file" value="BootloaderAPI.h"/>
|
||||||
<build type="asm-source" value="BootloaderAPITable.S"/>
|
<build type="asm-source" value="BootloaderAPITable.S"/>
|
||||||
|
|
||||||
<build type="module-config" subtype="path" value="Config"/>
|
<build type="module-config" subtype="path" value="Config"/>
|
||||||
<build type="header-file" value="Config/LUFAConfig.h"/>
|
<build type="header-file" value="Config/LUFAConfig.h"/>
|
||||||
<build type="header-file" value="Config/AppConfig.h"/>
|
<build type="header-file" value="Config/AppConfig.h"/>
|
||||||
|
|
||||||
<build type="include-path" value="Lib"/>
|
<build type="include-path" value="Lib"/>
|
||||||
<build type="header-file" value="Lib/VirtualFAT.h"/>
|
<build type="header-file" value="Lib/VirtualFAT.h"/>
|
||||||
<build type="c-source" value="Lib/VirtualFAT.c"/>
|
<build type="c-source" value="Lib/VirtualFAT.c"/>
|
||||||
<build type="header-file" value="Lib/SCSI.h"/>
|
<build type="header-file" value="Lib/SCSI.h"/>
|
||||||
<build type="c-source" value="Lib/SCSI.c"/>
|
<build type="c-source" value="Lib/SCSI.c"/>
|
||||||
|
|
||||||
<build type="distribute" subtype="user-file" value="doxyfile"/>
|
<build type="distribute" subtype="user-file" value="doxyfile"/>
|
||||||
<build type="distribute" subtype="user-file" value="BootloaderMassStorage.txt"/>
|
<build type="distribute" subtype="user-file" value="BootloaderMassStorage.txt"/>
|
||||||
|
|
||||||
<require idref="lufa.common"/>
|
<require idref="lufa.common"/>
|
||||||
<require idref="lufa.platform"/>
|
<require idref="lufa.platform"/>
|
||||||
<require idref="lufa.drivers.usb"/>
|
<require idref="lufa.drivers.usb"/>
|
||||||
<require idref="lufa.drivers.board"/>
|
<require idref="lufa.drivers.board"/>
|
||||||
<require idref="lufa.drivers.board.leds"/>
|
<require idref="lufa.drivers.board.leds"/>
|
||||||
</module>
|
</module>
|
||||||
</asf>
|
</asf>
|
||||||
|
@ -1,68 +1,68 @@
|
|||||||
#
|
#
|
||||||
# LUFA Library
|
# LUFA Library
|
||||||
# Copyright (C) Dean Camera, 2014.
|
# Copyright (C) Dean Camera, 2014.
|
||||||
#
|
#
|
||||||
# dean [at] fourwalledcubicle [dot] com
|
# dean [at] fourwalledcubicle [dot] com
|
||||||
# www.lufa-lib.org
|
# www.lufa-lib.org
|
||||||
#
|
#
|
||||||
# --------------------------------------
|
# --------------------------------------
|
||||||
# LUFA Project Makefile.
|
# LUFA Project Makefile.
|
||||||
# --------------------------------------
|
# --------------------------------------
|
||||||
|
|
||||||
# Run "make help" for target help.
|
# Run "make help" for target help.
|
||||||
|
|
||||||
MCU = at90usb1287
|
MCU = at90usb1287
|
||||||
ARCH = AVR8
|
ARCH = AVR8
|
||||||
BOARD = USBKEY
|
BOARD = USBKEY
|
||||||
F_CPU = 8000000
|
F_CPU = 8000000
|
||||||
F_USB = $(F_CPU)
|
F_USB = $(F_CPU)
|
||||||
OPTIMIZATION = s
|
OPTIMIZATION = s
|
||||||
TARGET = BootloaderMassStorage
|
TARGET = BootloaderMassStorage
|
||||||
SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S Lib/SCSI.c Lib/VirtualFAT.c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS)
|
SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S Lib/SCSI.c Lib/VirtualFAT.c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS)
|
||||||
LUFA_PATH = ../../LUFA
|
LUFA_PATH = ../../LUFA
|
||||||
CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET)
|
CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET)
|
||||||
LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS)
|
LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS)
|
||||||
|
|
||||||
# Flash size and bootloader section sizes of the target, in KB. These must
|
# Flash size and bootloader section sizes of the target, in KB. These must
|
||||||
# match the target's total FLASH size and the bootloader size set in the
|
# match the target's total FLASH size and the bootloader size set in the
|
||||||
# device's fuses.
|
# device's fuses.
|
||||||
FLASH_SIZE_KB = 128
|
FLASH_SIZE_KB = 128
|
||||||
BOOT_SECTION_SIZE_KB = 8
|
BOOT_SECTION_SIZE_KB = 8
|
||||||
|
|
||||||
# Bootloader address calculation formulas
|
# Bootloader address calculation formulas
|
||||||
# Do not modify these macros, but rather modify the dependent values above.
|
# Do not modify these macros, but rather modify the dependent values above.
|
||||||
CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) )
|
CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) )
|
||||||
BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 )
|
BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 )
|
||||||
BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) )
|
BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) )
|
||||||
|
|
||||||
# Bootloader linker section flags for relocating the API table sections to
|
# Bootloader linker section flags for relocating the API table sections to
|
||||||
# known FLASH addresses - these should not normally be user-edited.
|
# known FLASH addresses - these should not normally be user-edited.
|
||||||
BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2))
|
BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2))
|
||||||
BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96)
|
BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96)
|
||||||
BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32)
|
BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32)
|
||||||
BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8)
|
BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8)
|
||||||
|
|
||||||
# Check if the bootloader needs an AUX section, located before the real bootloader section to store some of the
|
# Check if the bootloader needs an AUX section, located before the real bootloader section to store some of the
|
||||||
# bootloader code. This is required for 32KB and smaller devices, where the actual bootloader is 6KB but the maximum
|
# bootloader code. This is required for 32KB and smaller devices, where the actual bootloader is 6KB but the maximum
|
||||||
# bootloader section size is 4KB. The actual usable application space will be reduced by 6KB for these devices.
|
# bootloader section size is 4KB. The actual usable application space will be reduced by 6KB for these devices.
|
||||||
ifeq ($(BOOT_SECTION_SIZE_KB),8)
|
ifeq ($(BOOT_SECTION_SIZE_KB),8)
|
||||||
CC_FLAGS += -DAUX_BOOT_SECTION_SIZE=0
|
CC_FLAGS += -DAUX_BOOT_SECTION_SIZE=0
|
||||||
else
|
else
|
||||||
AUX_BOOT_SECTION_SIZE_KB = (6 - $(BOOT_SECTION_SIZE_KB))
|
AUX_BOOT_SECTION_SIZE_KB = (6 - $(BOOT_SECTION_SIZE_KB))
|
||||||
|
|
||||||
CC_FLAGS += -DAUX_BOOT_SECTION_SIZE='($(AUX_BOOT_SECTION_SIZE_KB) * 1024)'
|
CC_FLAGS += -DAUX_BOOT_SECTION_SIZE='($(AUX_BOOT_SECTION_SIZE_KB) * 1024)'
|
||||||
LD_FLAGS += -Wl,--section-start=.boot_aux=$(call BOOT_SEC_OFFSET, (($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024 - 16))
|
LD_FLAGS += -Wl,--section-start=.boot_aux=$(call BOOT_SEC_OFFSET, (($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024 - 16))
|
||||||
LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .boot_aux_trampoline, Boot_AUX_Trampoline, ($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024)
|
LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .boot_aux_trampoline, Boot_AUX_Trampoline, ($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Default target
|
# Default target
|
||||||
all:
|
all:
|
||||||
|
|
||||||
# Include LUFA build script makefiles
|
# Include LUFA build script makefiles
|
||||||
include $(LUFA_PATH)/Build/lufa_core.mk
|
include $(LUFA_PATH)/Build/lufa_core.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_sources.mk
|
include $(LUFA_PATH)/Build/lufa_sources.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_build.mk
|
include $(LUFA_PATH)/Build/lufa_build.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_cppcheck.mk
|
include $(LUFA_PATH)/Build/lufa_cppcheck.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_doxygen.mk
|
include $(LUFA_PATH)/Build/lufa_doxygen.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_avrdude.mk
|
include $(LUFA_PATH)/Build/lufa_avrdude.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_atprogram.mk
|
include $(LUFA_PATH)/Build/lufa_atprogram.mk
|
||||||
|
@ -1,91 +1,91 @@
|
|||||||
/*
|
/*
|
||||||
LUFA Library
|
LUFA Library
|
||||||
Copyright (C) Dean Camera, 2014.
|
Copyright (C) Dean Camera, 2014.
|
||||||
|
|
||||||
dean [at] fourwalledcubicle [dot] com
|
dean [at] fourwalledcubicle [dot] com
|
||||||
www.lufa-lib.org
|
www.lufa-lib.org
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com)
|
Copyright 2014 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
|
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
|
all copies and that both that the copyright notice and this
|
||||||
permission notice and warranty disclaimer appear in supporting
|
permission notice and warranty disclaimer appear in supporting
|
||||||
documentation, and that the name of the author not be used in
|
documentation, and that the name of the author not be used in
|
||||||
advertising or publicity pertaining to distribution of the
|
advertising or publicity pertaining to distribution of the
|
||||||
software without specific, written prior permission.
|
software without specific, written prior permission.
|
||||||
|
|
||||||
The author disclaims all warranties with regard to this
|
The author disclaims all warranties with regard to this
|
||||||
software, including all implied warranties of merchantability
|
software, including all implied warranties of merchantability
|
||||||
and fitness. In no event shall the author be liable for any
|
and fitness. In no event shall the author be liable for any
|
||||||
special, indirect or consequential damages or any damages
|
special, indirect or consequential damages or any damages
|
||||||
whatsoever resulting from loss of use, data or profits, whether
|
whatsoever resulting from loss of use, data or profits, whether
|
||||||
in an action of contract, negligence or other tortious action,
|
in an action of contract, negligence or other tortious action,
|
||||||
arising out of or in connection with the use or performance of
|
arising out of or in connection with the use or performance of
|
||||||
this software.
|
this software.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
; Trampolines to actual API implementations if the target address is outside the
|
; Trampolines to actual API implementations if the target address is outside the
|
||||||
; range of a rjmp instruction (can happen with large bootloader sections)
|
; range of a rjmp instruction (can happen with large bootloader sections)
|
||||||
.section .apitable_trampolines, "ax"
|
.section .apitable_trampolines, "ax"
|
||||||
.global BootloaderAPI_Trampolines
|
.global BootloaderAPI_Trampolines
|
||||||
BootloaderAPI_Trampolines:
|
BootloaderAPI_Trampolines:
|
||||||
|
|
||||||
BootloaderAPI_ErasePage_Trampoline:
|
BootloaderAPI_ErasePage_Trampoline:
|
||||||
jmp BootloaderAPI_ErasePage
|
jmp BootloaderAPI_ErasePage
|
||||||
BootloaderAPI_WritePage_Trampoline:
|
BootloaderAPI_WritePage_Trampoline:
|
||||||
jmp BootloaderAPI_WritePage
|
jmp BootloaderAPI_WritePage
|
||||||
BootloaderAPI_FillWord_Trampoline:
|
BootloaderAPI_FillWord_Trampoline:
|
||||||
jmp BootloaderAPI_FillWord
|
jmp BootloaderAPI_FillWord
|
||||||
BootloaderAPI_ReadSignature_Trampoline:
|
BootloaderAPI_ReadSignature_Trampoline:
|
||||||
jmp BootloaderAPI_ReadSignature
|
jmp BootloaderAPI_ReadSignature
|
||||||
BootloaderAPI_ReadFuse_Trampoline:
|
BootloaderAPI_ReadFuse_Trampoline:
|
||||||
jmp BootloaderAPI_ReadFuse
|
jmp BootloaderAPI_ReadFuse
|
||||||
BootloaderAPI_ReadLock_Trampoline:
|
BootloaderAPI_ReadLock_Trampoline:
|
||||||
jmp BootloaderAPI_ReadLock
|
jmp BootloaderAPI_ReadLock
|
||||||
BootloaderAPI_WriteLock_Trampoline:
|
BootloaderAPI_WriteLock_Trampoline:
|
||||||
jmp BootloaderAPI_WriteLock
|
jmp BootloaderAPI_WriteLock
|
||||||
BootloaderAPI_UNUSED1:
|
BootloaderAPI_UNUSED1:
|
||||||
ret
|
ret
|
||||||
BootloaderAPI_UNUSED2:
|
BootloaderAPI_UNUSED2:
|
||||||
ret
|
ret
|
||||||
BootloaderAPI_UNUSED3:
|
BootloaderAPI_UNUSED3:
|
||||||
ret
|
ret
|
||||||
BootloaderAPI_UNUSED4:
|
BootloaderAPI_UNUSED4:
|
||||||
ret
|
ret
|
||||||
BootloaderAPI_UNUSED5:
|
BootloaderAPI_UNUSED5:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; API function jump table
|
; API function jump table
|
||||||
.section .apitable_jumptable, "ax"
|
.section .apitable_jumptable, "ax"
|
||||||
.global BootloaderAPI_JumpTable
|
.global BootloaderAPI_JumpTable
|
||||||
BootloaderAPI_JumpTable:
|
BootloaderAPI_JumpTable:
|
||||||
|
|
||||||
rjmp BootloaderAPI_ErasePage_Trampoline
|
rjmp BootloaderAPI_ErasePage_Trampoline
|
||||||
rjmp BootloaderAPI_WritePage_Trampoline
|
rjmp BootloaderAPI_WritePage_Trampoline
|
||||||
rjmp BootloaderAPI_FillWord_Trampoline
|
rjmp BootloaderAPI_FillWord_Trampoline
|
||||||
rjmp BootloaderAPI_ReadSignature_Trampoline
|
rjmp BootloaderAPI_ReadSignature_Trampoline
|
||||||
rjmp BootloaderAPI_ReadFuse_Trampoline
|
rjmp BootloaderAPI_ReadFuse_Trampoline
|
||||||
rjmp BootloaderAPI_ReadLock_Trampoline
|
rjmp BootloaderAPI_ReadLock_Trampoline
|
||||||
rjmp BootloaderAPI_WriteLock_Trampoline
|
rjmp BootloaderAPI_WriteLock_Trampoline
|
||||||
rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1
|
rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1
|
||||||
rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2
|
rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2
|
||||||
rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3
|
rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3
|
||||||
rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4
|
rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4
|
||||||
rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5
|
rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; Bootloader table signatures and information
|
; Bootloader table signatures and information
|
||||||
.section .apitable_signatures, "ax"
|
.section .apitable_signatures, "ax"
|
||||||
.global BootloaderAPI_Signatures
|
.global BootloaderAPI_Signatures
|
||||||
BootloaderAPI_Signatures:
|
BootloaderAPI_Signatures:
|
||||||
|
|
||||||
.long BOOT_START_ADDR ; Start address of the bootloader
|
.long BOOT_START_ADDR ; Start address of the bootloader
|
||||||
.word 0xDF20 ; Signature for the Printer class bootloader
|
.word 0xDF20 ; Signature for the Printer class bootloader
|
||||||
.word 0xDCFB ; Signature for a LUFA class bootloader
|
.word 0xDCFB ; Signature for a LUFA class bootloader
|
||||||
|
@ -1,159 +1,159 @@
|
|||||||
<asf xmlversion="1.0">
|
<asf xmlversion="1.0">
|
||||||
<project caption="Printer Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.128_4" force-caption="true" workspace-name="lufa_printer_128kb_4kb_">
|
<project caption="Printer Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.128_4" force-caption="true" workspace-name="lufa_printer_128kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.printer"/>
|
<require idref="lufa.bootloaders.printer"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="at90usb1287"/>
|
<device-support value="at90usb1287"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x1F000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x1F000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="Printer Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.64_4" force-caption="true" workspace-name="lufa_printer_64kb_4kb_">
|
<project caption="Printer Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.64_4" force-caption="true" workspace-name="lufa_printer_64kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.printer"/>
|
<require idref="lufa.bootloaders.printer"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="at90usb647"/>
|
<device-support value="at90usb647"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0xF000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0xF000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="Printer Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.32_4" force-caption="true" workspace-name="lufa_printer_32kb_4kb_">
|
<project caption="Printer Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.32_4" force-caption="true" workspace-name="lufa_printer_32kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.printer"/>
|
<require idref="lufa.bootloaders.printer"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="atmega32u4"/>
|
<device-support value="atmega32u4"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x7000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x7000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="Printer Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.16_4" force-caption="true" workspace-name="lufa_printer_16kb_4kb_">
|
<project caption="Printer Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.16_4" force-caption="true" workspace-name="lufa_printer_16kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.printer"/>
|
<require idref="lufa.bootloaders.printer"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="atmega16u2"/>
|
<device-support value="atmega16u2"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x3000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x3000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="Printer Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.8_4" force-caption="true" workspace-name="lufa_printer_8kb_4kb_">
|
<project caption="Printer Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.8_4" force-caption="true" workspace-name="lufa_printer_8kb_4kb_">
|
||||||
<require idref="lufa.bootloaders.printer"/>
|
<require idref="lufa.bootloaders.printer"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8"/>
|
<generator value="as5_8"/>
|
||||||
|
|
||||||
<device-support value="atmega8u2"/>
|
<device-support value="atmega8u2"/>
|
||||||
<config name="lufa.drivers.board.name" value="none"/>
|
<config name="lufa.drivers.board.name" value="none"/>
|
||||||
|
|
||||||
<config name="config.compiler.optimization.level" value="size"/>
|
<config name="config.compiler.optimization.level" value="size"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="16000000UL"/>
|
<build type="define" name="F_CPU" value="16000000UL"/>
|
||||||
<build type="define" name="F_USB" value="16000000UL"/>
|
<build type="define" name="F_USB" value="16000000UL"/>
|
||||||
|
|
||||||
<build type="define" name="BOOT_START_ADDR" value="0x1000"/>
|
<build type="define" name="BOOT_START_ADDR" value="0x1000"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/>
|
||||||
|
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/>
|
||||||
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/>
|
<build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/>
|
||||||
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
<build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<module type="application" id="lufa.bootloaders.printer" caption="Printer Bootloader">
|
<module type="application" id="lufa.bootloaders.printer" caption="Printer Bootloader">
|
||||||
<info type="description" value="summary">
|
<info type="description" value="summary">
|
||||||
Printer Class Bootloader, capable of reprogramming a device by "printing" new HEX files to the virtual Plain-Text printer it creates when plugged into a host.
|
Printer Class Bootloader, capable of reprogramming a device by "printing" new HEX files to the virtual Plain-Text printer it creates when plugged into a host.
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<info type="gui-flag" value="move-to-root"/>
|
<info type="gui-flag" value="move-to-root"/>
|
||||||
|
|
||||||
<info type="keyword" value="Technology">
|
<info type="keyword" value="Technology">
|
||||||
<keyword value="Bootloaders"/>
|
<keyword value="Bootloaders"/>
|
||||||
<keyword value="USB Device"/>
|
<keyword value="USB Device"/>
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<device-support-alias value="lufa_avr8"/>
|
<device-support-alias value="lufa_avr8"/>
|
||||||
<device-support-alias value="lufa_xmega"/>
|
<device-support-alias value="lufa_xmega"/>
|
||||||
<device-support-alias value="lufa_uc3"/>
|
<device-support-alias value="lufa_uc3"/>
|
||||||
|
|
||||||
<build type="include-path" value="."/>
|
<build type="include-path" value="."/>
|
||||||
<build type="c-source" value="BootloaderPrinter.c"/>
|
<build type="c-source" value="BootloaderPrinter.c"/>
|
||||||
<build type="header-file" value="BootloaderPrinter.h"/>
|
<build type="header-file" value="BootloaderPrinter.h"/>
|
||||||
<build type="c-source" value="Descriptors.c"/>
|
<build type="c-source" value="Descriptors.c"/>
|
||||||
<build type="header-file" value="Descriptors.h"/>
|
<build type="header-file" value="Descriptors.h"/>
|
||||||
<build type="c-source" value="BootloaderAPI.c"/>
|
<build type="c-source" value="BootloaderAPI.c"/>
|
||||||
<build type="header-file" value="BootloaderAPI.h"/>
|
<build type="header-file" value="BootloaderAPI.h"/>
|
||||||
<build type="asm-source" value="BootloaderAPITable.S"/>
|
<build type="asm-source" value="BootloaderAPITable.S"/>
|
||||||
|
|
||||||
<build type="module-config" subtype="path" value="Config"/>
|
<build type="module-config" subtype="path" value="Config"/>
|
||||||
<build type="header-file" value="Config/LUFAConfig.h"/>
|
<build type="header-file" value="Config/LUFAConfig.h"/>
|
||||||
|
|
||||||
<build type="distribute" subtype="user-file" value="doxyfile"/>
|
<build type="distribute" subtype="user-file" value="doxyfile"/>
|
||||||
<build type="distribute" subtype="user-file" value="BootloaderPrinter.txt"/>
|
<build type="distribute" subtype="user-file" value="BootloaderPrinter.txt"/>
|
||||||
|
|
||||||
<require idref="lufa.common"/>
|
<require idref="lufa.common"/>
|
||||||
<require idref="lufa.platform"/>
|
<require idref="lufa.platform"/>
|
||||||
<require idref="lufa.drivers.usb"/>
|
<require idref="lufa.drivers.usb"/>
|
||||||
<require idref="lufa.drivers.board"/>
|
<require idref="lufa.drivers.board"/>
|
||||||
<require idref="lufa.drivers.board.leds"/>
|
<require idref="lufa.drivers.board.leds"/>
|
||||||
</module>
|
</module>
|
||||||
</asf>
|
</asf>
|
||||||
|
@ -1,55 +1,55 @@
|
|||||||
#
|
#
|
||||||
# LUFA Library
|
# LUFA Library
|
||||||
# Copyright (C) Dean Camera, 2014.
|
# Copyright (C) Dean Camera, 2014.
|
||||||
#
|
#
|
||||||
# dean [at] fourwalledcubicle [dot] com
|
# dean [at] fourwalledcubicle [dot] com
|
||||||
# www.lufa-lib.org
|
# www.lufa-lib.org
|
||||||
#
|
#
|
||||||
# --------------------------------------
|
# --------------------------------------
|
||||||
# LUFA Project Makefile.
|
# LUFA Project Makefile.
|
||||||
# --------------------------------------
|
# --------------------------------------
|
||||||
|
|
||||||
# Run "make help" for target help.
|
# Run "make help" for target help.
|
||||||
|
|
||||||
MCU = at90usb1287
|
MCU = at90usb1287
|
||||||
ARCH = AVR8
|
ARCH = AVR8
|
||||||
BOARD = USBKEY
|
BOARD = USBKEY
|
||||||
F_CPU = 8000000
|
F_CPU = 8000000
|
||||||
F_USB = $(F_CPU)
|
F_USB = $(F_CPU)
|
||||||
OPTIMIZATION = s
|
OPTIMIZATION = s
|
||||||
TARGET = BootloaderPrinter
|
TARGET = BootloaderPrinter
|
||||||
SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS)
|
SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS)
|
||||||
LUFA_PATH = ../../LUFA
|
LUFA_PATH = ../../LUFA
|
||||||
CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET)
|
CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET)
|
||||||
LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS)
|
LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS)
|
||||||
|
|
||||||
# Flash size and bootloader section sizes of the target, in KB. These must
|
# Flash size and bootloader section sizes of the target, in KB. These must
|
||||||
# match the target's total FLASH size and the bootloader size set in the
|
# match the target's total FLASH size and the bootloader size set in the
|
||||||
# device's fuses.
|
# device's fuses.
|
||||||
FLASH_SIZE_KB = 128
|
FLASH_SIZE_KB = 128
|
||||||
BOOT_SECTION_SIZE_KB = 8
|
BOOT_SECTION_SIZE_KB = 8
|
||||||
|
|
||||||
# Bootloader address calculation formulas
|
# Bootloader address calculation formulas
|
||||||
# Do not modify these macros, but rather modify the dependent values above.
|
# Do not modify these macros, but rather modify the dependent values above.
|
||||||
CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) )
|
CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) )
|
||||||
BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 )
|
BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 )
|
||||||
BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) )
|
BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) )
|
||||||
|
|
||||||
# Bootloader linker section flags for relocating the API table sections to
|
# Bootloader linker section flags for relocating the API table sections to
|
||||||
# known FLASH addresses - these should not normally be user-edited.
|
# known FLASH addresses - these should not normally be user-edited.
|
||||||
BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2))
|
BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2))
|
||||||
BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96)
|
BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96)
|
||||||
BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32)
|
BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32)
|
||||||
BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8)
|
BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8)
|
||||||
|
|
||||||
# Default target
|
# Default target
|
||||||
all:
|
all:
|
||||||
|
|
||||||
# Include LUFA build script makefiles
|
# Include LUFA build script makefiles
|
||||||
include $(LUFA_PATH)/Build/lufa_core.mk
|
include $(LUFA_PATH)/Build/lufa_core.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_sources.mk
|
include $(LUFA_PATH)/Build/lufa_sources.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_build.mk
|
include $(LUFA_PATH)/Build/lufa_build.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_cppcheck.mk
|
include $(LUFA_PATH)/Build/lufa_cppcheck.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_doxygen.mk
|
include $(LUFA_PATH)/Build/lufa_doxygen.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_avrdude.mk
|
include $(LUFA_PATH)/Build/lufa_avrdude.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_atprogram.mk
|
include $(LUFA_PATH)/Build/lufa_atprogram.mk
|
||||||
|
@ -1,42 +1,42 @@
|
|||||||
#
|
#
|
||||||
# LUFA Library
|
# LUFA Library
|
||||||
# Copyright (C) Dean Camera, 2014.
|
# Copyright (C) Dean Camera, 2014.
|
||||||
#
|
#
|
||||||
# dean [at] fourwalledcubicle [dot] com
|
# dean [at] fourwalledcubicle [dot] com
|
||||||
# www.lufa-lib.org
|
# www.lufa-lib.org
|
||||||
#
|
#
|
||||||
# --------------------------------------
|
# --------------------------------------
|
||||||
# LUFA Project Makefile.
|
# LUFA Project Makefile.
|
||||||
# --------------------------------------
|
# --------------------------------------
|
||||||
|
|
||||||
# Run "make help" for target help.
|
# Run "make help" for target help.
|
||||||
|
|
||||||
MCU = at90usb1287
|
MCU = at90usb1287
|
||||||
ARCH = AVR8
|
ARCH = AVR8
|
||||||
F_CPU = 1000000
|
F_CPU = 1000000
|
||||||
F_USB = $(F_CPU)
|
F_USB = $(F_CPU)
|
||||||
OPTIMIZATION = s
|
OPTIMIZATION = s
|
||||||
TARGET = HID_EEPROM_Loader
|
TARGET = HID_EEPROM_Loader
|
||||||
SRC = $(TARGET).c
|
SRC = $(TARGET).c
|
||||||
LUFA_PATH = ../../../LUFA
|
LUFA_PATH = ../../../LUFA
|
||||||
CC_FLAGS =
|
CC_FLAGS =
|
||||||
LD_FLAGS =
|
LD_FLAGS =
|
||||||
OBJECT_FILES = InputEEData.o
|
OBJECT_FILES = InputEEData.o
|
||||||
|
|
||||||
# Default target
|
# Default target
|
||||||
all:
|
all:
|
||||||
|
|
||||||
# Determine the AVR sub-architecture of the build main application object file
|
# Determine the AVR sub-architecture of the build main application object file
|
||||||
FIND_AVR_SUBARCH = avr$(shell avr-objdump -f $(TARGET).o | grep architecture | cut -d':' -f3 | cut -d',' -f1)
|
FIND_AVR_SUBARCH = avr$(shell avr-objdump -f $(TARGET).o | grep architecture | cut -d':' -f3 | cut -d',' -f1)
|
||||||
|
|
||||||
# Create a linkable object file with the input binary EEPROM data stored in the FLASH section
|
# Create a linkable object file with the input binary EEPROM data stored in the FLASH section
|
||||||
InputEEData.o: InputEEData.bin $(TARGET).o $(MAKEFILE_LIST)
|
InputEEData.o: InputEEData.bin $(TARGET).o $(MAKEFILE_LIST)
|
||||||
@echo $(MSG_OBJCPY_CMD) Converting \"$<\" to a object file \"$@\"
|
@echo $(MSG_OBJCPY_CMD) Converting \"$<\" to a object file \"$@\"
|
||||||
avr-objcopy -I binary -O elf32-avr -B $(call FIND_AVR_SUBARCH) --rename-section .data=.progmem.data,contents,alloc,readonly,data $< $@
|
avr-objcopy -I binary -O elf32-avr -B $(call FIND_AVR_SUBARCH) --rename-section .data=.progmem.data,contents,alloc,readonly,data $< $@
|
||||||
|
|
||||||
# Include LUFA build script makefiles
|
# Include LUFA build script makefiles
|
||||||
include $(LUFA_PATH)/Build/lufa_core.mk
|
include $(LUFA_PATH)/Build/lufa_core.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_build.mk
|
include $(LUFA_PATH)/Build/lufa_build.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_cppcheck.mk
|
include $(LUFA_PATH)/Build/lufa_cppcheck.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_doxygen.mk
|
include $(LUFA_PATH)/Build/lufa_doxygen.mk
|
||||||
include $(LUFA_PATH)/Build/lufa_hid.mk
|
include $(LUFA_PATH)/Build/lufa_hid.mk
|
||||||
|
@ -1,55 +1,55 @@
|
|||||||
<asf xmlversion="1.0">
|
<asf xmlversion="1.0">
|
||||||
<project caption="USB Device Template" id="lufa.templates.device.project.avr8">
|
<project caption="USB Device Template" id="lufa.templates.device.project.avr8">
|
||||||
<require idref="lufa.templates.device"/>
|
<require idref="lufa.templates.device"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8_template"/>
|
<generator value="as5_8_template"/>
|
||||||
|
|
||||||
<device-support value="at90usb1287"/>
|
<device-support value="at90usb1287"/>
|
||||||
<config name="lufa.drivers.board.name" value="usbkey"/>
|
<config name="lufa.drivers.board.name" value="usbkey"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="8000000UL"/>
|
<build type="define" name="F_CPU" value="8000000UL"/>
|
||||||
<build type="define" name="F_USB" value="8000000UL"/>
|
<build type="define" name="F_USB" value="8000000UL"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<project caption="USB Device Template" id="lufa.templates.device.project.xmega">
|
<project caption="USB Device Template" id="lufa.templates.device.project.xmega">
|
||||||
<require idref="lufa.templates.device"/>
|
<require idref="lufa.templates.device"/>
|
||||||
<require idref="lufa.boards.dummy.xmega"/>
|
<require idref="lufa.boards.dummy.xmega"/>
|
||||||
<generator value="as5_8_template"/>
|
<generator value="as5_8_template"/>
|
||||||
|
|
||||||
<device-support value="atxmega256a3bu"/>
|
<device-support value="atxmega256a3bu"/>
|
||||||
<config name="lufa.drivers.board.name" value="a3bu_xplained"/>
|
<config name="lufa.drivers.board.name" value="a3bu_xplained"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="32000000UL"/>
|
<build type="define" name="F_CPU" value="32000000UL"/>
|
||||||
<build type="define" name="F_USB" value="48000000UL"/>
|
<build type="define" name="F_USB" value="48000000UL"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<module type="application" id="lufa.templates.device" caption="USB Device Template">
|
<module type="application" id="lufa.templates.device" caption="USB Device Template">
|
||||||
<info type="description" value="summary">
|
<info type="description" value="summary">
|
||||||
Template for a LUFA USB device mode application.
|
Template for a LUFA USB device mode application.
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<info type="gui-flag" value="move-to-root"/>
|
<info type="gui-flag" value="move-to-root"/>
|
||||||
|
|
||||||
<info type="keyword" value="Technology">
|
<info type="keyword" value="Technology">
|
||||||
<keyword value="USB Device"/>
|
<keyword value="USB Device"/>
|
||||||
<keyword value="Template Projects"/>
|
<keyword value="Template Projects"/>
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<device-support-alias value="lufa_avr8"/>
|
<device-support-alias value="lufa_avr8"/>
|
||||||
<device-support-alias value="lufa_xmega"/>
|
<device-support-alias value="lufa_xmega"/>
|
||||||
<device-support-alias value="lufa_uc3"/>
|
<device-support-alias value="lufa_uc3"/>
|
||||||
|
|
||||||
<build type="c-source" value="DeviceApplication.c"/>
|
<build type="c-source" value="DeviceApplication.c"/>
|
||||||
<build type="c-source" value="Descriptors.c"/>
|
<build type="c-source" value="Descriptors.c"/>
|
||||||
<build type="header-file" value="DeviceApplication.h"/>
|
<build type="header-file" value="DeviceApplication.h"/>
|
||||||
<build type="header-file" value="Descriptors.h"/>
|
<build type="header-file" value="Descriptors.h"/>
|
||||||
|
|
||||||
<build type="module-config" subtype="path" value=".."/>
|
<build type="module-config" subtype="path" value=".."/>
|
||||||
<build type="header-file" value="../LUFAConfig.h"/>
|
<build type="header-file" value="../LUFAConfig.h"/>
|
||||||
|
|
||||||
<require idref="lufa.common"/>
|
<require idref="lufa.common"/>
|
||||||
<require idref="lufa.platform"/>
|
<require idref="lufa.platform"/>
|
||||||
<require idref="lufa.drivers.usb"/>
|
<require idref="lufa.drivers.usb"/>
|
||||||
<require idref="lufa.drivers.board"/>
|
<require idref="lufa.drivers.board"/>
|
||||||
</module>
|
</module>
|
||||||
</asf>
|
</asf>
|
||||||
|
@ -1,41 +1,41 @@
|
|||||||
<asf xmlversion="1.0">
|
<asf xmlversion="1.0">
|
||||||
<project caption="USB Host Template" id="lufa.templates.host.project">
|
<project caption="USB Host Template" id="lufa.templates.host.project">
|
||||||
<require idref="lufa.templates.host"/>
|
<require idref="lufa.templates.host"/>
|
||||||
<require idref="lufa.boards.dummy.avr8"/>
|
<require idref="lufa.boards.dummy.avr8"/>
|
||||||
<generator value="as5_8_template"/>
|
<generator value="as5_8_template"/>
|
||||||
|
|
||||||
<device-support value="at90usb1287"/>
|
<device-support value="at90usb1287"/>
|
||||||
<config name="lufa.drivers.board.name" value="usbkey"/>
|
<config name="lufa.drivers.board.name" value="usbkey"/>
|
||||||
|
|
||||||
<build type="define" name="F_CPU" value="8000000UL"/>
|
<build type="define" name="F_CPU" value="8000000UL"/>
|
||||||
<build type="define" name="F_USB" value="8000000UL"/>
|
<build type="define" name="F_USB" value="8000000UL"/>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
<module type="application" id="lufa.templates.host" caption="USB Host Template">
|
<module type="application" id="lufa.templates.host" caption="USB Host Template">
|
||||||
<info type="description" value="summary">
|
<info type="description" value="summary">
|
||||||
Template for a LUFA USB host mode application.
|
Template for a LUFA USB host mode application.
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<info type="gui-flag" value="move-to-root"/>
|
<info type="gui-flag" value="move-to-root"/>
|
||||||
|
|
||||||
<info type="keyword" value="Technology">
|
<info type="keyword" value="Technology">
|
||||||
<keyword value="USB Host"/>
|
<keyword value="USB Host"/>
|
||||||
<keyword value="Template Projects"/>
|
<keyword value="Template Projects"/>
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<device-support-alias value="lufa_avr8"/>
|
<device-support-alias value="lufa_avr8"/>
|
||||||
<device-support-alias value="lufa_xmega"/>
|
<device-support-alias value="lufa_xmega"/>
|
||||||
<device-support-alias value="lufa_uc3"/>
|
<device-support-alias value="lufa_uc3"/>
|
||||||
|
|
||||||
<build type="c-source" value="HostApplication.c"/>
|
<build type="c-source" value="HostApplication.c"/>
|
||||||
<build type="header-file" value="HostApplication.h"/>
|
<build type="header-file" value="HostApplication.h"/>
|
||||||
|
|
||||||
<build type="module-config" subtype="path" value=".."/>
|
<build type="module-config" subtype="path" value=".."/>
|
||||||
<build type="header-file" value="../LUFAConfig.h"/>
|
<build type="header-file" value="../LUFAConfig.h"/>
|
||||||
|
|
||||||
<require idref="lufa.common"/>
|
<require idref="lufa.common"/>
|
||||||
<require idref="lufa.platform"/>
|
<require idref="lufa.platform"/>
|
||||||
<require idref="lufa.drivers.usb"/>
|
<require idref="lufa.drivers.usb"/>
|
||||||
<require idref="lufa.drivers.board"/>
|
<require idref="lufa.drivers.board"/>
|
||||||
</module>
|
</module>
|
||||||
</asf>
|
</asf>
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue