commit
d3a4adefc4
@ -0,0 +1,24 @@ |
|||||||
|
/*
|
||||||
|
Copyright 2022 David Falkner (falkner@martica.org) |
||||||
|
|
||||||
|
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 |
||||||
|
the Free Software Foundation, either version 2 of the License, or |
||||||
|
(at your option) any later version. |
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, |
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
GNU General Public License for more details. |
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License |
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#pragma once |
||||||
|
|
||||||
|
#define USE_SERIAL |
||||||
|
|
||||||
|
#define EE_HANDS |
||||||
|
|
||||||
|
#define KINETIC_SPEED |
@ -0,0 +1,266 @@ |
|||||||
|
{ |
||||||
|
"version": 1, |
||||||
|
"notes": "", |
||||||
|
"author": "David Falkner", |
||||||
|
"keyboard": "handwired/dactyl_manuform/5x6_5", |
||||||
|
"keymap": "via", |
||||||
|
"layout": "LAYOUT_5x6_5", |
||||||
|
"layers": [ |
||||||
|
[ |
||||||
|
"KC_ESC", |
||||||
|
"KC_1", |
||||||
|
"KC_2", |
||||||
|
"KC_3", |
||||||
|
"KC_4", |
||||||
|
"KC_5", |
||||||
|
"KC_6", |
||||||
|
"KC_7", |
||||||
|
"KC_8", |
||||||
|
"KC_9", |
||||||
|
"KC_0", |
||||||
|
"KC_MINS", |
||||||
|
"MO(1)", |
||||||
|
"KC_Q", |
||||||
|
"KC_W", |
||||||
|
"KC_E", |
||||||
|
"KC_R", |
||||||
|
"KC_T", |
||||||
|
"KC_Y", |
||||||
|
"KC_U", |
||||||
|
"KC_I", |
||||||
|
"KC_O", |
||||||
|
"KC_P", |
||||||
|
"MO(1)", |
||||||
|
"KC_CAPS", |
||||||
|
"KC_A", |
||||||
|
"KC_S", |
||||||
|
"KC_D", |
||||||
|
"KC_F", |
||||||
|
"KC_G", |
||||||
|
"KC_H", |
||||||
|
"KC_J", |
||||||
|
"KC_K", |
||||||
|
"KC_L", |
||||||
|
"KC_SCLN", |
||||||
|
"KC_QUOT", |
||||||
|
"KC_LSFT", |
||||||
|
"KC_Z", |
||||||
|
"KC_X", |
||||||
|
"KC_C", |
||||||
|
"KC_V", |
||||||
|
"KC_B", |
||||||
|
"KC_N", |
||||||
|
"KC_M", |
||||||
|
"KC_COMM", |
||||||
|
"KC_DOT", |
||||||
|
"KC_SLSH", |
||||||
|
"KC_RSFT", |
||||||
|
"KC_EQL", |
||||||
|
"KC_BSLS", |
||||||
|
"KC_BSPC", |
||||||
|
"KC_TAB", |
||||||
|
"KC_LCTL", |
||||||
|
"KC_RCTL", |
||||||
|
"KC_ENT", |
||||||
|
"KC_SPC", |
||||||
|
"KC_LBRC", |
||||||
|
"KC_RBRC", |
||||||
|
"KC_LGUI", |
||||||
|
"KC_LALT", |
||||||
|
"KC_RALT", |
||||||
|
"MO(2)" |
||||||
|
], |
||||||
|
[ |
||||||
|
"KC_TRNS", |
||||||
|
"KC_BRID", |
||||||
|
"KC_BRIU", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_SLEP", |
||||||
|
"KC_MRWD", |
||||||
|
"KC_MPLY", |
||||||
|
"KC_MFFD", |
||||||
|
"KC_MUTE", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_PSLS", |
||||||
|
"KC_P7", |
||||||
|
"KC_P8", |
||||||
|
"KC_P9", |
||||||
|
"KC_PMNS", |
||||||
|
"KC_INS", |
||||||
|
"KC_PGUP", |
||||||
|
"KC_UP", |
||||||
|
"KC_HOME", |
||||||
|
"KC_TILD", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_PCMM", |
||||||
|
"KC_PAST", |
||||||
|
"KC_P4", |
||||||
|
"KC_P5", |
||||||
|
"KC_P6", |
||||||
|
"KC_PPLS", |
||||||
|
"KC_DEL", |
||||||
|
"KC_LEFT", |
||||||
|
"KC_DOWN", |
||||||
|
"KC_RGHT", |
||||||
|
"KC_GRV", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_PEQL", |
||||||
|
"KC_P1", |
||||||
|
"KC_P2", |
||||||
|
"KC_P3", |
||||||
|
"KC_PENT", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_PGDN", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_END", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_P0", |
||||||
|
"KC_PDOT", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_VOLD", |
||||||
|
"KC_VOLU", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS" |
||||||
|
], |
||||||
|
[ |
||||||
|
"KC_TRNS", |
||||||
|
"KC_F1", |
||||||
|
"KC_F2", |
||||||
|
"KC_F3", |
||||||
|
"KC_F4", |
||||||
|
"KC_F5", |
||||||
|
"KC_F6", |
||||||
|
"KC_F7", |
||||||
|
"KC_F8", |
||||||
|
"KC_F9", |
||||||
|
"KC_F10", |
||||||
|
"KC_PAUS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_F11", |
||||||
|
"KC_F12", |
||||||
|
"KC_F13", |
||||||
|
"KC_F14", |
||||||
|
"KC_F15", |
||||||
|
"KC_F16", |
||||||
|
"KC_F17", |
||||||
|
"KC_F18", |
||||||
|
"KC_F19", |
||||||
|
"KC_F20", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_PSCR", |
||||||
|
"KC_SLCK", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_WH_U", |
||||||
|
"KC_WH_D", |
||||||
|
"KC_APP", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS" |
||||||
|
], |
||||||
|
[ |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS", |
||||||
|
"KC_TRNS" |
||||||
|
] |
||||||
|
] |
||||||
|
} |
@ -0,0 +1 @@ |
|||||||
|
VIA_ENABLE = yes
|
@ -0,0 +1,49 @@ |
|||||||
|
/* Copyright 2021 QMK
|
||||||
|
* |
||||||
|
* 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 |
||||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#include "bootloader.h" |
||||||
|
|
||||||
|
#include <ch.h> |
||||||
|
#include <hal.h> |
||||||
|
#include "wait.h" |
||||||
|
|
||||||
|
extern uint32_t __ram0_end__; |
||||||
|
|
||||||
|
/* This code should be checked whether it runs correctly on platforms */ |
||||||
|
# define SYMVAL(sym) (uint32_t)(((uint8_t *)&(sym)) - ((uint8_t *)0)) |
||||||
|
# define BOOTLOADER_MAGIC 0xDEADBEEF |
||||||
|
# define MAGIC_ADDR (unsigned long *)(SYMVAL(__ram0_end__) - 4) |
||||||
|
|
||||||
|
__attribute__((weak)) void bootloader_jump(void) { |
||||||
|
*MAGIC_ADDR = BOOTLOADER_MAGIC; // set magic flag => reset handler will jump into boot loader
|
||||||
|
NVIC_SystemReset(); |
||||||
|
} |
||||||
|
|
||||||
|
void enter_bootloader_mode_if_requested(void) { |
||||||
|
unsigned long *check = MAGIC_ADDR; |
||||||
|
if (*check == BOOTLOADER_MAGIC) { |
||||||
|
*check = 0; |
||||||
|
__set_CONTROL(0); |
||||||
|
__set_MSP(*(__IO uint32_t *)WB32_BOOTLOADER_ADDRESS); |
||||||
|
__enable_irq(); |
||||||
|
|
||||||
|
typedef void (*BootJump_t)(void); |
||||||
|
BootJump_t boot_jump = *(BootJump_t *)(WB32_BOOTLOADER_ADDRESS + 4); |
||||||
|
boot_jump(); |
||||||
|
while (1) |
||||||
|
; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue