Files
wch-uf2-example/minimal-payload/main.c
T
2024-04-12 18:05:08 +01:00

28 lines
819 B
C

#include <stdint.h>
#pragma GCC diagnostic ignored "-Wprio-ctor-dtor"
__attribute__((constructor(0))) static void setup_qingke() {
asm volatile(
// Undocumented "Configure pipelining and instruction prediction"
"li t0, 0x1f\n"
"csrw 0xbc0, t0\n"
);
}
#define R32_RCC_APB2PCENR (*(volatile uint32_t*)0x40021018)
#define R32_GPIOA_CFGLR (*(volatile uint32_t*)0x40010800)
#define R32_GPIOA_BSHR (*(volatile uint32_t*)0x40010810)
int main(void) {
R32_RCC_APB2PCENR |= 1 << 2;
R32_GPIOA_CFGLR = (R32_GPIOA_CFGLR & ~0xf) | (0b0010 << 0);
while (1) {
R32_GPIOA_BSHR = 1 << 0;
for (int i = 0; i < 500000; i++)
asm volatile("");
R32_GPIOA_BSHR = 1 << 16;
for (int i = 0; i < 500000; i++)
asm volatile("");
}
}