9632360caa
* Add ARRAY_SIZE and CEILING utility macros * Apply a coccinelle patch to use ARRAY_SIZE * fix up some straggling items * Fix 'make test:secure' * Enhance ARRAY_SIZE macro to reject acting on pointers The previous definition would not produce a diagnostic for ``` int *p; size_t num_elem = ARRAY_SIZE(p) ``` but the new one will. * explicitly get definition of ARRAY_SIZE * Convert to ARRAY_SIZE when const is involved The following spatch finds additional instances where the array is const and the division is by the size of the type, not the size of the first element: ``` @ rule5a using "empty.iso" @ type T; const T[] E; @@ - (sizeof(E)/sizeof(T)) + ARRAY_SIZE(E) @ rule6a using "empty.iso" @ type T; const T[] E; @@ - sizeof(E)/sizeof(T) + ARRAY_SIZE(E) ``` * New instances of ARRAY_SIZE added since initial spatch run * Use `ARRAY_SIZE` in docs (found by grep) * Manually use ARRAY_SIZE hs_set is expected to be the same size as uint16_t, though it's made of two 8-bit integers * Just like char, sizeof(uint8_t) is guaranteed to be 1 This is at least true on any plausible system where qmk is actually used. Per my understanding it's universally true, assuming that uint8_t exists: https://stackoverflow.com/questions/48655310/can-i-assume-that-sizeofuint8-t-1 * Run qmk-format on core C files touched in this branch Co-authored-by: Stefan Kerkmann <karlk90@pm.me> |
||
---|---|---|
.. | ||
keymaps | ||
lib | ||
config.h | ||
info.json | ||
mercutio.c | ||
mercutio.h | ||
readme.md | ||
rules.mk |
Mercutio
A through-hole 40% keyboard kit featuring an encoder and oled display.
- Keyboard Maintainer: Kyle McCreery
- Hardware Supported: Mercutio v1.0
- Hardware Availability: Mercutio on MechWild
Make example for this keyboard (after setting up your build environment):
make mechwild/mercutio:default
Bootloader
Uses usbasploader, which has been preflashed on the atmega328p before being shipped to you. The usbasploader build available on hsgw's repository will work if you need to flash a new and unprepared replacement microcontroller. To flash this onto your fresh atmega328p, you will need to use the provided ISP headers and an external ISP programmer.
In order to put the board into bootloader mode you must first hold the boot button (labeled BOOT) and while holding the boot button, press the reset button (labeled RESET) and release it. Wait for another second, then release the boot button as well. The microcontroller will now be in bootloader mode if the bootloader is present and prepared correctly. Continue to flash as you normally would from this point (ie. QMK Toolbox). If you have autoflash enabled on QMK Toolbox, it will do it automatically now. Reset the board once more in order to use the new firmware (you can do this by unplugging and replugging it or by pressing and releasing the reset button.)
By default, Mercutio firmware has bootmagic enabled (lite). This means that instead of holding or pressing either of the small buttons, you are able to unplug the Mercutio, hold the top left button (tab), plug the Mercutio back in, and then release the top left button (tab). This will work the same to put the Mercutio into bootloader mode. For more information, see the bootmagic feature page. Reset the board once more in order to use the new firmware (you can do this by unplugging and replugging it or by pressing and releasing the reset button.)
See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide.