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