Swadge 2024 2.0.0
APIs to develop games for the Magfest Swadge
Loading...
Searching...
No Matches
hdw-ch32v003.h
Go to the documentation of this file.
1
6
7#ifndef _HDW_CH32V003_H_
8#define _HDW_CH32V003_H_
9
10#include <stdbool.h>
11#include <stdint.h>
12#include <driver/gpio.h>
13
14int initCh32v003(int swdio_pin);
15
23#define ch32v003RunBinaryAsset(asset) \
24 ({ \
25 size_t sz; \
26 const uint8_t* buf = cnfsGetFile(asset, &sz); \
27 int r = ch32v003WriteFlash(buf, sz); \
28 ch32v003Resume(); \
29 r; \
30 })
31
32// More nitty gritty functions
33
34int ch32v003WriteFlash(const uint8_t* buf, int sz);
35int ch32v003WriteMemory(const uint8_t* binary, uint32_t length, uint32_t address);
36int ch32v003ReadMemory(uint8_t* binary, uint32_t length, uint32_t address);
37int ch32v003GetReg(int regno, uint32_t* value);
38int ch32v003SetReg(int regno, uint32_t regValue);
39int ch32v003Resume();
41void ch32v003Teardown();
42
43// Only available on the emulator
44void ch32v003EmuDraw(int window_w, int window_h);
45
46#endif
int initCh32v003(int swdio_pin)
Definition hdw-ch32v003.c:86
int ch32v003WriteFlash(const uint8_t *buf, int sz)
Write data into the ch32v003's flash.
Definition hdw-ch32v003.c:190
void ch32v003Teardown()
Disables ch32v003 communications.
Definition hdw-ch32v003.c:349
int ch32v003Resume()
Cause the 003 to reboot and execute the program loaded into it.
Definition hdw-ch32v003.c:248
int ch32v003GetReg(int regno, uint32_t *value)
Read ch32v003 debug module registers.
Definition hdw-ch32v003.c:304
int ch32v003WriteMemory(const uint8_t *binary, uint32_t length, uint32_t address)
Write to memory on the ch32v003.
Definition hdw-ch32v003.c:117
void ch32v003CheckTerminal()
See if the ch32v003 has any pending printf to print on host processor.
Definition hdw-ch32v003.c:333
int ch32v003ReadMemory(uint8_t *binary, uint32_t length, uint32_t address)
Read data from the ch32v003's memory space into host processor memory space.
Definition hdw-ch32v003.c:272
int ch32v003SetReg(int regno, uint32_t regValue)
Write ch32v003 debug module registers.
Definition hdw-ch32v003.c:319
void ch32v003EmuDraw(int window_w, int window_h)