Go to file
Stefan Kerkmann 3f5dc47296
[Core] Use polled waiting on ChibiOS platforms that support it (#17607)
* Use polled waiting on platforms that support it

Due to context switching overhead waiting a very short amount of time on
a sleeping thread is often not accurate and in fact not usable for timing
critical usage i.e. in a driver. Thus we use polled waiting for ranges
in the us range on platforms that support it instead. The fallback is
the thread sleeping mechanism.

This includes:

* ARM platforms with CYCCNT register (ARMv7, ARMv8) this is
  incremented at CPU clock frequency
* GD32VF103 RISC-V port with CSR_MCYCLE register this is incremented at
  CPU clock frequency
* RP2040 ARMv6 port which uses the integrated timer peripheral which is
  incremented with a fixed 1MHz frequency

* Use wait_us() instead of chSysPolledDelayX

...as it is powered by busy waiting now.

* Add chibios waiting methods test bench
2022-07-11 15:17:05 +02:00
.github Bump JamesIves/github-pages-deploy-action from 3.7.1 to 4.3.4 (#17497) 2022-06-29 16:45:09 +10:00
.vscode remove Bracket Pair Colorizer recommendation (#14816) 2021-10-15 11:54:19 +11:00
builddefs [Core] Update mpaland/printf to eyalroz/printf fork (#16163) 2022-07-07 09:27:50 +02:00
data Add kb2040 and sparkfun rp2040 converters (#17514) 2022-07-06 19:27:15 +01:00
docs Add converter docs (#17593) 2022-07-08 22:49:16 +01:00
drivers Fixup SPI. (#17534) 2022-07-05 22:41:35 +02:00
keyboards [Core] Use polled waiting on ChibiOS platforms that support it (#17607) 2022-07-11 15:17:05 +02:00
layouts Merge remote-tracking branch 'origin/master' into develop 2022-07-04 20:49:23 +00:00
lib More DD encoder fixes (#17615) 2022-07-11 10:51:39 +01:00
platforms [Core] Use polled waiting on ChibiOS platforms that support it (#17607) 2022-07-11 15:17:05 +02:00
quantum [Fix] Patches after printf library update (#17584) 2022-07-07 14:14:09 +02:00
tests tap-dance: Rename tests so that tap_dance is used consistently (#17396) 2022-06-16 08:05:27 +02:00
tmk_core [Core] Add Raspberry Pi RP2040 support (#14877) 2022-06-30 13:19:27 +02:00
users Allow for keymaps array to be implemented in a file other than $(KEYMAP_C) (#17559) 2022-07-05 08:58:35 +10:00
util Merge remote-tracking branch 'origin/master' into develop 2022-07-02 14:10:26 +00:00
.clang-format Clang-format tweaks (#15906) 2022-02-11 20:00:34 -08:00
.editorconfig QMK CLI and JSON keymap support (#6176) 2019-07-15 12:14:27 -07:00
.gitattributes eol=lf, where appropriate (#15752) 2022-01-05 21:56:31 +00:00
.gitignore Add Djinn. (#17382) 2022-06-20 14:20:56 +10:00
.gitmodules [Core] Add Raspberry Pi RP2040 support (#14877) 2022-06-30 13:19:27 +02:00
Dockerfile move everything from qmkfm/base_container to qmkfm/qmk_cli (#14230) 2021-08-29 16:41:56 -07:00
Doxyfile Internal docs generation updates (#16411) 2022-02-21 15:47:44 +00:00
doxygen-todo Remove SERIAL_LINK feature (#14727) 2021-10-07 12:32:05 +11:00
LICENSE add an explicit lisence file for github to pickup 2017-11-13 20:50:54 -05:00
license_GPLv2.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
license_GPLv3.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
license_Modified_BSD.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
Makefile [Core] Add Raspberry Pi RP2040 support (#14877) 2022-06-30 13:19:27 +02:00
nose2.cfg Setup a python test framework 2019-09-07 07:58:41 -07:00
paths.mk Migrate more makefile utilities to builddefs sub-directory (#16002) 2022-02-10 09:45:51 -08:00
readme.md Branch point after 2022-05-28 Breaking Change. 2022-05-29 08:16:00 +10:00
requirements-dev.txt Macros in JSON keymaps (#14374) 2021-11-22 11:11:35 -08:00
requirements.txt Quantum Painter (#10174) 2022-04-13 18:00:18 +10:00
setup.cfg Quantum Painter (#10174) 2022-04-13 18:00:18 +10:00
shell.nix Nix shell updates (#17243) 2022-05-31 14:08:23 +10:00
Vagrantfile move everything from qmkfm/base_container to qmkfm/qmk_cli (#14230) 2021-08-29 16:41:56 -07:00

This is the develop branch!

See the Breaking Changes document for more information.

Quantum Mechanical Keyboard Firmware

Current Version Discord Docs Status GitHub contributors GitHub forks

This is a keyboard firmware based on the tmk_keyboard firmware with some useful features for Atmel AVR and ARM controllers, and more specifically, the OLKB product line, the ErgoDox EZ keyboard, and the Clueboard product line.

Documentation

The docs are powered by Docsify and hosted on GitHub. They are also viewable offline; see Previewing the Documentation for more details.

You can request changes by making a fork and opening a pull request, or by clicking the "Edit this page" link at the bottom of any page.

Supported Keyboards

The project also includes community support for lots of other keyboards.

Maintainers

QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, Hasu. The OLKB product firmwares are maintained by Jack Humbert, the Ergodox EZ by ZSA Technology Labs, the Clueboard by Zach White, and the Atreus by Phil Hagelberg.

Official Website

qmk.fm is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK.