1
0
Fork 0

Vitepress conversion of docs. (#23795)

This commit is contained in:
Nick Brassel 2024-05-30 12:00:41 +10:00 committed by GitHub
parent 395766657f
commit 6ef9717288
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
357 changed files with 3611 additions and 24208 deletions

View file

@ -1,4 +1,4 @@
# Arm/ChibiOS Early Initialization :id=chibios-early-init
# Arm/ChibiOS Early Initialization {#chibios-early-init}
This page describes a part of QMK that is a somewhat advanced concept, and is only relevant to keyboard designers.
@ -6,7 +6,7 @@ QMK uses ChibiOS as the underlying layer to support a multitude of Arm-based dev
Older QMK revisions required duplication of these board definitions inside your keyboard's directory in order to override such early initialization points; this is now abstracted into the following APIs, and allows usage of the board definitions supplied with ChibiOS itself. Check `<qmk_firmware>/lib/chibios/os/hal/boards` for the list of official definitions. If your keyboard needs extra initialization at a very early stage, consider providing keyboard-level overrides of the following APIs instead of duplicating the board definitions:
## `early_hardware_init_pre()` :id=early-hardware-init-pre
## `early_hardware_init_pre()` {#early-hardware-init-pre}
The function `early_hardware_init_pre` is the earliest possible code that can be executed by a keyboard firmware. This is intended as a replacement for the ChibiOS board definition's `__early_init` function, and is the equivalent of executing at the start of the function.
@ -32,7 +32,7 @@ void early_hardware_init_pre(void) {
}
```
## `early_hardware_init_post()` :id=early-hardware-init-post
## `early_hardware_init_post()` {#early-hardware-init-post}
The function `early_hardware_init_post` is the next earliest possible code that can be executed by a keyboard firmware. This is executed after RAM has been cleared, and clocks and GPIOs are configured. This is intended as a replacement for the ChibiOS board definition's `__early_init` function, and is the equivalent of executing at the end of the function.
@ -48,7 +48,7 @@ void early_hardware_init_post(void) {
}
```
## `board_init()` :id=board-init
## `board_init()` {#board-init}
The function `board_init` is executed directly after the ChibiOS initialization routines have completed. At this stage, all normal low-level functionality should be available for use (including timers and delays), with the restriction that USB is not yet connected. This is intended as a replacement for the ChibiOS board definition's `boardInit` function.