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
.vscode
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
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
.editorconfig
.gitattributes
.gitignore
.gitmodules [Core] Add Raspberry Pi RP2040 support (#14877) 2022-06-30 13:19:27 +02:00
Dockerfile
Doxyfile
LICENSE
Makefile [Core] Add Raspberry Pi RP2040 support (#14877) 2022-06-30 13:19:27 +02:00
Vagrantfile
doxygen-todo
license_GPLv2.md
license_GPLv3.md
license_Modified_BSD.md
nose2.cfg
paths.mk
readme.md
requirements-dev.txt
requirements.txt
setup.cfg
shell.nix

readme.md

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.