summaryrefslogtreecommitdiff
path: root/cortex_m/debug.h
diff options
context:
space:
mode:
Diffstat (limited to 'cortex_m/debug.h')
-rw-r--r--cortex_m/debug.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/cortex_m/debug.h b/cortex_m/debug.h
index 5375e70..8134829 100644
--- a/cortex_m/debug.h
+++ b/cortex_m/debug.h
@@ -18,6 +18,32 @@ struct ITM_reg_t {
volatile uint32_t TCR;
uint32_t _reserved4[76];
volatile uint32_t LSR;
+
+ // FIXME - only supports first 32 stimulus ports
+ void stim_blocking(unsigned stim, uint8_t data) {
+ if (!(this->TER[0] & (1<<stim))) {
+ return;
+ }
+ while (!(this->STIM[stim].u8 & 1))
+ ;
+ this->STIM[stim].u8 = data;
+ }
+ void stim_blocking(unsigned stim, uint16_t data) {
+ if (!(this->TER[0] & (1<<stim))) {
+ return;
+ }
+ while (!(this->STIM[stim].u16 & 1))
+ ;
+ this->STIM[stim].u16 = data;
+ }
+ void stim_blocking(unsigned stim, uint32_t data) {
+ if (!(this->TER[0] & (1<<stim))) {
+ return;
+ }
+ while (!(this->STIM[stim].u32 & 1))
+ ;
+ this->STIM[stim].u32 = data;
+ }
};
struct DWT_reg_t {