summaryrefslogtreecommitdiff
path: root/keyboards/mechwild/puckbuddy/ld
diff options
context:
space:
mode:
authorKyle McCreery <mccreery.kyle@gmail.com>2022-08-09 20:23:44 -0400
committerGitHub <noreply@github.com>2022-08-09 17:23:44 -0700
commit7019d0bce890ca97937d62e843adcdc9b9a0d1fd (patch)
treeae04349a4da5022bddade5229952fd2e8487501e /keyboards/mechwild/puckbuddy/ld
parent94b3efe92e192a20fda3cfa4fa0f200011bba924 (diff)
[Keyboard] MechWild Puckbuddy (#17161)
* Initial commit * testing modes * working on puckbuddy firmware. This is all working for now but need to clean it up and personalize it. * needs to be updated from vial build * prepping for PR * added rgb mode cycling to fn1 since it isn't on the encoder for these maps * readme written in preparation for pr * reverting driver print line * Removed old reference to OBE in the readme from copypaste error * applying changes based on review * applying changes from review * Update keyboards/mechwild/puckbuddy/puckbuddy.c * trailing whitespaces removed * added clear screen condition for switching back to name rendering * Added uf2 keymap and fixed display glitch for the logo render art. * Removed extra definition of FEE_PAGE_BASE_ADDRESS * Removed the uf2 keymap and made it automatic when selecting bootloader instead * Fixed the bad bootloader check * moved the uf2 check from rules.mk to post_rules.mk to satisfy lint * changing it back to stm32-dfu bootloader default * Fixed RGBLIGHT enable oversight. * Added persistent dynamic tapping configuration for the cirque touchpad tap term * new lines at end of files for formatting and diff sanity * changing default bootloader back to stm32-dfu * Had to completely redefine the tap keycodes instead of using the DT_UP and DT_DOWN keycodes because I was not able to specify them easily in the via/vial configs and this allows me to keep the original functionality instead of tying it to eeprom like these are. * Added tap toggling keycodes to quick enable and disable the tapping term * working out an issue where the tap status keeps turning to off on power cycle * correcting submodule garbo * Fixed display issue and rewrote TAP config approach to make it a little easier to control * removing backup puckbuddy.c code * Added some comment, removed some commented out old code, removed trailing whitespace * Changed to handle tinyuf2 by expecting emulated eeprom so that adding other forms of eeprom can be handled for the memory offset separately, and added user oled conditional inside the keyboard oled code block * Updated default keymaps to have the tap and dpi keys on by default * Apply suggestions from code review * Apply suggestions from code review
Diffstat (limited to 'keyboards/mechwild/puckbuddy/ld')
-rw-r--r--keyboards/mechwild/puckbuddy/ld/STM32F401xE.ld88
1 files changed, 88 insertions, 0 deletions
diff --git a/keyboards/mechwild/puckbuddy/ld/STM32F401xE.ld b/keyboards/mechwild/puckbuddy/ld/STM32F401xE.ld
new file mode 100644
index 0000000000..daec7d8583
--- /dev/null
+++ b/keyboards/mechwild/puckbuddy/ld/STM32F401xE.ld
@@ -0,0 +1,88 @@
+/*
+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/*
+ * STM32F401xE memory setup.
+ */
+MEMORY
+{
+ flash0 (rx) : org = 0x08000000, len = 16k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */
+ flash1 (rx) : org = 0x08004000, len = 16k
+ flash2 (rx) : org = 0x08008000, len = 16k /* emulated eeprom */
+ flash3 (rx) : org = 0x0800C000, len = 16k
+ flash4 (rx) : org = 0x08010000, len = 512k - 64k
+ flash5 (rx) : org = 0x00000000, len = 0
+ flash6 (rx) : org = 0x00000000, len = 0
+ flash7 (rx) : org = 0x00000000, len = 0
+ ram0 (wx) : org = 0x20000000, len = 96k
+ ram1 (wx) : org = 0x00000000, len = 0
+ ram2 (wx) : org = 0x00000000, len = 0
+ ram3 (wx) : org = 0x00000000, len = 0
+ ram4 (wx) : org = 0x00000000, len = 0
+ ram5 (wx) : org = 0x00000000, len = 0
+ ram6 (wx) : org = 0x00000000, len = 0
+ ram7 (wx) : org = 0x00000000, len = 0
+}
+
+/* For each data/text section two region are defined, a virtual region
+ and a load region (_LMA suffix).*/
+
+/* Flash region to be used for exception vectors.*/
+REGION_ALIAS("VECTORS_FLASH", flash4);
+REGION_ALIAS("VECTORS_FLASH_LMA", flash4);
+
+/* Flash region to be used for constructors and destructors.*/
+REGION_ALIAS("XTORS_FLASH", flash4);
+REGION_ALIAS("XTORS_FLASH_LMA", flash4);
+
+/* Flash region to be used for code text.*/
+REGION_ALIAS("TEXT_FLASH", flash4);
+REGION_ALIAS("TEXT_FLASH_LMA", flash4);
+
+/* Flash region to be used for read only data.*/
+REGION_ALIAS("RODATA_FLASH", flash4);
+REGION_ALIAS("RODATA_FLASH_LMA", flash4);
+
+/* Flash region to be used for various.*/
+REGION_ALIAS("VARIOUS_FLASH", flash4);
+REGION_ALIAS("VARIOUS_FLASH_LMA", flash4);
+
+/* Flash region to be used for RAM(n) initialization data.*/
+REGION_ALIAS("RAM_INIT_FLASH_LMA", flash4);
+
+/* RAM region to be used for Main stack. This stack accommodates the processing
+ of all exceptions and interrupts.*/
+REGION_ALIAS("MAIN_STACK_RAM", ram0);
+
+/* RAM region to be used for the process stack. This is the stack used by
+ the main() function.*/
+REGION_ALIAS("PROCESS_STACK_RAM", ram0);
+
+/* RAM region to be used for data segment.*/
+REGION_ALIAS("DATA_RAM", ram0);
+REGION_ALIAS("DATA_RAM_LMA", flash4);
+
+/* RAM region to be used for BSS segment.*/
+REGION_ALIAS("BSS_RAM", ram0);
+
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
+/* Generic rules inclusion.*/
+INCLUDE rules.ld
+
+/* TinyUF2 bootloader reset support */
+_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */