From 43c63a7bc2d1a30f594241f538a70f21832fdd19 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 10 Mar 2021 19:41:02 +0100 Subject: [PATCH 01/16] Add Nucleo-8S207K8 and Nucleo-8S208RB Also corrects the logic that derives the value for -p switch in the stm8flash invocation (would do 'stm8s207?8' and not 'stm8s207k8') --- boards/nucleo_8s207k8.json | 25 +++++++++++++++++++++++++ boards/nucleo_8s208rb.json | 24 ++++++++++++++++++++++++ builder/main.py | 5 ++++- 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 boards/nucleo_8s207k8.json create mode 100644 boards/nucleo_8s208rb.json diff --git a/boards/nucleo_8s207k8.json b/boards/nucleo_8s207k8.json new file mode 100644 index 0000000..6dd6b1e --- /dev/null +++ b/boards/nucleo_8s207k8.json @@ -0,0 +1,25 @@ +{ + "build": { + "core": "sduino", + "extra_flags": "-DSTM8S_NUCLEO_207K8 -DSTM8S207", + "f_cpu": "16000000L", + "cpu": "stm8", + "mcu": "stm8s207k8t6" + }, + "frameworks": [ + "spl" + ], + "upload": { + "maximum_ram_size": 6144, + "maximum_size": 65536, + "protocol": "stlinkv21", + "protocols": [ + "stlinkv21", + "serial" + ], + "stm8flash_target": "stm8s207k8" + }, + "name": "NUCLEO-8S207K8", + "url": "https://www.st.com/en/evaluation-tools/nucleo-8s207k8.html", + "vendor": "STMicroelectronics" +} \ No newline at end of file diff --git a/boards/nucleo_8s208rb.json b/boards/nucleo_8s208rb.json new file mode 100644 index 0000000..5e11ccf --- /dev/null +++ b/boards/nucleo_8s208rb.json @@ -0,0 +1,24 @@ +{ + "build": { + "core": "sduino", + "extra_flags": "-DSTM8S_NUCLEO_208RB -DSTM8S208", + "f_cpu": "16000000L", + "cpu": "stm8", + "mcu": "stm8s208rbt6" + }, + "frameworks": [ + "spl" + ], + "upload": { + "maximum_ram_size": 6144, + "maximum_size": 131072, + "protocol": "stlinkv21", + "protocols": [ + "stlinkv21", + "serial" + ] + }, + "name": "NUCLEO-8S208RB", + "url": "https://www.st.com/en/evaluation-tools/nucleo-8s208rb.html", + "vendor": "STMicroelectronics" +} \ No newline at end of file diff --git a/builder/main.py b/builder/main.py index 0ab6ff7..e854a7a 100644 --- a/builder/main.py +++ b/builder/main.py @@ -148,11 +148,14 @@ def _ldflags_for_hex(env, ldflags): elif "stlink" in upload_protocol: mcu = board_config.get("build.mcu") + # either derive value for the "part" switch from MCU name, or use the value + # in the board manifest, in cases in which the derivation would be wrong. + flash_target = board_config.get("upload.stm8flash_target", mcu[:8] + "?" + mcu[9]) env.Replace( UPLOADER="stm8flash", UPLOADERFLAGS=[ "-c", "$UPLOAD_PROTOCOL", - "-p", "%s" % mcu[:8] + "?" + mcu[9], + "-p", "%s" % flash_target, "-s", "flash", "-w" ], UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCE' From 28339c36ca92e08cc3d37977403b8185466ebbc3 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 10 Mar 2021 19:43:53 +0100 Subject: [PATCH 02/16] Use correct LED for Nucleo boards in spl-blink example Both the boards have the user-LED connected to PC5 per board manual. E.g. https://www.st.com/resource/en/user_manual/dm00489875-stm8-nucleo32-board-mb1442-stmicroelectronics.pdf --- examples/spl-blink/platformio.ini | 10 ++++++++++ examples/spl-blink/src/main.c | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/examples/spl-blink/platformio.ini b/examples/spl-blink/platformio.ini index 10ae4d6..1fd27aa 100644 --- a/examples/spl-blink/platformio.ini +++ b/examples/spl-blink/platformio.ini @@ -21,3 +21,13 @@ board = s8uno platform = ststm8 framework = spl board = mb208 + +[env:nucleo_8s207k8] +platform = ststm8 +board = nucleo_8s207k8 +framework = spl + +[env:nucleo_8s208rb] +platform = ststm8 +board = nucleo_8s208rb +framework = spl diff --git a/examples/spl-blink/src/main.c b/examples/spl-blink/src/main.c index 7327eac..eee45d9 100644 --- a/examples/spl-blink/src/main.c +++ b/examples/spl-blink/src/main.c @@ -38,8 +38,14 @@ /* Private define ------------------------------------------------------------*/ /* Evalboard I/Os configuration */ +/* automatically use built-in LED for known nucleo boards */ +#if defined(STM8S_NUCLEO_208RB) || defined(STM8S_NUCLEO_207K8) +#define LED_GPIO_PORT (GPIOC) +#define LED_GPIO_PINS (GPIO_PIN_5) +#else #define LED_GPIO_PORT (GPIOG) #define LED_GPIO_PINS (GPIO_PIN_3 | GPIO_PIN_2 | GPIO_PIN_1 | GPIO_PIN_0) +#endif /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ From 1e7adca491de8a171cc3524adf23d4d1f33a1dd4 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 14 Mar 2021 19:20:13 +0100 Subject: [PATCH 03/16] Add SVD files --- misc/svd/STM8S103F3.svd | 6130 +++++++++++++++++++++++++++++++ misc/svd/STM8S105C6.svd | 7320 +++++++++++++++++++++++++++++++++++++ misc/svd/STM8S105K4.svd | 7320 +++++++++++++++++++++++++++++++++++++ misc/svd/STM8S105K6.svd | 7320 +++++++++++++++++++++++++++++++++++++ misc/svd/STM8S207K8.svd | 7146 ++++++++++++++++++++++++++++++++++++ misc/svd/STM8S208MB.svd | 7561 +++++++++++++++++++++++++++++++++++++++ misc/svd/STM8S208RB.svd | 7561 +++++++++++++++++++++++++++++++++++++++ 7 files changed, 50358 insertions(+) create mode 100644 misc/svd/STM8S103F3.svd create mode 100644 misc/svd/STM8S105C6.svd create mode 100644 misc/svd/STM8S105K4.svd create mode 100644 misc/svd/STM8S105K6.svd create mode 100644 misc/svd/STM8S207K8.svd create mode 100644 misc/svd/STM8S208MB.svd create mode 100644 misc/svd/STM8S208RB.svd diff --git a/misc/svd/STM8S103F3.svd b/misc/svd/STM8S103F3.svd new file mode 100644 index 0000000..8410d77 --- /dev/null +++ b/misc/svd/STM8S103F3.svd @@ -0,0 +1,6130 @@ + + + STMicroelectronics + STM8S103F3 + 1.0 + STM8S/STM8AF, low density + Mainstream Access line 8-bit MCU with 8 Kbytes Flash, 16 MHz CPU, integrated EEPROM + + other + r1p0 + big + false + false + false + false + false + false + false + false + false + 4 + + 8 + 8 + 8 + read-write + + + ADC1 + 0x53E0 + + 0x0000 + 20 + registers + + + 0x0020 + 16 + registers + + ADC1 + ADC + + + DB0RH + ADC data buffer registers + 8 + 0x0000 + 0x00 + + + DBH + 0 + 8 + + + + + DB0RL + ADC data buffer registers + 8 + 0x0001 + 0x00 + + + DL + 0 + 8 + + + + + DB1RH + ADC data buffer registers + 8 + 0x0002 + 0x00 + + + DBH + 0 + 8 + + + + + DB1RL + ADC data buffer registers + 8 + 0x0003 + 0x00 + + + DL + 0 + 8 + + + + + DB2RH + ADC data buffer registers + 8 + 0x0004 + 0x00 + + + DBH + 0 + 8 + + + + + DB2RL + ADC data buffer registers + 8 + 0x0005 + 0x00 + + + DL + 0 + 8 + + + + + DB3RH + ADC data buffer registers + 8 + 0x0006 + 0x00 + + + DBH + 0 + 8 + + + + + DB3RL + ADC data buffer registers + 8 + 0x0007 + 0x00 + + + DL + 0 + 8 + + + + + DB4RH + ADC data buffer registers + 8 + 0x0008 + 0x00 + + + DBH + 0 + 8 + + + + + DB4RL + ADC data buffer registers + 8 + 0x0009 + 0x00 + + + DL + 0 + 8 + + + + + DB5RH + ADC data buffer registers + 8 + 0x000A + 0x00 + + + DBH + 0 + 8 + + + + + DB5RL + ADC data buffer registers + 8 + 0x000B + 0x00 + + + DL + 0 + 8 + + + + + DB6RH + ADC data buffer registers + 8 + 0x000C + 0x00 + + + DBH + 0 + 8 + + + + + DB6RL + ADC data buffer registers + 8 + 0x000D + 0x00 + + + DL + 0 + 8 + + + + + DB7RH + ADC data buffer registers + 8 + 0x000E + 0x00 + + + DBH + 0 + 8 + + + + + DB7RL + ADC data buffer registers + 8 + 0x000F + 0x00 + + + DL + 0 + 8 + + + + + DB8RH + ADC data buffer registers + 8 + 0x0010 + 0x00 + + + DBH + 0 + 8 + + + + + DB8RL + ADC data buffer registers + 8 + 0x0011 + 0x00 + + + DL + 0 + 8 + + + + + DB9RH + ADC data buffer registers + 8 + 0x0012 + 0x00 + + + DBH + 0 + 8 + + + + + DB9RL + ADC data buffer registers + 8 + 0x0013 + 0x00 + + + DL + 0 + 8 + + + + + CSR + ADC control/status register + 8 + 0x0020 + 0x00 + + + CH + 0 + 4 + + + AWDIE + 4 + 1 + + + EOCIE + 5 + 1 + + + AWD + 6 + 1 + + + EOC + 7 + 1 + + + + + CR1 + ADC configuration register 1 + 8 + 0x0021 + 0x00 + + + ADON + 0 + 1 + + + CONT + 1 + 1 + + + SPSEL + 4 + 3 + + + + + CR2 + ADC configuration register 2 + 8 + 0x0022 + 0x00 + + + SCAN + 1 + 1 + + + ALIGN + 3 + 1 + + + EXTSEL + 4 + 2 + + + EXTTRIG + 6 + 1 + + + + + CR3 + ADC configuration register 3 + 8 + 0x0023 + 0x00 + + + OVR + 6 + 1 + + + DBUF + 7 + 1 + + + + + DRH + ADC data register high + 8 + 0x0024 + 0x00 + + + DH + 0 + 8 + + + + + DRL + ADC data register low + 8 + 0x0025 + 0x00 + + + DL + 0 + 8 + + + + + TDRH + ADC Schmitt trigger disable register high + 8 + 0x0026 + 0x00 + + + TD + 0 + 8 + + + + + TDRL + ADC Schmitt trigger disable register low + 8 + 0x0027 + 0x00 + + + TL + 0 + 8 + + + + + HTRH + ADC high threshold register high + 8 + 0x0028 + 0x03 + + + HT + 0 + 8 + + + + + HTRL + ADC high threshold register low + 8 + 0x0029 + 0xFF + + + HT + 0 + 2 + + + + + LTRH + ADC low threshold register high + 8 + 0x002A + 0x00 + + + LT + 0 + 8 + + + + + LTRL + ADC low threshold register low + 8 + 0x002B + 0x00 + + + LT + 0 + 2 + + + + + AWSRH + ADC analog watchdog status register high + 8 + 0x002C + 0x00 + + + AWS8 + 0 + 1 + + + AWS9 + 1 + 1 + + + + + AWSRL + ADC analog watchdog status register low + 8 + 0x002D + 0x00 + + + AWS0 + 0 + 1 + + + AWS1 + 1 + 1 + + + AWS2 + 2 + 1 + + + AWS3 + 3 + 1 + + + AWS4 + 4 + 1 + + + AWS5 + 5 + 1 + + + AWS6 + 6 + 1 + + + AWS7 + 7 + 1 + + + + + AWCRH + ADC analog watchdog control register high + 8 + 0x002E + 0x00 + + + AWEN8 + 0 + 1 + + + AWEN9 + 1 + 1 + + + + + AWCRL + ADC analog watchdog control register low + 8 + 0x002F + 0x00 + + + AWEN0 + 0 + 1 + + + AWEN1 + 1 + 1 + + + AWEN2 + 2 + 1 + + + AWEN3 + 3 + 1 + + + AWEN4 + 4 + 1 + + + AWEN5 + 5 + 1 + + + AWEN6 + 6 + 1 + + + AWEN7 + 7 + 1 + + + + + + Interrupt_IRQ22 + Interrupt_IRQ22 interrupt + 22 + + + + AWU + 0x50F0 + + 0x0000 + 3 + registers + + AWU + AWU + + + CSR1 + AWU control/status register 1 + 8 + 0x0000 + 0x00 + + + MSR + 0 + 1 + + + AWUEN + 4 + 1 + + + AWUF + 5 + 1 + + + + + APR + AWU asynchronous prescaler buffer register + 8 + 0x0001 + 0x3F + + + APR + 0 + 6 + + + + + TBR + AWU timebase selection register + 8 + 0x0002 + 0x00 + + + AWUTB + 0 + 4 + + + + + + Interrupt_IRQ1 + Interrupt_IRQ1 interrupt + 1 + + + + BEEP + 0x50F3 + + 0x0000 + 1 + registers + + BEEP + BEEP + + + CSR + BEEP control/status register + 8 + 0x0000 + 0x1F + + + BEEPDIV + 0 + 5 + + + BEEPEN + 5 + 1 + + + BEEPSEL + 6 + 2 + + + + + + + CLK + 0x50C0 + + 0x0000 + 2 + registers + + + 0x0003 + 11 + registers + + CLK + CLK + + + ICKR + Internal clock control register + 8 + 0x0000 + 0x01 + + + HSIEN + 0 + 1 + + + HSIRDY + 1 + 1 + + + FHW + 2 + 1 + + + LSIEN + 3 + 1 + + + LSIRDY + 4 + 1 + + + REGAH + 5 + 1 + + + + + ECKR + External clock control register + 8 + 0x0001 + 0x00 + + + HSEEN + 0 + 1 + + + HSERDY + 1 + 1 + + + + + CMSR + Clock master status register + 8 + 0x0003 + 0xE1 + + + CKM + 0 + 8 + + + + + SWR + Clock master switch register + 8 + 0x0004 + 0xE1 + + + SWI + 0 + 8 + + + + + SWCR + Clock switch control register + 8 + 0x0005 + 0x00 + + + SWBSY + 0 + 1 + + + SWEN + 1 + 1 + + + SWIEN + 2 + 1 + + + SWIF + 3 + 1 + + + + + CKDIVR + Clock divider register + 8 + 0x0006 + 0x18 + + + CPUDIV + 0 + 3 + + + HSIDIV + 3 + 2 + + + + + PCKENR1 + Peripheral clock gating register 1 + 8 + 0x0007 + 0xFF + + + PCKEN + 0 + 8 + + + + + CSSR + Clock security system register + 8 + 0x0008 + 0x00 + + + CSSEN + 0 + 1 + + + AUX + 1 + 1 + + + CSSDIE + 2 + 1 + + + CSSD + 3 + 1 + + + + + CCOR + Configurable clock control register + 8 + 0x0009 + 0x00 + + + CCOEN + 0 + 1 + + + CCOSEL + 1 + 4 + + + CCORDY + 5 + 1 + + + CC0BSY + 6 + 1 + + + + + PCKENR2 + Peripheral clock gating register 2 + 8 + 0x000A + 0xFF + + + PCKEN2 + 0 + 8 + + + + + CANCCR + CAN clock control register + 8 + 0x000B + 0x00 + + + CANDIV + 0 + 3 + + + + + HSITRIMR + HSI clock calibration trimming register + 8 + 0x000C + 0x00 + + + HSITRIM + 0 + 4 + + + + + SWIMCCR + SWIM clock control register + 8 + 0x000D + 0x00 + + + SWIMCLK + 0 + 1 + + + + + + Interrupt_IRQ2 + Interrupt_IRQ2 interrupt + 2 + + + + CPU + 0x7F00 + + 0x0000 + 11 + registers + + + 0x0060 + 1 + registers + + CPU + CPU + + + A + Accumulator + 8 + 0x0000 + 0x00 + + + PCE + Program counter extended + 8 + 0x0001 + 0x00 + + + PCH + Program counter high + 8 + 0x0002 + 0x00 + + + PCL + Program counter low + 8 + 0x0003 + 0x00 + + + XH + X index register high + 8 + 0x0004 + 0x00 + + + XL + X index register low + 8 + 0x0005 + 0x00 + + + YH + Y index register high + 8 + 0x0006 + 0x00 + + + YL + Y index register low + 8 + 0x0007 + 0x00 + + + SPH + Stack pointer high + 8 + 0x0008 + 0x03 + + + SPL + Stack pointer low + 8 + 0x0009 + 0xFF + + + CCR + Condition code register + 8 + 0x000A + 0x28 + + + C + 0 + 1 + + + Z + 1 + 1 + + + NF + 2 + 1 + + + I0 + 3 + 1 + + + H + 4 + 1 + + + I1 + 5 + 1 + + + V + 7 + 1 + + + + + CFG_GCR + Global configuration register + 8 + 0x0060 + 0x00 + + + SWO + 0 + 1 + + + AL + 1 + 1 + + + + + + + DM + 0x7F90 + + 0x0000 + 11 + registers + + DM + DM + + + BK1RE + DM breakpoint 1 register extended byte + 8 + 0x0000 + 0xFF + + + BK1RH + DM breakpoint 1 register high byte + 8 + 0x0001 + 0xFF + + + BK1RL + DM breakpoint 1 register low byte + 8 + 0x0002 + 0xFF + + + BK2RE + DM breakpoint 2 register extended byte + 8 + 0x0003 + 0xFF + + + BK2RH + DM breakpoint 2 register high byte + 8 + 0x0004 + 0xFF + + + BK2RL + DM breakpoint 2 register low byte + 8 + 0x0005 + 0xFF + + + CR1 + DM debug module control register 1 + 8 + 0x0006 + 0x00 + + + CR2 + DM debug module control register 2 + 8 + 0x0007 + 0x00 + + + CSR1 + DM debug module control/status register 1 + 8 + 0x0008 + 0x10 + + + CSR2 + DM debug module control/status register 2 + 8 + 0x0009 + 0x00 + + + ENFCTR + DM enable function register + 8 + 0x000A + 0xFF + + + + + FLASH + 0x505A + + 0x0000 + 6 + registers + + + 0x0008 + 1 + registers + + + 0x000a + 1 + registers + + FLASH + FLASH + + + CR1 + Flash control register 1 + 8 + 0x0000 + 0x00 + + + FIX + 0 + 1 + + + IE + 1 + 1 + + + AHALT + 2 + 1 + + + HALT + 3 + 1 + + + + + CR2 + Flash control register 2 + 8 + 0x0001 + 0x00 + + + PRG + 0 + 1 + + + FPRG + 4 + 1 + + + ERASE + 5 + 1 + + + WPRG + 6 + 1 + + + OPT + 7 + 1 + + + + + NCR2 + Flash complementary control register 2 + 8 + 0x0002 + 0xFF + + + NPRG + 0 + 1 + + + NFPRG + 4 + 1 + + + NERASE + 5 + 1 + + + NWPRG + 6 + 1 + + + NOPT + 7 + 1 + + + + + FPR + Flash protection register + 8 + 0x0003 + 0x00 + + + WPB0 + 0 + 1 + + + WPB1 + 1 + 1 + + + WPB2 + 2 + 1 + + + WPB3 + 3 + 1 + + + WPB4 + 4 + 1 + + + WPB5 + 5 + 1 + + + + + NFPR + Flash complementary protection register + 8 + 0x0004 + 0xFF + + + NWPB0 + 0 + 1 + + + NWPB1 + 1 + 1 + + + NWPB2 + 2 + 1 + + + NWPB3 + 3 + 1 + + + NWPB4 + 4 + 1 + + + NWPB5 + 5 + 1 + + + + + IAPSR + Flash in-application programming status register + 8 + 0x0005 + 0x00 + + + WR_PG_DIS + 0 + 1 + + + PUL + 1 + 1 + + + EOP + 2 + 1 + + + DUL + 3 + 1 + + + HVOFF + 6 + 1 + + + + + PUKR + Flash program memory unprotection register + 8 + 0x0008 + 0x00 + + + MASS_PRG + 0 + 8 + + + + + DUKR + Data EEPROM unprotection register + 8 + 0x000A + 0x00 + + + MASS_DATA + 0 + 8 + + + + + + Interrupt_IRQ24 + Interrupt_IRQ24 interrupt + 24 + + + + I2C + 0x5210 + + 0x0000 + 5 + registers + + + 0x0006 + 9 + registers + + I2C + I2C + + + CR1 + I2C control register 1 + 8 + 0x0000 + 0x00 + + + PE + 0 + 1 + + + ENGC + 6 + 1 + + + NOSTRETCH + 7 + 1 + + + + + CR2 + I2C control register 2 + 8 + 0x0001 + 0x00 + + + START + 0 + 1 + + + STOP + 1 + 1 + + + ACK + 2 + 1 + + + POS + 3 + 1 + + + SWRST + 7 + 1 + + + + + FREQR + I2C frequency register + 8 + 0x0002 + 0x00 + + + FREQ + 0 + 6 + + + + + OARL + I2C Own address register low + 8 + 0x0003 + 0x00 + + + ADD0 + 0 + 1 + + + ADD + 1 + 7 + + + + + OARH + I2C Own address register high + 8 + 0x0004 + 0x00 + + + ADD + 1 + 2 + + + ADDCONF + 6 + 1 + + + ADDMODE + 7 + 1 + + + + + DR + I2C data register + 8 + 0x0006 + 0x00 + + + DR + 0 + 8 + + + + + SR1 + I2C status register 1 + 8 + 0x0007 + 0x00 + + + SB + 0 + 1 + + + ADDR + 1 + 1 + + + BTF + 2 + 1 + + + ADD10 + 3 + 1 + + + STOPF + 4 + 1 + + + RXNE + 6 + 1 + + + TXE + 7 + 1 + + + + + SR2 + I2C status register 2 + 8 + 0x0008 + 0x00 + + + BERR + 0 + 1 + + + ARLO + 1 + 1 + + + AF + 2 + 1 + + + OVR + 3 + 1 + + + WUFH + 5 + 1 + + + + + SR3 + I2C status register 3 + 8 + 0x0009 + 0x00 + + + MSL + 0 + 1 + + + BUSY + 1 + 1 + + + TRA + 2 + 1 + + + GENCALL + 4 + 1 + + + + + ITR + I2C interrupt control register + 8 + 0x000A + 0x00 + + + ITERREN + 0 + 1 + + + ITEVTEN + 1 + 1 + + + ITBUFEN + 2 + 1 + + + + + CCRL + I2C Clock control register low + 8 + 0x000B + 0x00 + + + CCR + 0 + 8 + + + + + CCRH + I2C Clock control register high + 8 + 0x000C + 0x00 + + + CCR + 0 + 4 + + + DUTY + 6 + 1 + + + F_S + 7 + 1 + + + + + TRISER + I2C TRISE register + 8 + 0x000D + 0x02 + + + TRISE + 0 + 6 + + + + + PECR + I2C packet error checking register + 8 + 0x000E + 0x00 + + + PEC + 0 + 8 + + + + + + Interrupt_IRQ19 + Interrupt_IRQ19 interrupt + 19 + + + + ITC + 0x50A0 + + 0x0000 + 2 + registers + + + 0x0013 + 1 + registers + + + 0x2ed0 + 8 + registers + + ITC + ITC + + + CR1 + External interrupt control register 1 + 8 + 0x0000 + 0x00 + + + PAIS + 0 + 2 + + + PBIS + 2 + 2 + + + PCIS + 4 + 2 + + + PDIS + 6 + 2 + + + + + CR2 + External interrupt control register 2 + 8 + 0x0001 + 0x00 + + + PEIS + 0 + 2 + + + TLIS + 2 + 1 + + + + + RST_SR + Reset status register + 8 + 0x0013 + 0x00 + + + WWDGF + 0 + 1 + + + IWDGF + 1 + 1 + + + ILLOPF + 2 + 1 + + + SWIMF + 3 + 1 + + + EMCF + 4 + 1 + + + + + SPR1 + Interrupt software priority register 1 + 8 + 0x2ED0 + 0xFF + + + VECT0SPR + 0 + 2 + + + VECT1SPR + 2 + 2 + + + VECT2SPR + 4 + 2 + + + VECT3SPR + 6 + 2 + + + + + SPR2 + Interrupt software priority register 2 + 8 + 0x2ED1 + 0xFF + + + VECT4SPR + 0 + 2 + + + VECT5SPR + 2 + 2 + + + VECT6SPR + 4 + 2 + + + VECT7SPR + 6 + 2 + + + + + SPR3 + Interrupt software priority register 3 + 8 + 0x2ED2 + 0xFF + + + VECT8SPR + 0 + 2 + + + VECT9SPR + 2 + 2 + + + VECT10SPR + 4 + 2 + + + VECT11SPR + 6 + 2 + + + + + SPR4 + Interrupt software priority register 4 + 8 + 0x2ED3 + 0xFF + + + VECT12SPR + 0 + 2 + + + VECT13SPR + 2 + 2 + + + VECT14SPR + 4 + 2 + + + VECT15SPR + 6 + 2 + + + + + SPR5 + Interrupt software priority register 5 + 8 + 0x2ED4 + 0xFF + + + VECT16SPR + 0 + 2 + + + VECT17SPR + 2 + 2 + + + VECT18SPR + 4 + 2 + + + VECT19SPR + 6 + 2 + + + + + SPR6 + Interrupt software priority register 6 + 8 + 0x2ED5 + 0xFF + + + VECT20SPR + 0 + 2 + + + VECT21SPR + 2 + 2 + + + VECT22SPR + 4 + 2 + + + VECT23SPR + 6 + 2 + + + + + SPR7 + Interrupt software priority register 7 + 8 + 0x2ED6 + 0xFF + + + VECT24SPR + 0 + 2 + + + VECT25SPR + 2 + 2 + + + VECT26SPR + 4 + 2 + + + VECT27SPR + 6 + 2 + + + + + SPR8 + Interrupt software priority register 8 + 8 + 0x2ED7 + 0xFF + + + VECT28SPR + 0 + 2 + + + VECT29SPR + 2 + 2 + + + + + + Interrupt_IRQ2 + Interrupt_IRQ2 interrupt + 2 + + + + IWDG + 0x50E0 + + 0x0000 + 3 + registers + + IWDG + Watchdog + + + KR + IWDG key register + 8 + 0x0000 + 0x00 + + + KEY + 0 + 8 + + + + + PR + IWDG prescaler register + 8 + 0x0001 + 0x00 + + + PR + 0 + 3 + + + + + RLR + IWDG reload register + 8 + 0x0002 + 0xFF + + + RL + 0 + 8 + + + + + + + OPT + 0x4800 + + 0x0000 + 11 + registers + + OPT + Option-Bytes + + + OPT0 + Read-out protection (ROP) + 8 + 0x0000 + 0x00 + + + OPT1 + User boot code (UBC) + 8 + 0x0001 + 0x00 + + + NOPT1 + User boot code (UBC) (complementary byte) + 8 + 0x0002 + 0xFF + + + OPT2 + Alternate function remapping (AFR) + 8 + 0x0003 + 0x00 + + + NOPT2 + Alternate function remapping (AFR) (complementary byte) + 8 + 0x0004 + 0xFF + + + OPT3 + Misc. option + 8 + 0x0005 + 0x00 + + + NOPT3 + Misc. option (complementary byte) + 8 + 0x0006 + 0xFF + + + OPT4 + Clock option + 8 + 0x0007 + 0x00 + + + NOPT4 + Clock option (complementary byte) + 8 + 0x0008 + 0xFF + + + OPT5 + HSE clock startup + 8 + 0x0009 + 0x00 + + + NOPT5 + HSE clock startup (complementary byte) + 8 + 0x000A + 0xFF + + + + + PORTA + 0x5000 + + 0x0000 + 5 + registers + + PORTA + GPIO + + + ODR + Port A data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port A input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port A data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port A control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port A control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTB + 0x5005 + + 0x0000 + 5 + registers + + PORTB + GPIO + + + ODR + Port B data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port B input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port B data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port B control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port B control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTC + 0x500A + + 0x0000 + 5 + registers + + PORTC + GPIO + + + ODR + Port C data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port C input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port C data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port C control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port C control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTD + 0x500F + + 0x0000 + 5 + registers + + PORTD + GPIO + + + ODR + Port D data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port D input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port D data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port D control register 1 + 8 + 0x0003 + 0x02 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port D control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTE + 0x5014 + + 0x0000 + 5 + registers + + PORTE + GPIO + + + ODR + Port E data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port E input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port E data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port E control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port E control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTF + 0x5019 + + 0x0000 + 5 + registers + + PORTF + GPIO + + + ODR + Port F data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port F input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port F data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port F control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port F control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + SPI + 0x5200 + + 0x0000 + 8 + registers + + SPI + SPI + + + CR1 + SPI control register 1 + 8 + 0x0000 + 0x00 + + + CPHA + 0 + 1 + + + CPOL + 1 + 1 + + + MSTR + 2 + 1 + + + BR + 3 + 3 + + + SPE + 6 + 1 + + + LSBFIRST + 7 + 1 + + + + + CR2 + SPI control register 2 + 8 + 0x0001 + 0x00 + + + SSI + 0 + 1 + + + SSM + 1 + 1 + + + RXONLY + 2 + 1 + + + CRCNEXT + 4 + 1 + + + CECEN + 5 + 1 + + + BDOE + 6 + 1 + + + BDM + 7 + 1 + + + + + ICR + SPI interrupt control register + 8 + 0x0002 + 0x00 + + + WKIE + 4 + 1 + + + ERRIE + 5 + 1 + + + RXIE + 6 + 1 + + + TXIE + 7 + 1 + + + + + SR + SPI status register + 8 + 0x0003 + 0x02 + + + RXNE + 0 + 1 + + + TXE + 1 + 1 + + + WKUP + 3 + 1 + + + CRCERR + 4 + 1 + + + MODF + 5 + 1 + + + OVR + 6 + 1 + + + BSY + 7 + 1 + + + + + DR + SPI data register + 8 + 0x0004 + 0x00 + + + DR + 0 + 8 + + + + + CRCPR + SPI CRC polynomial register + 8 + 0x0005 + 0x07 + + + CRCPOLY + 0 + 8 + + + + + RXCRCR + SPI Rx CRC register + 8 + 0x0006 + 0xFF + + + RXCRC + 0 + 8 + + + + + TXCRCR + SPI Tx CRC register + 8 + 0x0007 + 0xFF + + + TXCRC + 0 + 8 + + + + + + Interrupt_IRQ10 + Interrupt_IRQ10 interrupt + 10 + + + + SWIM + 0x7F80 + + 0x0000 + 1 + registers + + SWIM + Debug + + + CSR + SWIM control status register + 8 + 0x0000 + 0x00 + + + + + TIM1 + 0x5250 + + 0x0000 + 32 + registers + + TIM1 + Timer + + + CR1 + TIM1 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + DIR + 4 + 1 + + + CMS + 5 + 2 + + + ARPE + 7 + 1 + + + + + CR2 + TIM1 control register 2 + 8 + 0x0001 + 0x00 + + + CCPG + 0 + 1 + + + COMS + 2 + 1 + + + MMS + 4 + 3 + + + + + SMCR + TIM1 slave mode control register + 8 + 0x0002 + 0x00 + + + SMS + 0 + 3 + + + TS + 4 + 3 + + + MSM + 7 + 1 + + + + + ETR + TIM1 external trigger register + 8 + 0x0003 + 0x00 + + + ETF + 0 + 4 + + + ETPS + 4 + 2 + + + ECE + 6 + 1 + + + ETP + 7 + 1 + + + + + IER + TIM1 interrupt enable register + 8 + 0x0004 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + CC4IE + 4 + 1 + + + COMIE + 5 + 1 + + + TIE + 6 + 1 + + + BIE + 7 + 1 + + + + + SR1 + TIM1 status register 1 + 8 + 0x0005 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + CC4IF + 4 + 1 + + + COMIF + 5 + 1 + + + TIF + 6 + 1 + + + BIF + 7 + 1 + + + + + SR2 + TIM1 status register 2 + 8 + 0x0006 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + CC4OF + 4 + 1 + + + + + EGR + TIM1 event generation register + 8 + 0x0007 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + CC4G + 4 + 1 + + + COMG + 5 + 1 + + + TG + 6 + 1 + + + BG + 7 + 1 + + + + + CCMR1 + TIM1 capture/compare mode register 1 + 8 + 0x0008 + 0x00 + + + CC1S + 0 + 2 + + + OC1FE + 2 + 1 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + OC1CE + 7 + 1 + + + + + CCMR2 + TIM1 capture/compare mode register 2 + 8 + 0x0009 + 0x00 + + + CC2S + 0 + 2 + + + OC2FE + 2 + 1 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + OC2CE + 7 + 1 + + + + + CCMR3 + TIM1 capture/compare mode register 3 + 8 + 0x000A + 0x00 + + + CC3S + 0 + 2 + + + OC3FE + 2 + 1 + + + OC3PE + 3 + 1 + + + OC3M + 4 + 3 + + + OC3CE + 7 + 1 + + + + + CCMR4 + TIM1 capture/compare mode register 4 + 8 + 0x000B + 0x00 + + + CC4S + 0 + 2 + + + OC4FE + 2 + 1 + + + OC4PE + 3 + 1 + + + OC4M + 4 + 3 + + + OC4CE + 7 + 1 + + + + + CCER1 + TIM1 capture/compare enable register 1 + 8 + 0x000C + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC1NE + 2 + 1 + + + CC1NP + 3 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + CC2NE + 6 + 1 + + + CC2NP + 7 + 1 + + + + + CCER2 + TIM1 capture/compare enable register 2 + 8 + 0x000D + 0x00 + + + CC3E + 0 + 1 + + + CC3P + 1 + 1 + + + CC3NE + 2 + 1 + + + CC3NP + 3 + 1 + + + CC4E + 4 + 1 + + + CC4P + 5 + 1 + + + + + CNTRH + TIM1 counter high + 8 + 0x000E + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM1 counter low + 8 + 0x000F + 0x00 + + + CNT + 0 + 8 + + + + + PSCRH + TIM1 prescaler register high + 8 + 0x0010 + 0x00 + + + PSC + 0 + 8 + + + + + PSCRL + TIM1 prescaler register low + 8 + 0x0011 + 0x00 + + + PSC + 0 + 8 + + + + + ARRH + TIM1 auto-reload register high + 8 + 0x0012 + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM1 auto-reload register low + 8 + 0x0013 + 0xFF + + + ARR + 0 + 8 + + + + + RCR + TIM1 repetition counter register + 8 + 0x0014 + 0x00 + + + REP + 0 + 8 + + + + + CCR1H + TIM1 capture/compare register 1 high + 8 + 0x0015 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM1 capture/compare register 1 low + 8 + 0x0016 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM1 capture/compare register 2 high + 8 + 0x0017 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM1 capture/compare register 2 low + 8 + 0x0018 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR3H + TIM1 capture/compare register 3 high + 8 + 0x0019 + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR3L + TIM1 capture/compare register 3 low + 8 + 0x001A + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR4H + TIM1 capture/compare register 4 high + 8 + 0x001B + 0x00 + + + CCR4 + 0 + 8 + + + + + CCR4L + TIM1 capture/compare register 4 low + 8 + 0x001C + 0x00 + + + CCR4 + 0 + 8 + + + + + BKR + TIM1 break register + 8 + 0x001D + 0x00 + + + LOCK + 0 + 2 + + + OSSI + 2 + 1 + + + OSSR + 3 + 1 + + + BKE + 4 + 1 + + + BKP + 5 + 1 + + + AOE + 6 + 1 + + + MOE + 7 + 1 + + + + + DTR + TIM1 dead-time register + 8 + 0x001E + 0x00 + + + DTG + 0 + 8 + + + + + OISR + TIM1 output idle state register + 8 + 0x001F + 0x00 + + + OIS1 + 0 + 1 + + + OIS1N + 1 + 1 + + + OIS2 + 2 + 1 + + + OIS2N + 3 + 1 + + + OIS3 + 4 + 1 + + + OIS3N + 5 + 1 + + + OIS4 + 6 + 1 + + + + + + Interrupt_IRQ11 + Interrupt_IRQ11 interrupt + 11 + + + Interrupt_IRQ12 + Interrupt_IRQ12 interrupt + 12 + + + + TIM2 + 0x5300 + + 0x0000 + 1 + registers + + + 0x0003 + 20 + registers + + TIM2 + Timer + + + CR1 + TIM2 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM2 Interrupt enable register + 8 + 0x0003 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + TIE + 6 + 1 + + + + + SR1 + TIM2 status register 1 + 8 + 0x0004 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + TIF + 6 + 1 + + + + + SR2 + TIM2 status register 2 + 8 + 0x0005 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + + + EGR + TIM2 event generation register + 8 + 0x0006 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + TG + 6 + 1 + + + + + CCMR1 + TIM2 capture/compare mode register 1 + 8 + 0x0007 + 0x00 + + + CC1S + 0 + 2 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + + + CCMR2 + TIM2 capture/compare mode register 2 + 8 + 0x0008 + 0x00 + + + CC2S + 0 + 2 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + + + CCMR3 + TIM2 capture/compare mode register 3 + 8 + 0x0009 + 0x00 + + + CC3S + 0 + 2 + + + OC3PE + 3 + 1 + + + OC3M + 4 + 3 + + + + + CCER1 + TIM2 capture/compare enable register 1 + 8 + 0x000A + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + + + CCER2 + TIM2 capture/compare enable register 2 + 8 + 0x000B + 0x00 + + + CC3E + 0 + 1 + + + CC3P + 1 + 1 + + + + + CNTRH + TIM2 counter high + 8 + 0x000C + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM2 counter low + 8 + 0x000D + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM2 prescaler register + 8 + 0x000E + 0x00 + + + PSC + 0 + 4 + + + + + ARRH + TIM2 auto-reload register high + 8 + 0x000F + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM2 auto-reload register low + 8 + 0x0010 + 0xFF + + + ARR + 0 + 8 + + + + + CCR1H + TIM2 capture/compare register 1 high + 8 + 0x0011 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM2 capture/compare register 1 low + 8 + 0x0012 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM2 capture/compare reg + 8 + 0x0013 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM2 capture/compare register 2 low + 8 + 0x0014 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR3H + TIM2 capture/compare register 3 high + 8 + 0x0015 + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR3L + TIM2 capture/compare register 3 low + 8 + 0x0016 + 0x00 + + + CCR3 + 0 + 8 + + + + + + Interrupt_IRQ13 + Interrupt_IRQ13 interrupt + 13 + + + Interrupt_IRQ14 + Interrupt_IRQ14 interrupt + 14 + + + + TIM4 + 0x5340 + + 0x0000 + 1 + registers + + + 0x0003 + 6 + registers + + TIM4 + Timer + + + CR1 + TIM4 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM4 interrupt enable register + 8 + 0x0003 + 0x00 + + + UIE + 0 + 1 + + + TIE + 6 + 1 + + + + + SR + TIM4 status register + 8 + 0x0004 + 0x00 + + + UIF + 0 + 1 + + + TIF + 6 + 1 + + + + + EGR + TIM4 event generation register + 8 + 0x0005 + 0x00 + + + UG + 0 + 1 + + + TG + 6 + 1 + + + + + CNTR + TIM4 counter + 8 + 0x0006 + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM4 prescaler register + 8 + 0x0007 + 0x00 + + + PSC + 0 + 3 + + + + + ARR + TIM4 auto-reload register + 8 + 0x0008 + 0xFF + + + ARR + 0 + 8 + + + + + + Interrupt_IRQ23 + Interrupt_IRQ23 interrupt + 23 + + + + UART1 + 0x5230 + + 0x0000 + 11 + registers + + UART1 + Uart + + + SR + UART1 status register + 8 + 0x0000 + 0xC0 + + + PE + 0 + 1 + + + FE + 1 + 1 + + + NF + 2 + 1 + + + OR_LHE + 3 + 1 + + + IDLE + 4 + 1 + + + RXNE + 5 + 1 + + + TC + 6 + 1 + + + TXE + 7 + 1 + + + + + DR + UART1 data register + 8 + 0x0001 + 0x00 + + + DR + 0 + 8 + + + + + BRR1 + UART1 baud rate register 1 + 8 + 0x0002 + 0x00 + + + UART_DIV + 0 + 8 + + + + + BRR2 + UART1 baud rate register 2 + 8 + 0x0003 + 0x00 + + + UART_DIV + 0 + 8 + + + + + CR1 + UART1 control register 1 + 8 + 0x0004 + 0x00 + + + PIEN + 0 + 1 + + + PS + 1 + 1 + + + PCEN + 2 + 1 + + + WAKE + 3 + 1 + + + M + 4 + 1 + + + UART0 + 5 + 1 + + + T8 + 6 + 1 + + + R8 + 7 + 1 + + + + + CR2 + UART1 control register 2 + 8 + 0x0005 + 0x00 + + + SBK + 0 + 1 + + + RWU + 1 + 1 + + + REN + 2 + 1 + + + TEN + 3 + 1 + + + ILIEN + 4 + 1 + + + RIEN + 5 + 1 + + + TCIEN + 6 + 1 + + + TIEN + 7 + 1 + + + + + CR3 + UART1 control register 3 + 8 + 0x0006 + 0x00 + + + LBCL + 0 + 1 + + + CPHA + 1 + 1 + + + CPOL + 2 + 1 + + + CKEN + 3 + 1 + + + STOP + 4 + 2 + + + LINEN + 7 + 1 + + + + + CR4 + UART1 control register 4 + 8 + 0x0007 + 0x00 + + + ADD + 0 + 4 + + + LBDF + 4 + 1 + + + LBDL + 5 + 1 + + + LBDIEN + 6 + 1 + + + + + CR5 + UART1 control register 5 + 8 + 0x0008 + 0x00 + + + IREN + 1 + 1 + + + IRLP + 2 + 1 + + + HDSEL + 3 + 1 + + + NACK + 4 + 1 + + + SCEN + 5 + 1 + + + + + GTR + UART1 guard time register + 8 + 0x0009 + 0x00 + + + GT + 0 + 8 + + + + + PSCR + UART1 prescaler register + 8 + 0x000A + 0x00 + + + PSC + 0 + 8 + + + + + + Interrupt_IRQ17 + Interrupt_IRQ17 interrupt + 17 + + + Interrupt_IRQ18 + Interrupt_IRQ18 interrupt + 18 + + + + WWDG + 0x50D1 + + 0x0000 + 2 + registers + + WWDG + Watchdog + + + CR + WWDG control register + 8 + 0x0000 + 0x7F + + + T0 + 0 + 1 + + + T1 + 1 + 1 + + + T2 + 2 + 1 + + + T3 + 3 + 1 + + + T4 + 4 + 1 + + + T5 + 5 + 1 + + + T6 + 6 + 1 + + + WDGA + 7 + 1 + + + + + WR + WWDR window register + 8 + 0x0001 + 0x7F + + + W0 + 0 + 1 + + + W1 + 1 + 1 + + + W2 + 2 + 1 + + + W3 + 3 + 1 + + + W4 + 4 + 1 + + + W5 + 5 + 1 + + + W6 + 6 + 1 + + + + + + + diff --git a/misc/svd/STM8S105C6.svd b/misc/svd/STM8S105C6.svd new file mode 100644 index 0000000..584b90c --- /dev/null +++ b/misc/svd/STM8S105C6.svd @@ -0,0 +1,7320 @@ + + + STMicroelectronics + STM8S105C6 + 1.0 + STM8S/STM8AF, medium density + Mainstream Access line 8-bit MCU with 32 Kbytes Flash, 16 MHz CPU, integrated EEPROM + + other + r1p0 + big + false + false + false + false + false + false + false + false + false + 4 + + 8 + 8 + 8 + read-write + + + ADC1 + 0x53E0 + + 0x0000 + 20 + registers + + + 0x0020 + 16 + registers + + ADC1 + ADC + + + DB0RH + ADC data buffer registers + 8 + 0x0000 + 0x00 + + + DBH + 0 + 8 + + + + + DB0RL + ADC data buffer registers + 8 + 0x0001 + 0x00 + + + DL + 0 + 8 + + + + + DB1RH + ADC data buffer registers + 8 + 0x0002 + 0x00 + + + DBH + 0 + 8 + + + + + DB1RL + ADC data buffer registers + 8 + 0x0003 + 0x00 + + + DL + 0 + 8 + + + + + DB2RH + ADC data buffer registers + 8 + 0x0004 + 0x00 + + + DBH + 0 + 8 + + + + + DB2RL + ADC data buffer registers + 8 + 0x0005 + 0x00 + + + DL + 0 + 8 + + + + + DB3RH + ADC data buffer registers + 8 + 0x0006 + 0x00 + + + DBH + 0 + 8 + + + + + DB3RL + ADC data buffer registers + 8 + 0x0007 + 0x00 + + + DL + 0 + 8 + + + + + DB4RH + ADC data buffer registers + 8 + 0x0008 + 0x00 + + + DBH + 0 + 8 + + + + + DB4RL + ADC data buffer registers + 8 + 0x0009 + 0x00 + + + DL + 0 + 8 + + + + + DB5RH + ADC data buffer registers + 8 + 0x000A + 0x00 + + + DBH + 0 + 8 + + + + + DB5RL + ADC data buffer registers + 8 + 0x000B + 0x00 + + + DL + 0 + 8 + + + + + DB6RH + ADC data buffer registers + 8 + 0x000C + 0x00 + + + DBH + 0 + 8 + + + + + DB6RL + ADC data buffer registers + 8 + 0x000D + 0x00 + + + DL + 0 + 8 + + + + + DB7RH + ADC data buffer registers + 8 + 0x000E + 0x00 + + + DBH + 0 + 8 + + + + + DB7RL + ADC data buffer registers + 8 + 0x000F + 0x00 + + + DL + 0 + 8 + + + + + DB8RH + ADC data buffer registers + 8 + 0x0010 + 0x00 + + + DBH + 0 + 8 + + + + + DB8RL + ADC data buffer registers + 8 + 0x0011 + 0x00 + + + DL + 0 + 8 + + + + + DB9RH + ADC data buffer registers + 8 + 0x0012 + 0x00 + + + DBH + 0 + 8 + + + + + DB9RL + ADC data buffer registers + 8 + 0x0013 + 0x00 + + + DL + 0 + 8 + + + + + CSR + ADC control/status register + 8 + 0x0020 + 0x00 + + + CH + 0 + 4 + + + AWDIE + 4 + 1 + + + EOCIE + 5 + 1 + + + AWD + 6 + 1 + + + EOC + 7 + 1 + + + + + CR1 + ADC configuration register 1 + 8 + 0x0021 + 0x00 + + + ADON + 0 + 1 + + + CONT + 1 + 1 + + + SPSEL + 4 + 3 + + + + + CR2 + ADC configuration register 2 + 8 + 0x0022 + 0x00 + + + SCAN + 1 + 1 + + + ALIGN + 3 + 1 + + + EXTSEL + 4 + 2 + + + EXTTRIG + 6 + 1 + + + + + CR3 + ADC configuration register 3 + 8 + 0x0023 + 0x00 + + + OVR + 6 + 1 + + + DBUF + 7 + 1 + + + + + DRH + ADC data register high + 8 + 0x0024 + 0x00 + + + DH + 0 + 8 + + + + + DRL + ADC data register low + 8 + 0x0025 + 0x00 + + + DL + 0 + 8 + + + + + TDRH + ADC Schmitt trigger disable register high + 8 + 0x0026 + 0x00 + + + TD + 0 + 8 + + + + + TDRL + ADC Schmitt trigger disable register low + 8 + 0x0027 + 0x00 + + + TL + 0 + 8 + + + + + HTRH + ADC high threshold register high + 8 + 0x0028 + 0x03 + + + HT + 0 + 8 + + + + + HTRL + ADC high threshold register low + 8 + 0x0029 + 0xFF + + + HT + 0 + 2 + + + + + LTRH + ADC low threshold register high + 8 + 0x002A + 0x00 + + + LT + 0 + 8 + + + + + LTRL + ADC low threshold register low + 8 + 0x002B + 0x00 + + + LT + 0 + 2 + + + + + AWSRH + ADC analog watchdog status register high + 8 + 0x002C + 0x00 + + + AWS8 + 0 + 1 + + + AWS9 + 1 + 1 + + + + + AWSRL + ADC analog watchdog status register low + 8 + 0x002D + 0x00 + + + AWS0 + 0 + 1 + + + AWS1 + 1 + 1 + + + AWS2 + 2 + 1 + + + AWS3 + 3 + 1 + + + AWS4 + 4 + 1 + + + AWS5 + 5 + 1 + + + AWS6 + 6 + 1 + + + AWS7 + 7 + 1 + + + + + AWCRH + ADC analog watchdog control register high + 8 + 0x002E + 0x00 + + + AWEN8 + 0 + 1 + + + AWEN9 + 1 + 1 + + + + + AWCRL + ADC analog watchdog control register low + 8 + 0x002F + 0x00 + + + AWEN0 + 0 + 1 + + + AWEN1 + 1 + 1 + + + AWEN2 + 2 + 1 + + + AWEN3 + 3 + 1 + + + AWEN4 + 4 + 1 + + + AWEN5 + 5 + 1 + + + AWEN6 + 6 + 1 + + + AWEN7 + 7 + 1 + + + + + + Interrupt_IRQ22 + Interrupt_IRQ22 interrupt + 22 + + + + AWU + 0x50F0 + + 0x0000 + 3 + registers + + AWU + AWU + + + CSR1 + AWU control/status register 1 + 8 + 0x0000 + 0x00 + + + MSR + 0 + 1 + + + AWUEN + 4 + 1 + + + AWUF + 5 + 1 + + + + + APR + AWU asynchronous prescaler buffer register + 8 + 0x0001 + 0x3F + + + APR + 0 + 6 + + + + + TBR + AWU timebase selection register + 8 + 0x0002 + 0x00 + + + AWUTB + 0 + 4 + + + + + + Interrupt_IRQ1 + Interrupt_IRQ1 interrupt + 1 + + + + BEEP + 0x50F3 + + 0x0000 + 1 + registers + + BEEP + BEEP + + + CSR + BEEP control/status register + 8 + 0x0000 + 0x1F + + + BEEPDIV + 0 + 5 + + + BEEPEN + 5 + 1 + + + BEEPSEL + 6 + 2 + + + + + + + CLK + 0x50C0 + + 0x0000 + 2 + registers + + + 0x0003 + 11 + registers + + CLK + CLK + + + ICKR + Internal clock control register + 8 + 0x0000 + 0x01 + + + HSIEN + 0 + 1 + + + HSIRDY + 1 + 1 + + + FHW + 2 + 1 + + + LSIEN + 3 + 1 + + + LSIRDY + 4 + 1 + + + REGAH + 5 + 1 + + + + + ECKR + External clock control register + 8 + 0x0001 + 0x00 + + + HSEEN + 0 + 1 + + + HSERDY + 1 + 1 + + + + + CMSR + Clock master status register + 8 + 0x0003 + 0xE1 + + + CKM + 0 + 8 + + + + + SWR + Clock master switch register + 8 + 0x0004 + 0xE1 + + + SWI + 0 + 8 + + + + + SWCR + Clock switch control register + 8 + 0x0005 + 0x00 + + + SWBSY + 0 + 1 + + + SWEN + 1 + 1 + + + SWIEN + 2 + 1 + + + SWIF + 3 + 1 + + + + + CKDIVR + Clock divider register + 8 + 0x0006 + 0x18 + + + CPUDIV + 0 + 3 + + + HSIDIV + 3 + 2 + + + + + PCKENR1 + Peripheral clock gating register 1 + 8 + 0x0007 + 0xFF + + + PCKEN + 0 + 8 + + + + + CSSR + Clock security system register + 8 + 0x0008 + 0x00 + + + CSSEN + 0 + 1 + + + AUX + 1 + 1 + + + CSSDIE + 2 + 1 + + + CSSD + 3 + 1 + + + + + CCOR + Configurable clock control register + 8 + 0x0009 + 0x00 + + + CCOEN + 0 + 1 + + + CCOSEL + 1 + 4 + + + CCORDY + 5 + 1 + + + CC0BSY + 6 + 1 + + + + + PCKENR2 + Peripheral clock gating register 2 + 8 + 0x000A + 0xFF + + + PCKEN2 + 0 + 8 + + + + + CANCCR + CAN clock control register + 8 + 0x000B + 0x00 + + + CANDIV + 0 + 3 + + + + + HSITRIMR + HSI clock calibration trimming register + 8 + 0x000C + 0x00 + + + HSITRIM + 0 + 4 + + + + + SWIMCCR + SWIM clock control register + 8 + 0x000D + 0x00 + + + SWIMCLK + 0 + 1 + + + + + + Interrupt_IRQ2 + Interrupt_IRQ2 interrupt + 2 + + + + CPU + 0x7F00 + + 0x0000 + 11 + registers + + + 0x0060 + 1 + registers + + CPU + CPU + + + A + Accumulator + 8 + 0x0000 + 0x00 + + + PCE + Program counter extended + 8 + 0x0001 + 0x00 + + + PCH + Program counter high + 8 + 0x0002 + 0x00 + + + PCL + Program counter low + 8 + 0x0003 + 0x00 + + + XH + X index register high + 8 + 0x0004 + 0x00 + + + XL + X index register low + 8 + 0x0005 + 0x00 + + + YH + Y index register high + 8 + 0x0006 + 0x00 + + + YL + Y index register low + 8 + 0x0007 + 0x00 + + + SPH + Stack pointer high + 8 + 0x0008 + 0x07 + + + SPL + Stack pointer low + 8 + 0x0009 + 0xFF + + + CCR + Condition code register + 8 + 0x000A + 0x28 + + + C + 0 + 1 + + + Z + 1 + 1 + + + NF + 2 + 1 + + + I0 + 3 + 1 + + + H + 4 + 1 + + + I1 + 5 + 1 + + + V + 7 + 1 + + + + + CFG_GCR + Global configuration register + 8 + 0x0060 + 0x00 + + + SWO + 0 + 1 + + + AL + 1 + 1 + + + + + + + DM + 0x7F90 + + 0x0000 + 11 + registers + + DM + DM + + + BK1RE + DM breakpoint 1 register extended byte + 8 + 0x0000 + 0xFF + + + BK1RH + DM breakpoint 1 register high byte + 8 + 0x0001 + 0xFF + + + BK1RL + DM breakpoint 1 register low byte + 8 + 0x0002 + 0xFF + + + BK2RE + DM breakpoint 2 register extended byte + 8 + 0x0003 + 0xFF + + + BK2RH + DM breakpoint 2 register high byte + 8 + 0x0004 + 0xFF + + + BK2RL + DM breakpoint 2 register low byte + 8 + 0x0005 + 0xFF + + + CR1 + DM debug module control register 1 + 8 + 0x0006 + 0x00 + + + CR2 + DM debug module control register 2 + 8 + 0x0007 + 0x00 + + + CSR1 + DM debug module control/status register 1 + 8 + 0x0008 + 0x10 + + + CSR2 + DM debug module control/status register 2 + 8 + 0x0009 + 0x00 + + + ENFCTR + DM enable function register + 8 + 0x000A + 0xFF + + + + + FLASH + 0x505A + + 0x0000 + 6 + registers + + + 0x0008 + 1 + registers + + + 0x000a + 1 + registers + + FLASH + FLASH + + + CR1 + Flash control register 1 + 8 + 0x0000 + 0x00 + + + FIX + 0 + 1 + + + IE + 1 + 1 + + + AHALT + 2 + 1 + + + HALT + 3 + 1 + + + + + CR2 + Flash control register 2 + 8 + 0x0001 + 0x00 + + + PRG + 0 + 1 + + + FPRG + 4 + 1 + + + ERASE + 5 + 1 + + + WPRG + 6 + 1 + + + OPT + 7 + 1 + + + + + NCR2 + Flash complementary control register 2 + 8 + 0x0002 + 0xFF + + + NPRG + 0 + 1 + + + NFPRG + 4 + 1 + + + NERASE + 5 + 1 + + + NWPRG + 6 + 1 + + + NOPT + 7 + 1 + + + + + FPR + Flash protection register + 8 + 0x0003 + 0x00 + + + WPB0 + 0 + 1 + + + WPB1 + 1 + 1 + + + WPB2 + 2 + 1 + + + WPB3 + 3 + 1 + + + WPB4 + 4 + 1 + + + WPB5 + 5 + 1 + + + + + NFPR + Flash complementary protection register + 8 + 0x0004 + 0xFF + + + NWPB0 + 0 + 1 + + + NWPB1 + 1 + 1 + + + NWPB2 + 2 + 1 + + + NWPB3 + 3 + 1 + + + NWPB4 + 4 + 1 + + + NWPB5 + 5 + 1 + + + + + IAPSR + Flash in-application programming status register + 8 + 0x0005 + 0x00 + + + WR_PG_DIS + 0 + 1 + + + PUL + 1 + 1 + + + EOP + 2 + 1 + + + DUL + 3 + 1 + + + HVOFF + 6 + 1 + + + + + PUKR + Flash program memory unprotection register + 8 + 0x0008 + 0x00 + + + MASS_PRG + 0 + 8 + + + + + DUKR + Data EEPROM unprotection register + 8 + 0x000A + 0x00 + + + MASS_DATA + 0 + 8 + + + + + + Interrupt_IRQ24 + Interrupt_IRQ24 interrupt + 24 + + + + I2C + 0x5210 + + 0x0000 + 5 + registers + + + 0x0006 + 9 + registers + + I2C + I2C + + + CR1 + I2C control register 1 + 8 + 0x0000 + 0x00 + + + PE + 0 + 1 + + + ENGC + 6 + 1 + + + NOSTRETCH + 7 + 1 + + + + + CR2 + I2C control register 2 + 8 + 0x0001 + 0x00 + + + START + 0 + 1 + + + STOP + 1 + 1 + + + ACK + 2 + 1 + + + POS + 3 + 1 + + + SWRST + 7 + 1 + + + + + FREQR + I2C frequency register + 8 + 0x0002 + 0x00 + + + FREQ + 0 + 6 + + + + + OARL + I2C Own address register low + 8 + 0x0003 + 0x00 + + + ADD0 + 0 + 1 + + + ADD + 1 + 7 + + + + + OARH + I2C own address register high + 8 + 0x0004 + 0x00 + + + ADD + 1 + 2 + + + ADDCONF + 6 + 1 + + + ADDMODE + 7 + 1 + + + + + DR + I2C data register + 8 + 0x0006 + 0x00 + + + DR + 0 + 8 + + + + + SR1 + I2C status register 1 + 8 + 0x0007 + 0x00 + + + SB + 0 + 1 + + + ADDR + 1 + 1 + + + BTF + 2 + 1 + + + ADD10 + 3 + 1 + + + STOPF + 4 + 1 + + + RXNE + 6 + 1 + + + TXE + 7 + 1 + + + + + SR2 + I2C status register 2 + 8 + 0x0008 + 0x00 + + + BERR + 0 + 1 + + + ARLO + 1 + 1 + + + AF + 2 + 1 + + + OVR + 3 + 1 + + + WUFH + 5 + 1 + + + + + SR3 + I2C status register 3 + 8 + 0x0009 + 0x00 + + + MSL + 0 + 1 + + + BUSY + 1 + 1 + + + TRA + 2 + 1 + + + GENCALL + 4 + 1 + + + + + ITR + I2C interrupt control register + 8 + 0x000A + 0x00 + + + ITERREN + 0 + 1 + + + ITEVTEN + 1 + 1 + + + ITBUFEN + 2 + 1 + + + + + CCRL + I2C clock control register low + 8 + 0x000B + 0x00 + + + CCR + 0 + 8 + + + + + CCRH + I2C clock control register high + 8 + 0x000C + 0x00 + + + CCR + 0 + 4 + + + DUTY + 6 + 1 + + + F_S + 7 + 1 + + + + + TRISER + I2C TRISE register + 8 + 0x000D + 0x02 + + + TRISE + 0 + 6 + + + + + PECR + I2C packet error checking register + 8 + 0x000E + 0x00 + + + PEC + 0 + 8 + + + + + + Interrupt_IRQ19 + Interrupt_IRQ19 interrupt + 19 + + + + ITC_EXTI + 0x50A0 + + 0x0000 + 2 + registers + + ITC_EXTI + ITC_EXTI + + + CR1 + External interrupt control register 1 + 8 + 0x0000 + 0x00 + + + PAIS + 0 + 2 + + + PBIS + 2 + 2 + + + PCIS + 4 + 2 + + + PDIS + 6 + 2 + + + + + CR2 + External interrupt control register 2 + 8 + 0x0001 + 0x00 + + + PEIS + 0 + 2 + + + TLIS + 2 + 1 + + + + + + + ITC_SPR + 0x7F70 + + 0x0000 + 8 + registers + + ITC_SPR + ITC_SPR + + + SPR1 + Interrupt software priority register 1 + 8 + 0x0000 + 0xFF + + + VECT0SPR + 0 + 2 + + + VECT1SPR + 2 + 2 + + + VECT2SPR + 4 + 2 + + + VECT3SPR + 6 + 2 + + + + + SPR2 + Interrupt software priority register 2 + 8 + 0x0001 + 0xFF + + + VECT4SPR + 0 + 2 + + + VECT5SPR + 2 + 2 + + + VECT6SPR + 4 + 2 + + + VECT7SPR + 6 + 2 + + + + + SPR3 + Interrupt software priority register 3 + 8 + 0x0002 + 0xFF + + + VECT8SPR + 0 + 2 + + + VECT9SPR + 2 + 2 + + + VECT10SPR + 4 + 2 + + + VECT11SPR + 6 + 2 + + + + + SPR4 + Interrupt software priority register 4 + 8 + 0x0003 + 0xFF + + + VECT12SPR + 0 + 2 + + + VECT13SPR + 2 + 2 + + + VECT14SPR + 4 + 2 + + + VECT15SPR + 6 + 2 + + + + + SPR5 + Interrupt software priority register 5 + 8 + 0x0004 + 0xFF + + + VECT16SPR + 0 + 2 + + + VECT17SPR + 2 + 2 + + + VECT18SPR + 4 + 2 + + + VECT19SPR + 6 + 2 + + + + + SPR6 + Interrupt software priority register 6 + 8 + 0x0005 + 0xFF + + + VECT20SPR + 0 + 2 + + + VECT21SPR + 2 + 2 + + + VECT22SPR + 4 + 2 + + + VECT23SPR + 6 + 2 + + + + + SPR7 + Interrupt software priority register 7 + 8 + 0x0006 + 0xFF + + + VECT24SPR + 0 + 2 + + + VECT25SPR + 2 + 2 + + + VECT26SPR + 4 + 2 + + + VECT27SPR + 6 + 2 + + + + + SPR8 + Interrupt software priority register 8 + 8 + 0x0007 + 0xFF + + + VECT28SPR + 0 + 2 + + + VECT29SPR + 2 + 2 + + + + + + + IWDG + 0x50E0 + + 0x0000 + 3 + registers + + IWDG + Watchdog + + + KR + IWDG key register + 8 + 0x0000 + 0x00 + + + KEY + 0 + 8 + + + + + PR + IWDG prescaler register + 8 + 0x0001 + 0x00 + + + PR + 0 + 3 + + + + + RLR + IWDG reload register + 8 + 0x0002 + 0xFF + + + RL + 0 + 8 + + + + + + + OPT + 0x4800 + + 0x0000 + 11 + registers + + + 0x007e + 2 + registers + + OPT + Option-Bytes + + + OPT0 + Read-out protection (ROP) + 8 + 0x0000 + 0x00 + + + OPT1 + User boot code (UBC) + 8 + 0x0001 + 0x00 + + + NOPT1 + User boot code (UBC) (complementary byte) + 8 + 0x0002 + 0xFF + + + OPT2 + Alternate function remapping (AFR) + 8 + 0x0003 + 0x00 + + + NOPT2 + Alternate function remapping (AFR) (complementary byte) + 8 + 0x0004 + 0xFF + + + OPT3 + Misc. option + 8 + 0x0005 + 0x00 + + + NOPT3 + Misc. option (complementary byte) + 8 + 0x0006 + 0xFF + + + OPT4 + Clock option + 8 + 0x0007 + 0x00 + + + NOPT4 + Clock option (complementary byte) + 8 + 0x0008 + 0xFF + + + OPT5 + HSE clock startup + 8 + 0x0009 + 0x00 + + + NOPT5 + HSE clock startup (complementary byte) + 8 + 0x000A + 0xFF + + + OPTBL + Bootloader + 8 + 0x007E + 0x00 + + + NOPTBL + Bootloader (complementary byte) + 8 + 0x007F + 0xFF + + + + + PORTA + 0x5000 + + 0x0000 + 5 + registers + + PORTA + GPIO + + + ODR + Port A data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port A input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port A data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port A control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port A control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTB + 0x5005 + + 0x0000 + 5 + registers + + PORTB + GPIO + + + ODR + Port B data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port B input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port B data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port B control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port B control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTC + 0x500A + + 0x0000 + 5 + registers + + PORTC + GPIO + + + ODR + Port C data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port C input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port C data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port C control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port C control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTD + 0x500F + + 0x0000 + 5 + registers + + PORTD + GPIO + + + ODR + Port D data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port D input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port D data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port D control register 1 + 8 + 0x0003 + 0x02 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port D control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTE + 0x5014 + + 0x0000 + 5 + registers + + PORTE + GPIO + + + ODR + Port E data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port E input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port E data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port E control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port E control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTF + 0x5019 + + 0x0000 + 5 + registers + + PORTF + GPIO + + + ODR + Port F data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port F input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port F data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port F control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port F control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTG + 0x501E + + 0x0000 + 5 + registers + + PORTG + GPIO + + + ODR + Port G data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port G input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port G data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port G control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port G control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTH + 0x5023 + + 0x0000 + 5 + registers + + PORTH + GPIO + + + ODR + Port H data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port H input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port H data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port H control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port H control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTI + 0x5028 + + 0x0000 + 5 + registers + + PORTI + GPIO + + + ODR + Port I data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port I input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port I data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port I control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port I control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + RST + 0x50B3 + + 0x0000 + 1 + registers + + RST + RST + + + SR + Reset status register + 8 + 0x0000 + 0x00 + + + WWDGF + 0 + 1 + + + IWDGF + 1 + 1 + + + ILLOPF + 2 + 1 + + + SWIMF + 3 + 1 + + + EMCF + 4 + 1 + + + + + + + SPI + 0x5200 + + 0x0000 + 8 + registers + + SPI + SPI + + + CR1 + SPI control register 1 + 8 + 0x0000 + 0x00 + + + CPHA + 0 + 1 + + + CPOL + 1 + 1 + + + MSTR + 2 + 1 + + + BR + 3 + 3 + + + SPE + 6 + 1 + + + LSBFIRST + 7 + 1 + + + + + CR2 + SPI control register 2 + 8 + 0x0001 + 0x00 + + + SSI + 0 + 1 + + + SSM + 1 + 1 + + + RXONLY + 2 + 1 + + + CRCNEXT + 4 + 1 + + + CECEN + 5 + 1 + + + BDOE + 6 + 1 + + + BDM + 7 + 1 + + + + + ICR + SPI interrupt control register + 8 + 0x0002 + 0x00 + + + WKIE + 4 + 1 + + + ERRIE + 5 + 1 + + + RXIE + 6 + 1 + + + TXIE + 7 + 1 + + + + + SR + SPI status register + 8 + 0x0003 + 0x02 + + + RXNE + 0 + 1 + + + TXE + 1 + 1 + + + WKUP + 3 + 1 + + + CRCERR + 4 + 1 + + + MODF + 5 + 1 + + + OVR + 6 + 1 + + + BSY + 7 + 1 + + + + + DR + SPI data register + 8 + 0x0004 + 0x00 + + + DR + 0 + 8 + + + + + CRCPR + SPI CRC polynomial register + 8 + 0x0005 + 0x07 + + + CRCPOLY + 0 + 8 + + + + + RXCRCR + SPI Rx CRC register + 8 + 0x0006 + 0xFF + + + RXCRC + 0 + 8 + + + + + TXCRCR + SPI Tx CRC register + 8 + 0x0007 + 0xFF + + + TXCRC + 0 + 8 + + + + + + Interrupt_IRQ10 + Interrupt_IRQ10 interrupt + 10 + + + + SWIM + 0x7F80 + + 0x0000 + 1 + registers + + SWIM + Debug + + + CSR + SWIM control status register + 8 + 0x0000 + 0x00 + + + + + TIM1 + 0x5250 + + 0x0000 + 32 + registers + + TIM1 + Timer + + + CR1 + TIM1 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + DIR + 4 + 1 + + + CMS + 5 + 2 + + + ARPE + 7 + 1 + + + + + CR2 + TIM1 control register 2 + 8 + 0x0001 + 0x00 + + + CCPG + 0 + 1 + + + COMS + 2 + 1 + + + MMS + 4 + 3 + + + + + SMCR + TIM1 slave mode control register + 8 + 0x0002 + 0x00 + + + SMS + 0 + 3 + + + TS + 4 + 3 + + + MSM + 7 + 1 + + + + + ETR + TIM1 external trigger register + 8 + 0x0003 + 0x00 + + + ETF + 0 + 4 + + + ETPS + 4 + 2 + + + ECE + 6 + 1 + + + ETP + 7 + 1 + + + + + IER + TIM1 interrupt enable register + 8 + 0x0004 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + CC4IE + 4 + 1 + + + COMIE + 5 + 1 + + + TIE + 6 + 1 + + + BIE + 7 + 1 + + + + + SR1 + TIM1 status register 1 + 8 + 0x0005 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + CC4IF + 4 + 1 + + + COMIF + 5 + 1 + + + TIF + 6 + 1 + + + BIF + 7 + 1 + + + + + SR2 + TIM1 status register 2 + 8 + 0x0006 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + CC4OF + 4 + 1 + + + + + EGR + TIM1 event generation register + 8 + 0x0007 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + CC4G + 4 + 1 + + + COMG + 5 + 1 + + + TG + 6 + 1 + + + BG + 7 + 1 + + + + + CCMR1 + TIM1 capture/compare mode register 1 + 8 + 0x0008 + 0x00 + + + CC1S + 0 + 2 + + + OC1FE + 2 + 1 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + OC1CE + 7 + 1 + + + + + CCMR2 + TIM1 capture/compare mode register 2 + 8 + 0x0009 + 0x00 + + + CC2S + 0 + 2 + + + OC2FE + 2 + 1 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + OC2CE + 7 + 1 + + + + + CCMR3 + TIM1 capture/compare mode register 3 + 8 + 0x000A + 0x00 + + + CC3S + 0 + 2 + + + OC3FE + 2 + 1 + + + OC3PE + 3 + 1 + + + OC3M + 4 + 3 + + + OC3CE + 7 + 1 + + + + + CCMR4 + TIM1 capture/compare mode register 4 + 8 + 0x000B + 0x00 + + + CC4S + 0 + 2 + + + OC4FE + 2 + 1 + + + OC4PE + 3 + 1 + + + OC4M + 4 + 3 + + + OC4CE + 7 + 1 + + + + + CCER1 + TIM1 capture/compare enable register 1 + 8 + 0x000C + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC1NE + 2 + 1 + + + CC1NP + 3 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + CC2NE + 6 + 1 + + + CC2NP + 7 + 1 + + + + + CCER2 + TIM1 capture/compare enable register 2 + 8 + 0x000D + 0x00 + + + CC3E + 0 + 1 + + + CC3P + 1 + 1 + + + CC3NE + 2 + 1 + + + CC3NP + 3 + 1 + + + CC4E + 4 + 1 + + + CC4P + 5 + 1 + + + + + CNTRH + TIM1 counter high + 8 + 0x000E + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM1 counter low + 8 + 0x000F + 0x00 + + + CNT + 0 + 8 + + + + + PSCRH + TIM1 prescaler register high + 8 + 0x0010 + 0x00 + + + PSC + 0 + 8 + + + + + PSCRL + TIM1 prescaler register low + 8 + 0x0011 + 0x00 + + + PSC + 0 + 8 + + + + + ARRH + TIM1 auto-reload register high + 8 + 0x0012 + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM1 auto-reload register low + 8 + 0x0013 + 0xFF + + + ARR + 0 + 8 + + + + + RCR + TIM1 repetition counter register + 8 + 0x0014 + 0x00 + + + REP + 0 + 8 + + + + + CCR1H + TIM1 capture/compare register 1 high + 8 + 0x0015 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM1 capture/compare register 1 low + 8 + 0x0016 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM1 capture/compare register 2 high + 8 + 0x0017 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM1 capture/compare register 2 low + 8 + 0x0018 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR3H + TIM1 capture/compare register 3 high + 8 + 0x0019 + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR3L + TIM1 capture/compare register 3 low + 8 + 0x001A + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR4H + TIM1 capture/compare register 4 high + 8 + 0x001B + 0x00 + + + CCR4 + 0 + 8 + + + + + CCR4L + TIM1 capture/compare register 4 low + 8 + 0x001C + 0x00 + + + CCR4 + 0 + 8 + + + + + BKR + TIM1 break register + 8 + 0x001D + 0x00 + + + LOCK + 0 + 2 + + + OSSI + 2 + 1 + + + OSSR + 3 + 1 + + + BKE + 4 + 1 + + + BKP + 5 + 1 + + + AOE + 6 + 1 + + + MOE + 7 + 1 + + + + + DTR + TIM1 dead-time register + 8 + 0x001E + 0x00 + + + DTG + 0 + 8 + + + + + OISR + TIM1 output idle state register + 8 + 0x001F + 0x00 + + + OIS1 + 0 + 1 + + + OIS1N + 1 + 1 + + + OIS2 + 2 + 1 + + + OIS2N + 3 + 1 + + + OIS3 + 4 + 1 + + + OIS3N + 5 + 1 + + + OIS4 + 6 + 1 + + + + + + Interrupt_IRQ11 + Interrupt_IRQ11 interrupt + 11 + + + Interrupt_IRQ12 + Interrupt_IRQ12 interrupt + 12 + + + + TIM2 + 0x5300 + + 0x0000 + 21 + registers + + TIM2 + Timer + + + CR1 + TIM2 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM2 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + TIE + 6 + 1 + + + + + SR1 + TIM2 status register 1 + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + TIF + 6 + 1 + + + + + SR2 + TIM2 status register 2 + 8 + 0x0003 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + + + EGR + TIM2 event generation register + 8 + 0x0004 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + TG + 6 + 1 + + + + + CCMR1 + TIM2 capture/compare mode register 1 + 8 + 0x0005 + 0x00 + + + CC1S + 0 + 2 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + + + CCMR2 + TIM2 capture/compare mode register 2 + 8 + 0x0006 + 0x00 + + + CC2S + 0 + 2 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + + + CCMR3 + TIM2 capture/compare mode register 3 + 8 + 0x0007 + 0x00 + + + CC3S + 0 + 2 + + + OC3PE + 3 + 1 + + + OC3M + 4 + 3 + + + + + CCER1 + TIM2 capture/compare enable register 1 + 8 + 0x0008 + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + + + CCER2 + TIM2 capture/compare enable register 2 + 8 + 0x0009 + 0x00 + + + CC3E + 0 + 1 + + + CC3P + 1 + 1 + + + + + CNTRH + TIM2 counter high + 8 + 0x000A + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM2 counter low + 8 + 0x000B + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM2 prescaler register + 8 + 0x000C + 0x00 + + + PSC + 0 + 4 + + + + + ARRH + TIM2 auto-reload register high + 8 + 0x000D + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM2 auto-reload register low + 8 + 0x000E + 0xFF + + + ARR + 0 + 8 + + + + + CCR1H + TIM2 capture/compare register 1 high + 8 + 0x000F + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM2 capture/compare register 1 low + 8 + 0x0010 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM2 capture/compare reg + 8 + 0x0011 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM2 capture/compare register 2 low + 8 + 0x0012 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR3H + TIM2 capture/compare register 3 high + 8 + 0x0013 + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR3L + TIM2 capture/compare register 3 low + 8 + 0x0014 + 0x00 + + + CCR3 + 0 + 8 + + + + + + Interrupt_IRQ13 + Interrupt_IRQ13 interrupt + 13 + + + Interrupt_IRQ14 + Interrupt_IRQ14 interrupt + 14 + + + + TIM3 + 0x5320 + + 0x0000 + 17 + registers + + TIM3 + Timer + + + CR1 + TIM3 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM3 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + TIE + 6 + 1 + + + + + SR1 + TIM3 status register 1 + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + TIF + 6 + 1 + + + + + SR2 + TIM3 status register 2 + 8 + 0x0003 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + + + EGR + TIM3 event generation register + 8 + 0x0004 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + TG + 6 + 1 + + + + + CCMR1 + TIM3 capture/compare mode register 1 + 8 + 0x0005 + 0x00 + + + CC1S + 0 + 2 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + + + CCMR2 + TIM3 capture/compare mode register 2 + 8 + 0x0006 + 0x00 + + + CC2S + 0 + 2 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + + + CCER1 + TIM3 capture/compare enable register 1 + 8 + 0x0007 + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + + + CNTRH + TIM3 counter high + 8 + 0x0008 + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM3 counter low + 8 + 0x0009 + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM3 prescaler register + 8 + 0x000A + 0x00 + + + PSC + 0 + 4 + + + + + ARRH + TIM3 auto-reload register high + 8 + 0x000B + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM3 auto-reload register low + 8 + 0x000C + 0xFF + + + ARR + 0 + 8 + + + + + CCR1H + TIM3 capture/compare register 1 high + 8 + 0x000D + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM3 capture/compare register 1 low + 8 + 0x000E + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM3 capture/compare register 2 high + 8 + 0x000F + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM3 capture/compare register 2 low + 8 + 0x0010 + 0x00 + + + CCR2 + 0 + 8 + + + + + + Interrupt_IRQ15 + Interrupt_IRQ15 interrupt + 15 + + + Interrupt_IRQ16 + Interrupt_IRQ16 interrupt + 16 + + + + TIM4 + 0x5340 + + 0x0000 + 7 + registers + + TIM4 + Timer + + + CR1 + TIM4 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM4 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + TIE + 6 + 1 + + + + + SR + TIM4 status register + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + TIF + 6 + 1 + + + + + EGR + TIM4 event generation register + 8 + 0x0003 + 0x00 + + + UG + 0 + 1 + + + TG + 6 + 1 + + + + + CNTR + TIM4 counter + 8 + 0x0004 + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM4 prescaler register + 8 + 0x0005 + 0x00 + + + PSC + 0 + 3 + + + + + ARR + TIM4 auto-reload register + 8 + 0x0006 + 0xFF + + + ARR + 0 + 8 + + + + + + Interrupt_IRQ23 + Interrupt_IRQ23 interrupt + 23 + + + + UART2 + 0x5240 + + 0x0000 + 8 + registers + + + 0x0009 + 3 + registers + + UART2 + Uart + + + SR + UART2 status register + 8 + 0x0000 + 0xC0 + + + PE + 0 + 1 + + + FE + 1 + 1 + + + NF + 2 + 1 + + + OR_LHE + 3 + 1 + + + IDLE + 4 + 1 + + + RXNE + 5 + 1 + + + TC + 6 + 1 + + + TXE + 7 + 1 + + + + + DR + UART2 data register + 8 + 0x0001 + 0x00 + + + DR + 0 + 8 + + + + + BRR1 + UART2 baud rate register 1 + 8 + 0x0002 + 0x00 + + + UART_DIV + 0 + 8 + + + + + BRR2 + UART2 baud rate register 2 + 8 + 0x0003 + 0x00 + + + UART_DIV + 0 + 8 + + + + + CR1 + UART2 control register 1 + 8 + 0x0004 + 0x00 + + + PIEN + 0 + 1 + + + PS + 1 + 1 + + + PCEN + 2 + 1 + + + WAKE + 3 + 1 + + + M + 4 + 1 + + + UART0 + 5 + 1 + + + T8 + 6 + 1 + + + R8 + 7 + 1 + + + + + CR2 + UART2 control register 2 + 8 + 0x0005 + 0x00 + + + SBK + 0 + 1 + + + RWU + 1 + 1 + + + REN + 2 + 1 + + + TEN + 3 + 1 + + + ILIEN + 4 + 1 + + + RIEN + 5 + 1 + + + TCIEN + 6 + 1 + + + TIEN + 7 + 1 + + + + + CR3 + UART2 control register 3 + 8 + 0x0006 + 0x00 + + + LBCL + 0 + 1 + + + CPHA + 1 + 1 + + + CPOL + 2 + 1 + + + CKEN + 3 + 1 + + + STOP + 4 + 2 + + + LINEN + 7 + 1 + + + + + CR4 + UART2 control register 4 + 8 + 0x0007 + 0x00 + + + ADD + 0 + 4 + + + LBDF + 4 + 1 + + + LBDL + 5 + 1 + + + LBDIEN + 6 + 1 + + + + + CR6 + UART2 control register 6 + 8 + 0x0009 + 0x00 + + + LSF + 0 + 1 + + + LHDF + 1 + 1 + + + LHDIEN + 2 + 1 + + + LASE + 4 + 1 + + + LSLV + 5 + 1 + + + LDUM + 7 + 1 + + + + + GTR + UART2 guard time register + 8 + 0x000A + 0x00 + + + GT + 0 + 8 + + + + + PSCR + UART2 prescaler register + 8 + 0x000B + 0x00 + + + PSC + 0 + 8 + + + + + + Interrupt_IRQ20 + Interrupt_IRQ20 interrupt + 20 + + + Interrupt_IRQ21 + Interrupt_IRQ21 interrupt + 21 + + + + WWDG + 0x50D1 + + 0x0000 + 2 + registers + + WWDG + Watchdog + + + CR + WWDG control register + 8 + 0x0000 + 0x7F + + + T0 + 0 + 1 + + + T1 + 1 + 1 + + + T2 + 2 + 1 + + + T3 + 3 + 1 + + + T4 + 4 + 1 + + + T5 + 5 + 1 + + + T6 + 6 + 1 + + + WDGA + 7 + 1 + + + + + WR + WWDR window register + 8 + 0x0001 + 0x7F + + + W0 + 0 + 1 + + + W1 + 1 + 1 + + + W2 + 2 + 1 + + + W3 + 3 + 1 + + + W4 + 4 + 1 + + + W5 + 5 + 1 + + + W6 + 6 + 1 + + + + + + + diff --git a/misc/svd/STM8S105K4.svd b/misc/svd/STM8S105K4.svd new file mode 100644 index 0000000..ab8e43d --- /dev/null +++ b/misc/svd/STM8S105K4.svd @@ -0,0 +1,7320 @@ + + + STMicroelectronics + STM8S105K4 + 1.0 + STM8S/STM8AF, medium density + Mainstream Access line 8-bit MCU with 16 Kbytes Flash, 16 MHz CPU, integrated EEPROM + + other + r1p0 + big + false + false + false + false + false + false + false + false + false + 4 + + 8 + 8 + 8 + read-write + + + ADC1 + 0x53E0 + + 0x0000 + 20 + registers + + + 0x0020 + 16 + registers + + ADC1 + ADC + + + DB0RH + ADC data buffer registers + 8 + 0x0000 + 0x00 + + + DBH + 0 + 8 + + + + + DB0RL + ADC data buffer registers + 8 + 0x0001 + 0x00 + + + DL + 0 + 8 + + + + + DB1RH + ADC data buffer registers + 8 + 0x0002 + 0x00 + + + DBH + 0 + 8 + + + + + DB1RL + ADC data buffer registers + 8 + 0x0003 + 0x00 + + + DL + 0 + 8 + + + + + DB2RH + ADC data buffer registers + 8 + 0x0004 + 0x00 + + + DBH + 0 + 8 + + + + + DB2RL + ADC data buffer registers + 8 + 0x0005 + 0x00 + + + DL + 0 + 8 + + + + + DB3RH + ADC data buffer registers + 8 + 0x0006 + 0x00 + + + DBH + 0 + 8 + + + + + DB3RL + ADC data buffer registers + 8 + 0x0007 + 0x00 + + + DL + 0 + 8 + + + + + DB4RH + ADC data buffer registers + 8 + 0x0008 + 0x00 + + + DBH + 0 + 8 + + + + + DB4RL + ADC data buffer registers + 8 + 0x0009 + 0x00 + + + DL + 0 + 8 + + + + + DB5RH + ADC data buffer registers + 8 + 0x000A + 0x00 + + + DBH + 0 + 8 + + + + + DB5RL + ADC data buffer registers + 8 + 0x000B + 0x00 + + + DL + 0 + 8 + + + + + DB6RH + ADC data buffer registers + 8 + 0x000C + 0x00 + + + DBH + 0 + 8 + + + + + DB6RL + ADC data buffer registers + 8 + 0x000D + 0x00 + + + DL + 0 + 8 + + + + + DB7RH + ADC data buffer registers + 8 + 0x000E + 0x00 + + + DBH + 0 + 8 + + + + + DB7RL + ADC data buffer registers + 8 + 0x000F + 0x00 + + + DL + 0 + 8 + + + + + DB8RH + ADC data buffer registers + 8 + 0x0010 + 0x00 + + + DBH + 0 + 8 + + + + + DB8RL + ADC data buffer registers + 8 + 0x0011 + 0x00 + + + DL + 0 + 8 + + + + + DB9RH + ADC data buffer registers + 8 + 0x0012 + 0x00 + + + DBH + 0 + 8 + + + + + DB9RL + ADC data buffer registers + 8 + 0x0013 + 0x00 + + + DL + 0 + 8 + + + + + CSR + ADC control/status register + 8 + 0x0020 + 0x00 + + + CH + 0 + 4 + + + AWDIE + 4 + 1 + + + EOCIE + 5 + 1 + + + AWD + 6 + 1 + + + EOC + 7 + 1 + + + + + CR1 + ADC configuration register 1 + 8 + 0x0021 + 0x00 + + + ADON + 0 + 1 + + + CONT + 1 + 1 + + + SPSEL + 4 + 3 + + + + + CR2 + ADC configuration register 2 + 8 + 0x0022 + 0x00 + + + SCAN + 1 + 1 + + + ALIGN + 3 + 1 + + + EXTSEL + 4 + 2 + + + EXTTRIG + 6 + 1 + + + + + CR3 + ADC configuration register 3 + 8 + 0x0023 + 0x00 + + + OVR + 6 + 1 + + + DBUF + 7 + 1 + + + + + DRH + ADC data register high + 8 + 0x0024 + 0x00 + + + DH + 0 + 8 + + + + + DRL + ADC data register low + 8 + 0x0025 + 0x00 + + + DL + 0 + 8 + + + + + TDRH + ADC Schmitt trigger disable register high + 8 + 0x0026 + 0x00 + + + TD + 0 + 8 + + + + + TDRL + ADC Schmitt trigger disable register low + 8 + 0x0027 + 0x00 + + + TL + 0 + 8 + + + + + HTRH + ADC high threshold register high + 8 + 0x0028 + 0x03 + + + HT + 0 + 8 + + + + + HTRL + ADC high threshold register low + 8 + 0x0029 + 0xFF + + + HT + 0 + 2 + + + + + LTRH + ADC low threshold register high + 8 + 0x002A + 0x00 + + + LT + 0 + 8 + + + + + LTRL + ADC low threshold register low + 8 + 0x002B + 0x00 + + + LT + 0 + 2 + + + + + AWSRH + ADC analog watchdog status register high + 8 + 0x002C + 0x00 + + + AWS8 + 0 + 1 + + + AWS9 + 1 + 1 + + + + + AWSRL + ADC analog watchdog status register low + 8 + 0x002D + 0x00 + + + AWS0 + 0 + 1 + + + AWS1 + 1 + 1 + + + AWS2 + 2 + 1 + + + AWS3 + 3 + 1 + + + AWS4 + 4 + 1 + + + AWS5 + 5 + 1 + + + AWS6 + 6 + 1 + + + AWS7 + 7 + 1 + + + + + AWCRH + ADC analog watchdog control register high + 8 + 0x002E + 0x00 + + + AWEN8 + 0 + 1 + + + AWEN9 + 1 + 1 + + + + + AWCRL + ADC analog watchdog control register low + 8 + 0x002F + 0x00 + + + AWEN0 + 0 + 1 + + + AWEN1 + 1 + 1 + + + AWEN2 + 2 + 1 + + + AWEN3 + 3 + 1 + + + AWEN4 + 4 + 1 + + + AWEN5 + 5 + 1 + + + AWEN6 + 6 + 1 + + + AWEN7 + 7 + 1 + + + + + + Interrupt_IRQ22 + Interrupt_IRQ22 interrupt + 22 + + + + AWU + 0x50F0 + + 0x0000 + 3 + registers + + AWU + AWU + + + CSR1 + AWU control/status register 1 + 8 + 0x0000 + 0x00 + + + MSR + 0 + 1 + + + AWUEN + 4 + 1 + + + AWUF + 5 + 1 + + + + + APR + AWU asynchronous prescaler buffer register + 8 + 0x0001 + 0x3F + + + APR + 0 + 6 + + + + + TBR + AWU timebase selection register + 8 + 0x0002 + 0x00 + + + AWUTB + 0 + 4 + + + + + + Interrupt_IRQ1 + Interrupt_IRQ1 interrupt + 1 + + + + BEEP + 0x50F3 + + 0x0000 + 1 + registers + + BEEP + BEEP + + + CSR + BEEP control/status register + 8 + 0x0000 + 0x1F + + + BEEPDIV + 0 + 5 + + + BEEPEN + 5 + 1 + + + BEEPSEL + 6 + 2 + + + + + + + CLK + 0x50C0 + + 0x0000 + 2 + registers + + + 0x0003 + 11 + registers + + CLK + CLK + + + ICKR + Internal clock control register + 8 + 0x0000 + 0x01 + + + HSIEN + 0 + 1 + + + HSIRDY + 1 + 1 + + + FHW + 2 + 1 + + + LSIEN + 3 + 1 + + + LSIRDY + 4 + 1 + + + REGAH + 5 + 1 + + + + + ECKR + External clock control register + 8 + 0x0001 + 0x00 + + + HSEEN + 0 + 1 + + + HSERDY + 1 + 1 + + + + + CMSR + Clock master status register + 8 + 0x0003 + 0xE1 + + + CKM + 0 + 8 + + + + + SWR + Clock master switch register + 8 + 0x0004 + 0xE1 + + + SWI + 0 + 8 + + + + + SWCR + Clock switch control register + 8 + 0x0005 + 0x00 + + + SWBSY + 0 + 1 + + + SWEN + 1 + 1 + + + SWIEN + 2 + 1 + + + SWIF + 3 + 1 + + + + + CKDIVR + Clock divider register + 8 + 0x0006 + 0x18 + + + CPUDIV + 0 + 3 + + + HSIDIV + 3 + 2 + + + + + PCKENR1 + Peripheral clock gating register 1 + 8 + 0x0007 + 0xFF + + + PCKEN + 0 + 8 + + + + + CSSR + Clock security system register + 8 + 0x0008 + 0x00 + + + CSSEN + 0 + 1 + + + AUX + 1 + 1 + + + CSSDIE + 2 + 1 + + + CSSD + 3 + 1 + + + + + CCOR + Configurable clock control register + 8 + 0x0009 + 0x00 + + + CCOEN + 0 + 1 + + + CCOSEL + 1 + 4 + + + CCORDY + 5 + 1 + + + CC0BSY + 6 + 1 + + + + + PCKENR2 + Peripheral clock gating register 2 + 8 + 0x000A + 0xFF + + + PCKEN2 + 0 + 8 + + + + + CANCCR + CAN clock control register + 8 + 0x000B + 0x00 + + + CANDIV + 0 + 3 + + + + + HSITRIMR + HSI clock calibration trimming register + 8 + 0x000C + 0x00 + + + HSITRIM + 0 + 4 + + + + + SWIMCCR + SWIM clock control register + 8 + 0x000D + 0x00 + + + SWIMCLK + 0 + 1 + + + + + + Interrupt_IRQ2 + Interrupt_IRQ2 interrupt + 2 + + + + CPU + 0x7F00 + + 0x0000 + 11 + registers + + + 0x0060 + 1 + registers + + CPU + CPU + + + A + Accumulator + 8 + 0x0000 + 0x00 + + + PCE + Program counter extended + 8 + 0x0001 + 0x00 + + + PCH + Program counter high + 8 + 0x0002 + 0x00 + + + PCL + Program counter low + 8 + 0x0003 + 0x00 + + + XH + X index register high + 8 + 0x0004 + 0x00 + + + XL + X index register low + 8 + 0x0005 + 0x00 + + + YH + Y index register high + 8 + 0x0006 + 0x00 + + + YL + Y index register low + 8 + 0x0007 + 0x00 + + + SPH + Stack pointer high + 8 + 0x0008 + 0x07 + + + SPL + Stack pointer low + 8 + 0x0009 + 0xFF + + + CCR + Condition code register + 8 + 0x000A + 0x28 + + + C + 0 + 1 + + + Z + 1 + 1 + + + NF + 2 + 1 + + + I0 + 3 + 1 + + + H + 4 + 1 + + + I1 + 5 + 1 + + + V + 7 + 1 + + + + + CFG_GCR + Global configuration register + 8 + 0x0060 + 0x00 + + + SWO + 0 + 1 + + + AL + 1 + 1 + + + + + + + DM + 0x7F90 + + 0x0000 + 11 + registers + + DM + DM + + + BK1RE + DM breakpoint 1 register extended byte + 8 + 0x0000 + 0xFF + + + BK1RH + DM breakpoint 1 register high byte + 8 + 0x0001 + 0xFF + + + BK1RL + DM breakpoint 1 register low byte + 8 + 0x0002 + 0xFF + + + BK2RE + DM breakpoint 2 register extended byte + 8 + 0x0003 + 0xFF + + + BK2RH + DM breakpoint 2 register high byte + 8 + 0x0004 + 0xFF + + + BK2RL + DM breakpoint 2 register low byte + 8 + 0x0005 + 0xFF + + + CR1 + DM debug module control register 1 + 8 + 0x0006 + 0x00 + + + CR2 + DM debug module control register 2 + 8 + 0x0007 + 0x00 + + + CSR1 + DM debug module control/status register 1 + 8 + 0x0008 + 0x10 + + + CSR2 + DM debug module control/status register 2 + 8 + 0x0009 + 0x00 + + + ENFCTR + DM enable function register + 8 + 0x000A + 0xFF + + + + + FLASH + 0x505A + + 0x0000 + 6 + registers + + + 0x0008 + 1 + registers + + + 0x000a + 1 + registers + + FLASH + FLASH + + + CR1 + Flash control register 1 + 8 + 0x0000 + 0x00 + + + FIX + 0 + 1 + + + IE + 1 + 1 + + + AHALT + 2 + 1 + + + HALT + 3 + 1 + + + + + CR2 + Flash control register 2 + 8 + 0x0001 + 0x00 + + + PRG + 0 + 1 + + + FPRG + 4 + 1 + + + ERASE + 5 + 1 + + + WPRG + 6 + 1 + + + OPT + 7 + 1 + + + + + NCR2 + Flash complementary control register 2 + 8 + 0x0002 + 0xFF + + + NPRG + 0 + 1 + + + NFPRG + 4 + 1 + + + NERASE + 5 + 1 + + + NWPRG + 6 + 1 + + + NOPT + 7 + 1 + + + + + FPR + Flash protection register + 8 + 0x0003 + 0x00 + + + WPB0 + 0 + 1 + + + WPB1 + 1 + 1 + + + WPB2 + 2 + 1 + + + WPB3 + 3 + 1 + + + WPB4 + 4 + 1 + + + WPB5 + 5 + 1 + + + + + NFPR + Flash complementary protection register + 8 + 0x0004 + 0xFF + + + NWPB0 + 0 + 1 + + + NWPB1 + 1 + 1 + + + NWPB2 + 2 + 1 + + + NWPB3 + 3 + 1 + + + NWPB4 + 4 + 1 + + + NWPB5 + 5 + 1 + + + + + IAPSR + Flash in-application programming status register + 8 + 0x0005 + 0x00 + + + WR_PG_DIS + 0 + 1 + + + PUL + 1 + 1 + + + EOP + 2 + 1 + + + DUL + 3 + 1 + + + HVOFF + 6 + 1 + + + + + PUKR + Flash program memory unprotection register + 8 + 0x0008 + 0x00 + + + MASS_PRG + 0 + 8 + + + + + DUKR + Data EEPROM unprotection register + 8 + 0x000A + 0x00 + + + MASS_DATA + 0 + 8 + + + + + + Interrupt_IRQ24 + Interrupt_IRQ24 interrupt + 24 + + + + I2C + 0x5210 + + 0x0000 + 5 + registers + + + 0x0006 + 9 + registers + + I2C + I2C + + + CR1 + I2C control register 1 + 8 + 0x0000 + 0x00 + + + PE + 0 + 1 + + + ENGC + 6 + 1 + + + NOSTRETCH + 7 + 1 + + + + + CR2 + I2C control register 2 + 8 + 0x0001 + 0x00 + + + START + 0 + 1 + + + STOP + 1 + 1 + + + ACK + 2 + 1 + + + POS + 3 + 1 + + + SWRST + 7 + 1 + + + + + FREQR + I2C frequency register + 8 + 0x0002 + 0x00 + + + FREQ + 0 + 6 + + + + + OARL + I2C Own address register low + 8 + 0x0003 + 0x00 + + + ADD0 + 0 + 1 + + + ADD + 1 + 7 + + + + + OARH + I2C own address register high + 8 + 0x0004 + 0x00 + + + ADD + 1 + 2 + + + ADDCONF + 6 + 1 + + + ADDMODE + 7 + 1 + + + + + DR + I2C data register + 8 + 0x0006 + 0x00 + + + DR + 0 + 8 + + + + + SR1 + I2C status register 1 + 8 + 0x0007 + 0x00 + + + SB + 0 + 1 + + + ADDR + 1 + 1 + + + BTF + 2 + 1 + + + ADD10 + 3 + 1 + + + STOPF + 4 + 1 + + + RXNE + 6 + 1 + + + TXE + 7 + 1 + + + + + SR2 + I2C status register 2 + 8 + 0x0008 + 0x00 + + + BERR + 0 + 1 + + + ARLO + 1 + 1 + + + AF + 2 + 1 + + + OVR + 3 + 1 + + + WUFH + 5 + 1 + + + + + SR3 + I2C status register 3 + 8 + 0x0009 + 0x00 + + + MSL + 0 + 1 + + + BUSY + 1 + 1 + + + TRA + 2 + 1 + + + GENCALL + 4 + 1 + + + + + ITR + I2C interrupt control register + 8 + 0x000A + 0x00 + + + ITERREN + 0 + 1 + + + ITEVTEN + 1 + 1 + + + ITBUFEN + 2 + 1 + + + + + CCRL + I2C clock control register low + 8 + 0x000B + 0x00 + + + CCR + 0 + 8 + + + + + CCRH + I2C clock control register high + 8 + 0x000C + 0x00 + + + CCR + 0 + 4 + + + DUTY + 6 + 1 + + + F_S + 7 + 1 + + + + + TRISER + I2C TRISE register + 8 + 0x000D + 0x02 + + + TRISE + 0 + 6 + + + + + PECR + I2C packet error checking register + 8 + 0x000E + 0x00 + + + PEC + 0 + 8 + + + + + + Interrupt_IRQ19 + Interrupt_IRQ19 interrupt + 19 + + + + ITC_EXTI + 0x50A0 + + 0x0000 + 2 + registers + + ITC_EXTI + ITC_EXTI + + + CR1 + External interrupt control register 1 + 8 + 0x0000 + 0x00 + + + PAIS + 0 + 2 + + + PBIS + 2 + 2 + + + PCIS + 4 + 2 + + + PDIS + 6 + 2 + + + + + CR2 + External interrupt control register 2 + 8 + 0x0001 + 0x00 + + + PEIS + 0 + 2 + + + TLIS + 2 + 1 + + + + + + + ITC_SPR + 0x7F70 + + 0x0000 + 8 + registers + + ITC_SPR + ITC_SPR + + + SPR1 + Interrupt software priority register 1 + 8 + 0x0000 + 0xFF + + + VECT0SPR + 0 + 2 + + + VECT1SPR + 2 + 2 + + + VECT2SPR + 4 + 2 + + + VECT3SPR + 6 + 2 + + + + + SPR2 + Interrupt software priority register 2 + 8 + 0x0001 + 0xFF + + + VECT4SPR + 0 + 2 + + + VECT5SPR + 2 + 2 + + + VECT6SPR + 4 + 2 + + + VECT7SPR + 6 + 2 + + + + + SPR3 + Interrupt software priority register 3 + 8 + 0x0002 + 0xFF + + + VECT8SPR + 0 + 2 + + + VECT9SPR + 2 + 2 + + + VECT10SPR + 4 + 2 + + + VECT11SPR + 6 + 2 + + + + + SPR4 + Interrupt software priority register 4 + 8 + 0x0003 + 0xFF + + + VECT12SPR + 0 + 2 + + + VECT13SPR + 2 + 2 + + + VECT14SPR + 4 + 2 + + + VECT15SPR + 6 + 2 + + + + + SPR5 + Interrupt software priority register 5 + 8 + 0x0004 + 0xFF + + + VECT16SPR + 0 + 2 + + + VECT17SPR + 2 + 2 + + + VECT18SPR + 4 + 2 + + + VECT19SPR + 6 + 2 + + + + + SPR6 + Interrupt software priority register 6 + 8 + 0x0005 + 0xFF + + + VECT20SPR + 0 + 2 + + + VECT21SPR + 2 + 2 + + + VECT22SPR + 4 + 2 + + + VECT23SPR + 6 + 2 + + + + + SPR7 + Interrupt software priority register 7 + 8 + 0x0006 + 0xFF + + + VECT24SPR + 0 + 2 + + + VECT25SPR + 2 + 2 + + + VECT26SPR + 4 + 2 + + + VECT27SPR + 6 + 2 + + + + + SPR8 + Interrupt software priority register 8 + 8 + 0x0007 + 0xFF + + + VECT28SPR + 0 + 2 + + + VECT29SPR + 2 + 2 + + + + + + + IWDG + 0x50E0 + + 0x0000 + 3 + registers + + IWDG + Watchdog + + + KR + IWDG key register + 8 + 0x0000 + 0x00 + + + KEY + 0 + 8 + + + + + PR + IWDG prescaler register + 8 + 0x0001 + 0x00 + + + PR + 0 + 3 + + + + + RLR + IWDG reload register + 8 + 0x0002 + 0xFF + + + RL + 0 + 8 + + + + + + + OPT + 0x4800 + + 0x0000 + 11 + registers + + + 0x007e + 2 + registers + + OPT + Option-Bytes + + + OPT0 + Read-out protection (ROP) + 8 + 0x0000 + 0x00 + + + OPT1 + User boot code (UBC) + 8 + 0x0001 + 0x00 + + + NOPT1 + User boot code (UBC) (complementary byte) + 8 + 0x0002 + 0xFF + + + OPT2 + Alternate function remapping (AFR) + 8 + 0x0003 + 0x00 + + + NOPT2 + Alternate function remapping (AFR) (complementary byte) + 8 + 0x0004 + 0xFF + + + OPT3 + Misc. option + 8 + 0x0005 + 0x00 + + + NOPT3 + Misc. option (complementary byte) + 8 + 0x0006 + 0xFF + + + OPT4 + Clock option + 8 + 0x0007 + 0x00 + + + NOPT4 + Clock option (complementary byte) + 8 + 0x0008 + 0xFF + + + OPT5 + HSE clock startup + 8 + 0x0009 + 0x00 + + + NOPT5 + HSE clock startup (complementary byte) + 8 + 0x000A + 0xFF + + + OPTBL + Bootloader + 8 + 0x007E + 0x00 + + + NOPTBL + Bootloader (complementary byte) + 8 + 0x007F + 0xFF + + + + + PORTA + 0x5000 + + 0x0000 + 5 + registers + + PORTA + GPIO + + + ODR + Port A data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port A input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port A data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port A control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port A control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTB + 0x5005 + + 0x0000 + 5 + registers + + PORTB + GPIO + + + ODR + Port B data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port B input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port B data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port B control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port B control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTC + 0x500A + + 0x0000 + 5 + registers + + PORTC + GPIO + + + ODR + Port C data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port C input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port C data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port C control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port C control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTD + 0x500F + + 0x0000 + 5 + registers + + PORTD + GPIO + + + ODR + Port D data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port D input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port D data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port D control register 1 + 8 + 0x0003 + 0x02 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port D control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTE + 0x5014 + + 0x0000 + 5 + registers + + PORTE + GPIO + + + ODR + Port E data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port E input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port E data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port E control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port E control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTF + 0x5019 + + 0x0000 + 5 + registers + + PORTF + GPIO + + + ODR + Port F data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port F input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port F data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port F control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port F control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTG + 0x501E + + 0x0000 + 5 + registers + + PORTG + GPIO + + + ODR + Port G data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port G input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port G data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port G control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port G control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTH + 0x5023 + + 0x0000 + 5 + registers + + PORTH + GPIO + + + ODR + Port H data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port H input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port H data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port H control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port H control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTI + 0x5028 + + 0x0000 + 5 + registers + + PORTI + GPIO + + + ODR + Port I data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port I input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port I data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port I control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port I control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + RST + 0x50B3 + + 0x0000 + 1 + registers + + RST + RST + + + SR + Reset status register + 8 + 0x0000 + 0x00 + + + WWDGF + 0 + 1 + + + IWDGF + 1 + 1 + + + ILLOPF + 2 + 1 + + + SWIMF + 3 + 1 + + + EMCF + 4 + 1 + + + + + + + SPI + 0x5200 + + 0x0000 + 8 + registers + + SPI + SPI + + + CR1 + SPI control register 1 + 8 + 0x0000 + 0x00 + + + CPHA + 0 + 1 + + + CPOL + 1 + 1 + + + MSTR + 2 + 1 + + + BR + 3 + 3 + + + SPE + 6 + 1 + + + LSBFIRST + 7 + 1 + + + + + CR2 + SPI control register 2 + 8 + 0x0001 + 0x00 + + + SSI + 0 + 1 + + + SSM + 1 + 1 + + + RXONLY + 2 + 1 + + + CRCNEXT + 4 + 1 + + + CECEN + 5 + 1 + + + BDOE + 6 + 1 + + + BDM + 7 + 1 + + + + + ICR + SPI interrupt control register + 8 + 0x0002 + 0x00 + + + WKIE + 4 + 1 + + + ERRIE + 5 + 1 + + + RXIE + 6 + 1 + + + TXIE + 7 + 1 + + + + + SR + SPI status register + 8 + 0x0003 + 0x02 + + + RXNE + 0 + 1 + + + TXE + 1 + 1 + + + WKUP + 3 + 1 + + + CRCERR + 4 + 1 + + + MODF + 5 + 1 + + + OVR + 6 + 1 + + + BSY + 7 + 1 + + + + + DR + SPI data register + 8 + 0x0004 + 0x00 + + + DR + 0 + 8 + + + + + CRCPR + SPI CRC polynomial register + 8 + 0x0005 + 0x07 + + + CRCPOLY + 0 + 8 + + + + + RXCRCR + SPI Rx CRC register + 8 + 0x0006 + 0xFF + + + RXCRC + 0 + 8 + + + + + TXCRCR + SPI Tx CRC register + 8 + 0x0007 + 0xFF + + + TXCRC + 0 + 8 + + + + + + Interrupt_IRQ10 + Interrupt_IRQ10 interrupt + 10 + + + + SWIM + 0x7F80 + + 0x0000 + 1 + registers + + SWIM + Debug + + + CSR + SWIM control status register + 8 + 0x0000 + 0x00 + + + + + TIM1 + 0x5250 + + 0x0000 + 32 + registers + + TIM1 + Timer + + + CR1 + TIM1 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + DIR + 4 + 1 + + + CMS + 5 + 2 + + + ARPE + 7 + 1 + + + + + CR2 + TIM1 control register 2 + 8 + 0x0001 + 0x00 + + + CCPG + 0 + 1 + + + COMS + 2 + 1 + + + MMS + 4 + 3 + + + + + SMCR + TIM1 slave mode control register + 8 + 0x0002 + 0x00 + + + SMS + 0 + 3 + + + TS + 4 + 3 + + + MSM + 7 + 1 + + + + + ETR + TIM1 external trigger register + 8 + 0x0003 + 0x00 + + + ETF + 0 + 4 + + + ETPS + 4 + 2 + + + ECE + 6 + 1 + + + ETP + 7 + 1 + + + + + IER + TIM1 interrupt enable register + 8 + 0x0004 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + CC4IE + 4 + 1 + + + COMIE + 5 + 1 + + + TIE + 6 + 1 + + + BIE + 7 + 1 + + + + + SR1 + TIM1 status register 1 + 8 + 0x0005 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + CC4IF + 4 + 1 + + + COMIF + 5 + 1 + + + TIF + 6 + 1 + + + BIF + 7 + 1 + + + + + SR2 + TIM1 status register 2 + 8 + 0x0006 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + CC4OF + 4 + 1 + + + + + EGR + TIM1 event generation register + 8 + 0x0007 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + CC4G + 4 + 1 + + + COMG + 5 + 1 + + + TG + 6 + 1 + + + BG + 7 + 1 + + + + + CCMR1 + TIM1 capture/compare mode register 1 + 8 + 0x0008 + 0x00 + + + CC1S + 0 + 2 + + + OC1FE + 2 + 1 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + OC1CE + 7 + 1 + + + + + CCMR2 + TIM1 capture/compare mode register 2 + 8 + 0x0009 + 0x00 + + + CC2S + 0 + 2 + + + OC2FE + 2 + 1 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + OC2CE + 7 + 1 + + + + + CCMR3 + TIM1 capture/compare mode register 3 + 8 + 0x000A + 0x00 + + + CC3S + 0 + 2 + + + OC3FE + 2 + 1 + + + OC3PE + 3 + 1 + + + OC3M + 4 + 3 + + + OC3CE + 7 + 1 + + + + + CCMR4 + TIM1 capture/compare mode register 4 + 8 + 0x000B + 0x00 + + + CC4S + 0 + 2 + + + OC4FE + 2 + 1 + + + OC4PE + 3 + 1 + + + OC4M + 4 + 3 + + + OC4CE + 7 + 1 + + + + + CCER1 + TIM1 capture/compare enable register 1 + 8 + 0x000C + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC1NE + 2 + 1 + + + CC1NP + 3 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + CC2NE + 6 + 1 + + + CC2NP + 7 + 1 + + + + + CCER2 + TIM1 capture/compare enable register 2 + 8 + 0x000D + 0x00 + + + CC3E + 0 + 1 + + + CC3P + 1 + 1 + + + CC3NE + 2 + 1 + + + CC3NP + 3 + 1 + + + CC4E + 4 + 1 + + + CC4P + 5 + 1 + + + + + CNTRH + TIM1 counter high + 8 + 0x000E + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM1 counter low + 8 + 0x000F + 0x00 + + + CNT + 0 + 8 + + + + + PSCRH + TIM1 prescaler register high + 8 + 0x0010 + 0x00 + + + PSC + 0 + 8 + + + + + PSCRL + TIM1 prescaler register low + 8 + 0x0011 + 0x00 + + + PSC + 0 + 8 + + + + + ARRH + TIM1 auto-reload register high + 8 + 0x0012 + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM1 auto-reload register low + 8 + 0x0013 + 0xFF + + + ARR + 0 + 8 + + + + + RCR + TIM1 repetition counter register + 8 + 0x0014 + 0x00 + + + REP + 0 + 8 + + + + + CCR1H + TIM1 capture/compare register 1 high + 8 + 0x0015 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM1 capture/compare register 1 low + 8 + 0x0016 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM1 capture/compare register 2 high + 8 + 0x0017 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM1 capture/compare register 2 low + 8 + 0x0018 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR3H + TIM1 capture/compare register 3 high + 8 + 0x0019 + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR3L + TIM1 capture/compare register 3 low + 8 + 0x001A + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR4H + TIM1 capture/compare register 4 high + 8 + 0x001B + 0x00 + + + CCR4 + 0 + 8 + + + + + CCR4L + TIM1 capture/compare register 4 low + 8 + 0x001C + 0x00 + + + CCR4 + 0 + 8 + + + + + BKR + TIM1 break register + 8 + 0x001D + 0x00 + + + LOCK + 0 + 2 + + + OSSI + 2 + 1 + + + OSSR + 3 + 1 + + + BKE + 4 + 1 + + + BKP + 5 + 1 + + + AOE + 6 + 1 + + + MOE + 7 + 1 + + + + + DTR + TIM1 dead-time register + 8 + 0x001E + 0x00 + + + DTG + 0 + 8 + + + + + OISR + TIM1 output idle state register + 8 + 0x001F + 0x00 + + + OIS1 + 0 + 1 + + + OIS1N + 1 + 1 + + + OIS2 + 2 + 1 + + + OIS2N + 3 + 1 + + + OIS3 + 4 + 1 + + + OIS3N + 5 + 1 + + + OIS4 + 6 + 1 + + + + + + Interrupt_IRQ11 + Interrupt_IRQ11 interrupt + 11 + + + Interrupt_IRQ12 + Interrupt_IRQ12 interrupt + 12 + + + + TIM2 + 0x5300 + + 0x0000 + 21 + registers + + TIM2 + Timer + + + CR1 + TIM2 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM2 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + TIE + 6 + 1 + + + + + SR1 + TIM2 status register 1 + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + TIF + 6 + 1 + + + + + SR2 + TIM2 status register 2 + 8 + 0x0003 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + + + EGR + TIM2 event generation register + 8 + 0x0004 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + TG + 6 + 1 + + + + + CCMR1 + TIM2 capture/compare mode register 1 + 8 + 0x0005 + 0x00 + + + CC1S + 0 + 2 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + + + CCMR2 + TIM2 capture/compare mode register 2 + 8 + 0x0006 + 0x00 + + + CC2S + 0 + 2 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + + + CCMR3 + TIM2 capture/compare mode register 3 + 8 + 0x0007 + 0x00 + + + CC3S + 0 + 2 + + + OC3PE + 3 + 1 + + + OC3M + 4 + 3 + + + + + CCER1 + TIM2 capture/compare enable register 1 + 8 + 0x0008 + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + + + CCER2 + TIM2 capture/compare enable register 2 + 8 + 0x0009 + 0x00 + + + CC3E + 0 + 1 + + + CC3P + 1 + 1 + + + + + CNTRH + TIM2 counter high + 8 + 0x000A + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM2 counter low + 8 + 0x000B + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM2 prescaler register + 8 + 0x000C + 0x00 + + + PSC + 0 + 4 + + + + + ARRH + TIM2 auto-reload register high + 8 + 0x000D + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM2 auto-reload register low + 8 + 0x000E + 0xFF + + + ARR + 0 + 8 + + + + + CCR1H + TIM2 capture/compare register 1 high + 8 + 0x000F + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM2 capture/compare register 1 low + 8 + 0x0010 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM2 capture/compare reg + 8 + 0x0011 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM2 capture/compare register 2 low + 8 + 0x0012 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR3H + TIM2 capture/compare register 3 high + 8 + 0x0013 + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR3L + TIM2 capture/compare register 3 low + 8 + 0x0014 + 0x00 + + + CCR3 + 0 + 8 + + + + + + Interrupt_IRQ13 + Interrupt_IRQ13 interrupt + 13 + + + Interrupt_IRQ14 + Interrupt_IRQ14 interrupt + 14 + + + + TIM3 + 0x5320 + + 0x0000 + 17 + registers + + TIM3 + Timer + + + CR1 + TIM3 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM3 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + TIE + 6 + 1 + + + + + SR1 + TIM3 status register 1 + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + TIF + 6 + 1 + + + + + SR2 + TIM3 status register 2 + 8 + 0x0003 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + + + EGR + TIM3 event generation register + 8 + 0x0004 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + TG + 6 + 1 + + + + + CCMR1 + TIM3 capture/compare mode register 1 + 8 + 0x0005 + 0x00 + + + CC1S + 0 + 2 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + + + CCMR2 + TIM3 capture/compare mode register 2 + 8 + 0x0006 + 0x00 + + + CC2S + 0 + 2 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + + + CCER1 + TIM3 capture/compare enable register 1 + 8 + 0x0007 + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + + + CNTRH + TIM3 counter high + 8 + 0x0008 + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM3 counter low + 8 + 0x0009 + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM3 prescaler register + 8 + 0x000A + 0x00 + + + PSC + 0 + 4 + + + + + ARRH + TIM3 auto-reload register high + 8 + 0x000B + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM3 auto-reload register low + 8 + 0x000C + 0xFF + + + ARR + 0 + 8 + + + + + CCR1H + TIM3 capture/compare register 1 high + 8 + 0x000D + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM3 capture/compare register 1 low + 8 + 0x000E + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM3 capture/compare register 2 high + 8 + 0x000F + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM3 capture/compare register 2 low + 8 + 0x0010 + 0x00 + + + CCR2 + 0 + 8 + + + + + + Interrupt_IRQ15 + Interrupt_IRQ15 interrupt + 15 + + + Interrupt_IRQ16 + Interrupt_IRQ16 interrupt + 16 + + + + TIM4 + 0x5340 + + 0x0000 + 7 + registers + + TIM4 + Timer + + + CR1 + TIM4 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM4 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + TIE + 6 + 1 + + + + + SR + TIM4 status register + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + TIF + 6 + 1 + + + + + EGR + TIM4 event generation register + 8 + 0x0003 + 0x00 + + + UG + 0 + 1 + + + TG + 6 + 1 + + + + + CNTR + TIM4 counter + 8 + 0x0004 + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM4 prescaler register + 8 + 0x0005 + 0x00 + + + PSC + 0 + 3 + + + + + ARR + TIM4 auto-reload register + 8 + 0x0006 + 0xFF + + + ARR + 0 + 8 + + + + + + Interrupt_IRQ23 + Interrupt_IRQ23 interrupt + 23 + + + + UART2 + 0x5240 + + 0x0000 + 8 + registers + + + 0x0009 + 3 + registers + + UART2 + Uart + + + SR + UART2 status register + 8 + 0x0000 + 0xC0 + + + PE + 0 + 1 + + + FE + 1 + 1 + + + NF + 2 + 1 + + + OR_LHE + 3 + 1 + + + IDLE + 4 + 1 + + + RXNE + 5 + 1 + + + TC + 6 + 1 + + + TXE + 7 + 1 + + + + + DR + UART2 data register + 8 + 0x0001 + 0x00 + + + DR + 0 + 8 + + + + + BRR1 + UART2 baud rate register 1 + 8 + 0x0002 + 0x00 + + + UART_DIV + 0 + 8 + + + + + BRR2 + UART2 baud rate register 2 + 8 + 0x0003 + 0x00 + + + UART_DIV + 0 + 8 + + + + + CR1 + UART2 control register 1 + 8 + 0x0004 + 0x00 + + + PIEN + 0 + 1 + + + PS + 1 + 1 + + + PCEN + 2 + 1 + + + WAKE + 3 + 1 + + + M + 4 + 1 + + + UART0 + 5 + 1 + + + T8 + 6 + 1 + + + R8 + 7 + 1 + + + + + CR2 + UART2 control register 2 + 8 + 0x0005 + 0x00 + + + SBK + 0 + 1 + + + RWU + 1 + 1 + + + REN + 2 + 1 + + + TEN + 3 + 1 + + + ILIEN + 4 + 1 + + + RIEN + 5 + 1 + + + TCIEN + 6 + 1 + + + TIEN + 7 + 1 + + + + + CR3 + UART2 control register 3 + 8 + 0x0006 + 0x00 + + + LBCL + 0 + 1 + + + CPHA + 1 + 1 + + + CPOL + 2 + 1 + + + CKEN + 3 + 1 + + + STOP + 4 + 2 + + + LINEN + 7 + 1 + + + + + CR4 + UART2 control register 4 + 8 + 0x0007 + 0x00 + + + ADD + 0 + 4 + + + LBDF + 4 + 1 + + + LBDL + 5 + 1 + + + LBDIEN + 6 + 1 + + + + + CR6 + UART2 control register 6 + 8 + 0x0009 + 0x00 + + + LSF + 0 + 1 + + + LHDF + 1 + 1 + + + LHDIEN + 2 + 1 + + + LASE + 4 + 1 + + + LSLV + 5 + 1 + + + LDUM + 7 + 1 + + + + + GTR + UART2 guard time register + 8 + 0x000A + 0x00 + + + GT + 0 + 8 + + + + + PSCR + UART2 prescaler register + 8 + 0x000B + 0x00 + + + PSC + 0 + 8 + + + + + + Interrupt_IRQ20 + Interrupt_IRQ20 interrupt + 20 + + + Interrupt_IRQ21 + Interrupt_IRQ21 interrupt + 21 + + + + WWDG + 0x50D1 + + 0x0000 + 2 + registers + + WWDG + Watchdog + + + CR + WWDG control register + 8 + 0x0000 + 0x7F + + + T0 + 0 + 1 + + + T1 + 1 + 1 + + + T2 + 2 + 1 + + + T3 + 3 + 1 + + + T4 + 4 + 1 + + + T5 + 5 + 1 + + + T6 + 6 + 1 + + + WDGA + 7 + 1 + + + + + WR + WWDR window register + 8 + 0x0001 + 0x7F + + + W0 + 0 + 1 + + + W1 + 1 + 1 + + + W2 + 2 + 1 + + + W3 + 3 + 1 + + + W4 + 4 + 1 + + + W5 + 5 + 1 + + + W6 + 6 + 1 + + + + + + + diff --git a/misc/svd/STM8S105K6.svd b/misc/svd/STM8S105K6.svd new file mode 100644 index 0000000..79e9f88 --- /dev/null +++ b/misc/svd/STM8S105K6.svd @@ -0,0 +1,7320 @@ + + + STMicroelectronics + STM8S105K6 + 1.0 + STM8S/STM8AF, medium density + Mainstream Access line 8-bit MCU with 32 Kbytes Flash, 16 MHz CPU, integrated EEPROM + + other + r1p0 + big + false + false + false + false + false + false + false + false + false + 4 + + 8 + 8 + 8 + read-write + + + ADC1 + 0x53E0 + + 0x0000 + 20 + registers + + + 0x0020 + 16 + registers + + ADC1 + ADC + + + DB0RH + ADC data buffer registers + 8 + 0x0000 + 0x00 + + + DBH + 0 + 8 + + + + + DB0RL + ADC data buffer registers + 8 + 0x0001 + 0x00 + + + DL + 0 + 8 + + + + + DB1RH + ADC data buffer registers + 8 + 0x0002 + 0x00 + + + DBH + 0 + 8 + + + + + DB1RL + ADC data buffer registers + 8 + 0x0003 + 0x00 + + + DL + 0 + 8 + + + + + DB2RH + ADC data buffer registers + 8 + 0x0004 + 0x00 + + + DBH + 0 + 8 + + + + + DB2RL + ADC data buffer registers + 8 + 0x0005 + 0x00 + + + DL + 0 + 8 + + + + + DB3RH + ADC data buffer registers + 8 + 0x0006 + 0x00 + + + DBH + 0 + 8 + + + + + DB3RL + ADC data buffer registers + 8 + 0x0007 + 0x00 + + + DL + 0 + 8 + + + + + DB4RH + ADC data buffer registers + 8 + 0x0008 + 0x00 + + + DBH + 0 + 8 + + + + + DB4RL + ADC data buffer registers + 8 + 0x0009 + 0x00 + + + DL + 0 + 8 + + + + + DB5RH + ADC data buffer registers + 8 + 0x000A + 0x00 + + + DBH + 0 + 8 + + + + + DB5RL + ADC data buffer registers + 8 + 0x000B + 0x00 + + + DL + 0 + 8 + + + + + DB6RH + ADC data buffer registers + 8 + 0x000C + 0x00 + + + DBH + 0 + 8 + + + + + DB6RL + ADC data buffer registers + 8 + 0x000D + 0x00 + + + DL + 0 + 8 + + + + + DB7RH + ADC data buffer registers + 8 + 0x000E + 0x00 + + + DBH + 0 + 8 + + + + + DB7RL + ADC data buffer registers + 8 + 0x000F + 0x00 + + + DL + 0 + 8 + + + + + DB8RH + ADC data buffer registers + 8 + 0x0010 + 0x00 + + + DBH + 0 + 8 + + + + + DB8RL + ADC data buffer registers + 8 + 0x0011 + 0x00 + + + DL + 0 + 8 + + + + + DB9RH + ADC data buffer registers + 8 + 0x0012 + 0x00 + + + DBH + 0 + 8 + + + + + DB9RL + ADC data buffer registers + 8 + 0x0013 + 0x00 + + + DL + 0 + 8 + + + + + CSR + ADC control/status register + 8 + 0x0020 + 0x00 + + + CH + 0 + 4 + + + AWDIE + 4 + 1 + + + EOCIE + 5 + 1 + + + AWD + 6 + 1 + + + EOC + 7 + 1 + + + + + CR1 + ADC configuration register 1 + 8 + 0x0021 + 0x00 + + + ADON + 0 + 1 + + + CONT + 1 + 1 + + + SPSEL + 4 + 3 + + + + + CR2 + ADC configuration register 2 + 8 + 0x0022 + 0x00 + + + SCAN + 1 + 1 + + + ALIGN + 3 + 1 + + + EXTSEL + 4 + 2 + + + EXTTRIG + 6 + 1 + + + + + CR3 + ADC configuration register 3 + 8 + 0x0023 + 0x00 + + + OVR + 6 + 1 + + + DBUF + 7 + 1 + + + + + DRH + ADC data register high + 8 + 0x0024 + 0x00 + + + DH + 0 + 8 + + + + + DRL + ADC data register low + 8 + 0x0025 + 0x00 + + + DL + 0 + 8 + + + + + TDRH + ADC Schmitt trigger disable register high + 8 + 0x0026 + 0x00 + + + TD + 0 + 8 + + + + + TDRL + ADC Schmitt trigger disable register low + 8 + 0x0027 + 0x00 + + + TL + 0 + 8 + + + + + HTRH + ADC high threshold register high + 8 + 0x0028 + 0x03 + + + HT + 0 + 8 + + + + + HTRL + ADC high threshold register low + 8 + 0x0029 + 0xFF + + + HT + 0 + 2 + + + + + LTRH + ADC low threshold register high + 8 + 0x002A + 0x00 + + + LT + 0 + 8 + + + + + LTRL + ADC low threshold register low + 8 + 0x002B + 0x00 + + + LT + 0 + 2 + + + + + AWSRH + ADC analog watchdog status register high + 8 + 0x002C + 0x00 + + + AWS8 + 0 + 1 + + + AWS9 + 1 + 1 + + + + + AWSRL + ADC analog watchdog status register low + 8 + 0x002D + 0x00 + + + AWS0 + 0 + 1 + + + AWS1 + 1 + 1 + + + AWS2 + 2 + 1 + + + AWS3 + 3 + 1 + + + AWS4 + 4 + 1 + + + AWS5 + 5 + 1 + + + AWS6 + 6 + 1 + + + AWS7 + 7 + 1 + + + + + AWCRH + ADC analog watchdog control register high + 8 + 0x002E + 0x00 + + + AWEN8 + 0 + 1 + + + AWEN9 + 1 + 1 + + + + + AWCRL + ADC analog watchdog control register low + 8 + 0x002F + 0x00 + + + AWEN0 + 0 + 1 + + + AWEN1 + 1 + 1 + + + AWEN2 + 2 + 1 + + + AWEN3 + 3 + 1 + + + AWEN4 + 4 + 1 + + + AWEN5 + 5 + 1 + + + AWEN6 + 6 + 1 + + + AWEN7 + 7 + 1 + + + + + + Interrupt_IRQ22 + Interrupt_IRQ22 interrupt + 22 + + + + AWU + 0x50F0 + + 0x0000 + 3 + registers + + AWU + AWU + + + CSR1 + AWU control/status register 1 + 8 + 0x0000 + 0x00 + + + MSR + 0 + 1 + + + AWUEN + 4 + 1 + + + AWUF + 5 + 1 + + + + + APR + AWU asynchronous prescaler buffer register + 8 + 0x0001 + 0x3F + + + APR + 0 + 6 + + + + + TBR + AWU timebase selection register + 8 + 0x0002 + 0x00 + + + AWUTB + 0 + 4 + + + + + + Interrupt_IRQ1 + Interrupt_IRQ1 interrupt + 1 + + + + BEEP + 0x50F3 + + 0x0000 + 1 + registers + + BEEP + BEEP + + + CSR + BEEP control/status register + 8 + 0x0000 + 0x1F + + + BEEPDIV + 0 + 5 + + + BEEPEN + 5 + 1 + + + BEEPSEL + 6 + 2 + + + + + + + CLK + 0x50C0 + + 0x0000 + 2 + registers + + + 0x0003 + 11 + registers + + CLK + CLK + + + ICKR + Internal clock control register + 8 + 0x0000 + 0x01 + + + HSIEN + 0 + 1 + + + HSIRDY + 1 + 1 + + + FHW + 2 + 1 + + + LSIEN + 3 + 1 + + + LSIRDY + 4 + 1 + + + REGAH + 5 + 1 + + + + + ECKR + External clock control register + 8 + 0x0001 + 0x00 + + + HSEEN + 0 + 1 + + + HSERDY + 1 + 1 + + + + + CMSR + Clock master status register + 8 + 0x0003 + 0xE1 + + + CKM + 0 + 8 + + + + + SWR + Clock master switch register + 8 + 0x0004 + 0xE1 + + + SWI + 0 + 8 + + + + + SWCR + Clock switch control register + 8 + 0x0005 + 0x00 + + + SWBSY + 0 + 1 + + + SWEN + 1 + 1 + + + SWIEN + 2 + 1 + + + SWIF + 3 + 1 + + + + + CKDIVR + Clock divider register + 8 + 0x0006 + 0x18 + + + CPUDIV + 0 + 3 + + + HSIDIV + 3 + 2 + + + + + PCKENR1 + Peripheral clock gating register 1 + 8 + 0x0007 + 0xFF + + + PCKEN + 0 + 8 + + + + + CSSR + Clock security system register + 8 + 0x0008 + 0x00 + + + CSSEN + 0 + 1 + + + AUX + 1 + 1 + + + CSSDIE + 2 + 1 + + + CSSD + 3 + 1 + + + + + CCOR + Configurable clock control register + 8 + 0x0009 + 0x00 + + + CCOEN + 0 + 1 + + + CCOSEL + 1 + 4 + + + CCORDY + 5 + 1 + + + CC0BSY + 6 + 1 + + + + + PCKENR2 + Peripheral clock gating register 2 + 8 + 0x000A + 0xFF + + + PCKEN2 + 0 + 8 + + + + + CANCCR + CAN clock control register + 8 + 0x000B + 0x00 + + + CANDIV + 0 + 3 + + + + + HSITRIMR + HSI clock calibration trimming register + 8 + 0x000C + 0x00 + + + HSITRIM + 0 + 4 + + + + + SWIMCCR + SWIM clock control register + 8 + 0x000D + 0x00 + + + SWIMCLK + 0 + 1 + + + + + + Interrupt_IRQ2 + Interrupt_IRQ2 interrupt + 2 + + + + CPU + 0x7F00 + + 0x0000 + 11 + registers + + + 0x0060 + 1 + registers + + CPU + CPU + + + A + Accumulator + 8 + 0x0000 + 0x00 + + + PCE + Program counter extended + 8 + 0x0001 + 0x00 + + + PCH + Program counter high + 8 + 0x0002 + 0x00 + + + PCL + Program counter low + 8 + 0x0003 + 0x00 + + + XH + X index register high + 8 + 0x0004 + 0x00 + + + XL + X index register low + 8 + 0x0005 + 0x00 + + + YH + Y index register high + 8 + 0x0006 + 0x00 + + + YL + Y index register low + 8 + 0x0007 + 0x00 + + + SPH + Stack pointer high + 8 + 0x0008 + 0x07 + + + SPL + Stack pointer low + 8 + 0x0009 + 0xFF + + + CCR + Condition code register + 8 + 0x000A + 0x28 + + + C + 0 + 1 + + + Z + 1 + 1 + + + NF + 2 + 1 + + + I0 + 3 + 1 + + + H + 4 + 1 + + + I1 + 5 + 1 + + + V + 7 + 1 + + + + + CFG_GCR + Global configuration register + 8 + 0x0060 + 0x00 + + + SWO + 0 + 1 + + + AL + 1 + 1 + + + + + + + DM + 0x7F90 + + 0x0000 + 11 + registers + + DM + DM + + + BK1RE + DM breakpoint 1 register extended byte + 8 + 0x0000 + 0xFF + + + BK1RH + DM breakpoint 1 register high byte + 8 + 0x0001 + 0xFF + + + BK1RL + DM breakpoint 1 register low byte + 8 + 0x0002 + 0xFF + + + BK2RE + DM breakpoint 2 register extended byte + 8 + 0x0003 + 0xFF + + + BK2RH + DM breakpoint 2 register high byte + 8 + 0x0004 + 0xFF + + + BK2RL + DM breakpoint 2 register low byte + 8 + 0x0005 + 0xFF + + + CR1 + DM debug module control register 1 + 8 + 0x0006 + 0x00 + + + CR2 + DM debug module control register 2 + 8 + 0x0007 + 0x00 + + + CSR1 + DM debug module control/status register 1 + 8 + 0x0008 + 0x10 + + + CSR2 + DM debug module control/status register 2 + 8 + 0x0009 + 0x00 + + + ENFCTR + DM enable function register + 8 + 0x000A + 0xFF + + + + + FLASH + 0x505A + + 0x0000 + 6 + registers + + + 0x0008 + 1 + registers + + + 0x000a + 1 + registers + + FLASH + FLASH + + + CR1 + Flash control register 1 + 8 + 0x0000 + 0x00 + + + FIX + 0 + 1 + + + IE + 1 + 1 + + + AHALT + 2 + 1 + + + HALT + 3 + 1 + + + + + CR2 + Flash control register 2 + 8 + 0x0001 + 0x00 + + + PRG + 0 + 1 + + + FPRG + 4 + 1 + + + ERASE + 5 + 1 + + + WPRG + 6 + 1 + + + OPT + 7 + 1 + + + + + NCR2 + Flash complementary control register 2 + 8 + 0x0002 + 0xFF + + + NPRG + 0 + 1 + + + NFPRG + 4 + 1 + + + NERASE + 5 + 1 + + + NWPRG + 6 + 1 + + + NOPT + 7 + 1 + + + + + FPR + Flash protection register + 8 + 0x0003 + 0x00 + + + WPB0 + 0 + 1 + + + WPB1 + 1 + 1 + + + WPB2 + 2 + 1 + + + WPB3 + 3 + 1 + + + WPB4 + 4 + 1 + + + WPB5 + 5 + 1 + + + + + NFPR + Flash complementary protection register + 8 + 0x0004 + 0xFF + + + NWPB0 + 0 + 1 + + + NWPB1 + 1 + 1 + + + NWPB2 + 2 + 1 + + + NWPB3 + 3 + 1 + + + NWPB4 + 4 + 1 + + + NWPB5 + 5 + 1 + + + + + IAPSR + Flash in-application programming status register + 8 + 0x0005 + 0x00 + + + WR_PG_DIS + 0 + 1 + + + PUL + 1 + 1 + + + EOP + 2 + 1 + + + DUL + 3 + 1 + + + HVOFF + 6 + 1 + + + + + PUKR + Flash program memory unprotection register + 8 + 0x0008 + 0x00 + + + MASS_PRG + 0 + 8 + + + + + DUKR + Data EEPROM unprotection register + 8 + 0x000A + 0x00 + + + MASS_DATA + 0 + 8 + + + + + + Interrupt_IRQ24 + Interrupt_IRQ24 interrupt + 24 + + + + I2C + 0x5210 + + 0x0000 + 5 + registers + + + 0x0006 + 9 + registers + + I2C + I2C + + + CR1 + I2C control register 1 + 8 + 0x0000 + 0x00 + + + PE + 0 + 1 + + + ENGC + 6 + 1 + + + NOSTRETCH + 7 + 1 + + + + + CR2 + I2C control register 2 + 8 + 0x0001 + 0x00 + + + START + 0 + 1 + + + STOP + 1 + 1 + + + ACK + 2 + 1 + + + POS + 3 + 1 + + + SWRST + 7 + 1 + + + + + FREQR + I2C frequency register + 8 + 0x0002 + 0x00 + + + FREQ + 0 + 6 + + + + + OARL + I2C Own address register low + 8 + 0x0003 + 0x00 + + + ADD0 + 0 + 1 + + + ADD + 1 + 7 + + + + + OARH + I2C own address register high + 8 + 0x0004 + 0x00 + + + ADD + 1 + 2 + + + ADDCONF + 6 + 1 + + + ADDMODE + 7 + 1 + + + + + DR + I2C data register + 8 + 0x0006 + 0x00 + + + DR + 0 + 8 + + + + + SR1 + I2C status register 1 + 8 + 0x0007 + 0x00 + + + SB + 0 + 1 + + + ADDR + 1 + 1 + + + BTF + 2 + 1 + + + ADD10 + 3 + 1 + + + STOPF + 4 + 1 + + + RXNE + 6 + 1 + + + TXE + 7 + 1 + + + + + SR2 + I2C status register 2 + 8 + 0x0008 + 0x00 + + + BERR + 0 + 1 + + + ARLO + 1 + 1 + + + AF + 2 + 1 + + + OVR + 3 + 1 + + + WUFH + 5 + 1 + + + + + SR3 + I2C status register 3 + 8 + 0x0009 + 0x00 + + + MSL + 0 + 1 + + + BUSY + 1 + 1 + + + TRA + 2 + 1 + + + GENCALL + 4 + 1 + + + + + ITR + I2C interrupt control register + 8 + 0x000A + 0x00 + + + ITERREN + 0 + 1 + + + ITEVTEN + 1 + 1 + + + ITBUFEN + 2 + 1 + + + + + CCRL + I2C clock control register low + 8 + 0x000B + 0x00 + + + CCR + 0 + 8 + + + + + CCRH + I2C clock control register high + 8 + 0x000C + 0x00 + + + CCR + 0 + 4 + + + DUTY + 6 + 1 + + + F_S + 7 + 1 + + + + + TRISER + I2C TRISE register + 8 + 0x000D + 0x02 + + + TRISE + 0 + 6 + + + + + PECR + I2C packet error checking register + 8 + 0x000E + 0x00 + + + PEC + 0 + 8 + + + + + + Interrupt_IRQ19 + Interrupt_IRQ19 interrupt + 19 + + + + ITC_EXTI + 0x50A0 + + 0x0000 + 2 + registers + + ITC_EXTI + ITC_EXTI + + + CR1 + External interrupt control register 1 + 8 + 0x0000 + 0x00 + + + PAIS + 0 + 2 + + + PBIS + 2 + 2 + + + PCIS + 4 + 2 + + + PDIS + 6 + 2 + + + + + CR2 + External interrupt control register 2 + 8 + 0x0001 + 0x00 + + + PEIS + 0 + 2 + + + TLIS + 2 + 1 + + + + + + + ITC_SPR + 0x7F70 + + 0x0000 + 8 + registers + + ITC_SPR + ITC_SPR + + + SPR1 + Interrupt software priority register 1 + 8 + 0x0000 + 0xFF + + + VECT0SPR + 0 + 2 + + + VECT1SPR + 2 + 2 + + + VECT2SPR + 4 + 2 + + + VECT3SPR + 6 + 2 + + + + + SPR2 + Interrupt software priority register 2 + 8 + 0x0001 + 0xFF + + + VECT4SPR + 0 + 2 + + + VECT5SPR + 2 + 2 + + + VECT6SPR + 4 + 2 + + + VECT7SPR + 6 + 2 + + + + + SPR3 + Interrupt software priority register 3 + 8 + 0x0002 + 0xFF + + + VECT8SPR + 0 + 2 + + + VECT9SPR + 2 + 2 + + + VECT10SPR + 4 + 2 + + + VECT11SPR + 6 + 2 + + + + + SPR4 + Interrupt software priority register 4 + 8 + 0x0003 + 0xFF + + + VECT12SPR + 0 + 2 + + + VECT13SPR + 2 + 2 + + + VECT14SPR + 4 + 2 + + + VECT15SPR + 6 + 2 + + + + + SPR5 + Interrupt software priority register 5 + 8 + 0x0004 + 0xFF + + + VECT16SPR + 0 + 2 + + + VECT17SPR + 2 + 2 + + + VECT18SPR + 4 + 2 + + + VECT19SPR + 6 + 2 + + + + + SPR6 + Interrupt software priority register 6 + 8 + 0x0005 + 0xFF + + + VECT20SPR + 0 + 2 + + + VECT21SPR + 2 + 2 + + + VECT22SPR + 4 + 2 + + + VECT23SPR + 6 + 2 + + + + + SPR7 + Interrupt software priority register 7 + 8 + 0x0006 + 0xFF + + + VECT24SPR + 0 + 2 + + + VECT25SPR + 2 + 2 + + + VECT26SPR + 4 + 2 + + + VECT27SPR + 6 + 2 + + + + + SPR8 + Interrupt software priority register 8 + 8 + 0x0007 + 0xFF + + + VECT28SPR + 0 + 2 + + + VECT29SPR + 2 + 2 + + + + + + + IWDG + 0x50E0 + + 0x0000 + 3 + registers + + IWDG + Watchdog + + + KR + IWDG key register + 8 + 0x0000 + 0x00 + + + KEY + 0 + 8 + + + + + PR + IWDG prescaler register + 8 + 0x0001 + 0x00 + + + PR + 0 + 3 + + + + + RLR + IWDG reload register + 8 + 0x0002 + 0xFF + + + RL + 0 + 8 + + + + + + + OPT + 0x4800 + + 0x0000 + 11 + registers + + + 0x007e + 2 + registers + + OPT + Option-Bytes + + + OPT0 + Read-out protection (ROP) + 8 + 0x0000 + 0x00 + + + OPT1 + User boot code (UBC) + 8 + 0x0001 + 0x00 + + + NOPT1 + User boot code (UBC) (complementary byte) + 8 + 0x0002 + 0xFF + + + OPT2 + Alternate function remapping (AFR) + 8 + 0x0003 + 0x00 + + + NOPT2 + Alternate function remapping (AFR) (complementary byte) + 8 + 0x0004 + 0xFF + + + OPT3 + Misc. option + 8 + 0x0005 + 0x00 + + + NOPT3 + Misc. option (complementary byte) + 8 + 0x0006 + 0xFF + + + OPT4 + Clock option + 8 + 0x0007 + 0x00 + + + NOPT4 + Clock option (complementary byte) + 8 + 0x0008 + 0xFF + + + OPT5 + HSE clock startup + 8 + 0x0009 + 0x00 + + + NOPT5 + HSE clock startup (complementary byte) + 8 + 0x000A + 0xFF + + + OPTBL + Bootloader + 8 + 0x007E + 0x00 + + + NOPTBL + Bootloader (complementary byte) + 8 + 0x007F + 0xFF + + + + + PORTA + 0x5000 + + 0x0000 + 5 + registers + + PORTA + GPIO + + + ODR + Port A data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port A input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port A data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port A control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port A control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTB + 0x5005 + + 0x0000 + 5 + registers + + PORTB + GPIO + + + ODR + Port B data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port B input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port B data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port B control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port B control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTC + 0x500A + + 0x0000 + 5 + registers + + PORTC + GPIO + + + ODR + Port C data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port C input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port C data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port C control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port C control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTD + 0x500F + + 0x0000 + 5 + registers + + PORTD + GPIO + + + ODR + Port D data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port D input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port D data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port D control register 1 + 8 + 0x0003 + 0x02 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port D control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTE + 0x5014 + + 0x0000 + 5 + registers + + PORTE + GPIO + + + ODR + Port E data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port E input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port E data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port E control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port E control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTF + 0x5019 + + 0x0000 + 5 + registers + + PORTF + GPIO + + + ODR + Port F data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port F input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port F data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port F control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port F control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTG + 0x501E + + 0x0000 + 5 + registers + + PORTG + GPIO + + + ODR + Port G data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port G input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port G data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port G control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port G control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTH + 0x5023 + + 0x0000 + 5 + registers + + PORTH + GPIO + + + ODR + Port H data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port H input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port H data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port H control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port H control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTI + 0x5028 + + 0x0000 + 5 + registers + + PORTI + GPIO + + + ODR + Port I data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port I input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port I data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port I control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port I control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + RST + 0x50B3 + + 0x0000 + 1 + registers + + RST + RST + + + SR + Reset status register + 8 + 0x0000 + 0x00 + + + WWDGF + 0 + 1 + + + IWDGF + 1 + 1 + + + ILLOPF + 2 + 1 + + + SWIMF + 3 + 1 + + + EMCF + 4 + 1 + + + + + + + SPI + 0x5200 + + 0x0000 + 8 + registers + + SPI + SPI + + + CR1 + SPI control register 1 + 8 + 0x0000 + 0x00 + + + CPHA + 0 + 1 + + + CPOL + 1 + 1 + + + MSTR + 2 + 1 + + + BR + 3 + 3 + + + SPE + 6 + 1 + + + LSBFIRST + 7 + 1 + + + + + CR2 + SPI control register 2 + 8 + 0x0001 + 0x00 + + + SSI + 0 + 1 + + + SSM + 1 + 1 + + + RXONLY + 2 + 1 + + + CRCNEXT + 4 + 1 + + + CECEN + 5 + 1 + + + BDOE + 6 + 1 + + + BDM + 7 + 1 + + + + + ICR + SPI interrupt control register + 8 + 0x0002 + 0x00 + + + WKIE + 4 + 1 + + + ERRIE + 5 + 1 + + + RXIE + 6 + 1 + + + TXIE + 7 + 1 + + + + + SR + SPI status register + 8 + 0x0003 + 0x02 + + + RXNE + 0 + 1 + + + TXE + 1 + 1 + + + WKUP + 3 + 1 + + + CRCERR + 4 + 1 + + + MODF + 5 + 1 + + + OVR + 6 + 1 + + + BSY + 7 + 1 + + + + + DR + SPI data register + 8 + 0x0004 + 0x00 + + + DR + 0 + 8 + + + + + CRCPR + SPI CRC polynomial register + 8 + 0x0005 + 0x07 + + + CRCPOLY + 0 + 8 + + + + + RXCRCR + SPI Rx CRC register + 8 + 0x0006 + 0xFF + + + RXCRC + 0 + 8 + + + + + TXCRCR + SPI Tx CRC register + 8 + 0x0007 + 0xFF + + + TXCRC + 0 + 8 + + + + + + Interrupt_IRQ10 + Interrupt_IRQ10 interrupt + 10 + + + + SWIM + 0x7F80 + + 0x0000 + 1 + registers + + SWIM + Debug + + + CSR + SWIM control status register + 8 + 0x0000 + 0x00 + + + + + TIM1 + 0x5250 + + 0x0000 + 32 + registers + + TIM1 + Timer + + + CR1 + TIM1 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + DIR + 4 + 1 + + + CMS + 5 + 2 + + + ARPE + 7 + 1 + + + + + CR2 + TIM1 control register 2 + 8 + 0x0001 + 0x00 + + + CCPG + 0 + 1 + + + COMS + 2 + 1 + + + MMS + 4 + 3 + + + + + SMCR + TIM1 slave mode control register + 8 + 0x0002 + 0x00 + + + SMS + 0 + 3 + + + TS + 4 + 3 + + + MSM + 7 + 1 + + + + + ETR + TIM1 external trigger register + 8 + 0x0003 + 0x00 + + + ETF + 0 + 4 + + + ETPS + 4 + 2 + + + ECE + 6 + 1 + + + ETP + 7 + 1 + + + + + IER + TIM1 interrupt enable register + 8 + 0x0004 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + CC4IE + 4 + 1 + + + COMIE + 5 + 1 + + + TIE + 6 + 1 + + + BIE + 7 + 1 + + + + + SR1 + TIM1 status register 1 + 8 + 0x0005 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + CC4IF + 4 + 1 + + + COMIF + 5 + 1 + + + TIF + 6 + 1 + + + BIF + 7 + 1 + + + + + SR2 + TIM1 status register 2 + 8 + 0x0006 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + CC4OF + 4 + 1 + + + + + EGR + TIM1 event generation register + 8 + 0x0007 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + CC4G + 4 + 1 + + + COMG + 5 + 1 + + + TG + 6 + 1 + + + BG + 7 + 1 + + + + + CCMR1 + TIM1 capture/compare mode register 1 + 8 + 0x0008 + 0x00 + + + CC1S + 0 + 2 + + + OC1FE + 2 + 1 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + OC1CE + 7 + 1 + + + + + CCMR2 + TIM1 capture/compare mode register 2 + 8 + 0x0009 + 0x00 + + + CC2S + 0 + 2 + + + OC2FE + 2 + 1 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + OC2CE + 7 + 1 + + + + + CCMR3 + TIM1 capture/compare mode register 3 + 8 + 0x000A + 0x00 + + + CC3S + 0 + 2 + + + OC3FE + 2 + 1 + + + OC3PE + 3 + 1 + + + OC3M + 4 + 3 + + + OC3CE + 7 + 1 + + + + + CCMR4 + TIM1 capture/compare mode register 4 + 8 + 0x000B + 0x00 + + + CC4S + 0 + 2 + + + OC4FE + 2 + 1 + + + OC4PE + 3 + 1 + + + OC4M + 4 + 3 + + + OC4CE + 7 + 1 + + + + + CCER1 + TIM1 capture/compare enable register 1 + 8 + 0x000C + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC1NE + 2 + 1 + + + CC1NP + 3 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + CC2NE + 6 + 1 + + + CC2NP + 7 + 1 + + + + + CCER2 + TIM1 capture/compare enable register 2 + 8 + 0x000D + 0x00 + + + CC3E + 0 + 1 + + + CC3P + 1 + 1 + + + CC3NE + 2 + 1 + + + CC3NP + 3 + 1 + + + CC4E + 4 + 1 + + + CC4P + 5 + 1 + + + + + CNTRH + TIM1 counter high + 8 + 0x000E + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM1 counter low + 8 + 0x000F + 0x00 + + + CNT + 0 + 8 + + + + + PSCRH + TIM1 prescaler register high + 8 + 0x0010 + 0x00 + + + PSC + 0 + 8 + + + + + PSCRL + TIM1 prescaler register low + 8 + 0x0011 + 0x00 + + + PSC + 0 + 8 + + + + + ARRH + TIM1 auto-reload register high + 8 + 0x0012 + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM1 auto-reload register low + 8 + 0x0013 + 0xFF + + + ARR + 0 + 8 + + + + + RCR + TIM1 repetition counter register + 8 + 0x0014 + 0x00 + + + REP + 0 + 8 + + + + + CCR1H + TIM1 capture/compare register 1 high + 8 + 0x0015 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM1 capture/compare register 1 low + 8 + 0x0016 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM1 capture/compare register 2 high + 8 + 0x0017 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM1 capture/compare register 2 low + 8 + 0x0018 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR3H + TIM1 capture/compare register 3 high + 8 + 0x0019 + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR3L + TIM1 capture/compare register 3 low + 8 + 0x001A + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR4H + TIM1 capture/compare register 4 high + 8 + 0x001B + 0x00 + + + CCR4 + 0 + 8 + + + + + CCR4L + TIM1 capture/compare register 4 low + 8 + 0x001C + 0x00 + + + CCR4 + 0 + 8 + + + + + BKR + TIM1 break register + 8 + 0x001D + 0x00 + + + LOCK + 0 + 2 + + + OSSI + 2 + 1 + + + OSSR + 3 + 1 + + + BKE + 4 + 1 + + + BKP + 5 + 1 + + + AOE + 6 + 1 + + + MOE + 7 + 1 + + + + + DTR + TIM1 dead-time register + 8 + 0x001E + 0x00 + + + DTG + 0 + 8 + + + + + OISR + TIM1 output idle state register + 8 + 0x001F + 0x00 + + + OIS1 + 0 + 1 + + + OIS1N + 1 + 1 + + + OIS2 + 2 + 1 + + + OIS2N + 3 + 1 + + + OIS3 + 4 + 1 + + + OIS3N + 5 + 1 + + + OIS4 + 6 + 1 + + + + + + Interrupt_IRQ11 + Interrupt_IRQ11 interrupt + 11 + + + Interrupt_IRQ12 + Interrupt_IRQ12 interrupt + 12 + + + + TIM2 + 0x5300 + + 0x0000 + 21 + registers + + TIM2 + Timer + + + CR1 + TIM2 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM2 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + TIE + 6 + 1 + + + + + SR1 + TIM2 status register 1 + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + TIF + 6 + 1 + + + + + SR2 + TIM2 status register 2 + 8 + 0x0003 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + + + EGR + TIM2 event generation register + 8 + 0x0004 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + TG + 6 + 1 + + + + + CCMR1 + TIM2 capture/compare mode register 1 + 8 + 0x0005 + 0x00 + + + CC1S + 0 + 2 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + + + CCMR2 + TIM2 capture/compare mode register 2 + 8 + 0x0006 + 0x00 + + + CC2S + 0 + 2 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + + + CCMR3 + TIM2 capture/compare mode register 3 + 8 + 0x0007 + 0x00 + + + CC3S + 0 + 2 + + + OC3PE + 3 + 1 + + + OC3M + 4 + 3 + + + + + CCER1 + TIM2 capture/compare enable register 1 + 8 + 0x0008 + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + + + CCER2 + TIM2 capture/compare enable register 2 + 8 + 0x0009 + 0x00 + + + CC3E + 0 + 1 + + + CC3P + 1 + 1 + + + + + CNTRH + TIM2 counter high + 8 + 0x000A + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM2 counter low + 8 + 0x000B + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM2 prescaler register + 8 + 0x000C + 0x00 + + + PSC + 0 + 4 + + + + + ARRH + TIM2 auto-reload register high + 8 + 0x000D + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM2 auto-reload register low + 8 + 0x000E + 0xFF + + + ARR + 0 + 8 + + + + + CCR1H + TIM2 capture/compare register 1 high + 8 + 0x000F + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM2 capture/compare register 1 low + 8 + 0x0010 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM2 capture/compare reg + 8 + 0x0011 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM2 capture/compare register 2 low + 8 + 0x0012 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR3H + TIM2 capture/compare register 3 high + 8 + 0x0013 + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR3L + TIM2 capture/compare register 3 low + 8 + 0x0014 + 0x00 + + + CCR3 + 0 + 8 + + + + + + Interrupt_IRQ13 + Interrupt_IRQ13 interrupt + 13 + + + Interrupt_IRQ14 + Interrupt_IRQ14 interrupt + 14 + + + + TIM3 + 0x5320 + + 0x0000 + 17 + registers + + TIM3 + Timer + + + CR1 + TIM3 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM3 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + TIE + 6 + 1 + + + + + SR1 + TIM3 status register 1 + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + TIF + 6 + 1 + + + + + SR2 + TIM3 status register 2 + 8 + 0x0003 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + + + EGR + TIM3 event generation register + 8 + 0x0004 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + TG + 6 + 1 + + + + + CCMR1 + TIM3 capture/compare mode register 1 + 8 + 0x0005 + 0x00 + + + CC1S + 0 + 2 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + + + CCMR2 + TIM3 capture/compare mode register 2 + 8 + 0x0006 + 0x00 + + + CC2S + 0 + 2 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + + + CCER1 + TIM3 capture/compare enable register 1 + 8 + 0x0007 + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + + + CNTRH + TIM3 counter high + 8 + 0x0008 + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM3 counter low + 8 + 0x0009 + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM3 prescaler register + 8 + 0x000A + 0x00 + + + PSC + 0 + 4 + + + + + ARRH + TIM3 auto-reload register high + 8 + 0x000B + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM3 auto-reload register low + 8 + 0x000C + 0xFF + + + ARR + 0 + 8 + + + + + CCR1H + TIM3 capture/compare register 1 high + 8 + 0x000D + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM3 capture/compare register 1 low + 8 + 0x000E + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM3 capture/compare register 2 high + 8 + 0x000F + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM3 capture/compare register 2 low + 8 + 0x0010 + 0x00 + + + CCR2 + 0 + 8 + + + + + + Interrupt_IRQ15 + Interrupt_IRQ15 interrupt + 15 + + + Interrupt_IRQ16 + Interrupt_IRQ16 interrupt + 16 + + + + TIM4 + 0x5340 + + 0x0000 + 7 + registers + + TIM4 + Timer + + + CR1 + TIM4 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM4 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + TIE + 6 + 1 + + + + + SR + TIM4 status register + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + TIF + 6 + 1 + + + + + EGR + TIM4 event generation register + 8 + 0x0003 + 0x00 + + + UG + 0 + 1 + + + TG + 6 + 1 + + + + + CNTR + TIM4 counter + 8 + 0x0004 + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM4 prescaler register + 8 + 0x0005 + 0x00 + + + PSC + 0 + 3 + + + + + ARR + TIM4 auto-reload register + 8 + 0x0006 + 0xFF + + + ARR + 0 + 8 + + + + + + Interrupt_IRQ23 + Interrupt_IRQ23 interrupt + 23 + + + + UART2 + 0x5240 + + 0x0000 + 8 + registers + + + 0x0009 + 3 + registers + + UART2 + Uart + + + SR + UART2 status register + 8 + 0x0000 + 0xC0 + + + PE + 0 + 1 + + + FE + 1 + 1 + + + NF + 2 + 1 + + + OR_LHE + 3 + 1 + + + IDLE + 4 + 1 + + + RXNE + 5 + 1 + + + TC + 6 + 1 + + + TXE + 7 + 1 + + + + + DR + UART2 data register + 8 + 0x0001 + 0x00 + + + DR + 0 + 8 + + + + + BRR1 + UART2 baud rate register 1 + 8 + 0x0002 + 0x00 + + + UART_DIV + 0 + 8 + + + + + BRR2 + UART2 baud rate register 2 + 8 + 0x0003 + 0x00 + + + UART_DIV + 0 + 8 + + + + + CR1 + UART2 control register 1 + 8 + 0x0004 + 0x00 + + + PIEN + 0 + 1 + + + PS + 1 + 1 + + + PCEN + 2 + 1 + + + WAKE + 3 + 1 + + + M + 4 + 1 + + + UART0 + 5 + 1 + + + T8 + 6 + 1 + + + R8 + 7 + 1 + + + + + CR2 + UART2 control register 2 + 8 + 0x0005 + 0x00 + + + SBK + 0 + 1 + + + RWU + 1 + 1 + + + REN + 2 + 1 + + + TEN + 3 + 1 + + + ILIEN + 4 + 1 + + + RIEN + 5 + 1 + + + TCIEN + 6 + 1 + + + TIEN + 7 + 1 + + + + + CR3 + UART2 control register 3 + 8 + 0x0006 + 0x00 + + + LBCL + 0 + 1 + + + CPHA + 1 + 1 + + + CPOL + 2 + 1 + + + CKEN + 3 + 1 + + + STOP + 4 + 2 + + + LINEN + 7 + 1 + + + + + CR4 + UART2 control register 4 + 8 + 0x0007 + 0x00 + + + ADD + 0 + 4 + + + LBDF + 4 + 1 + + + LBDL + 5 + 1 + + + LBDIEN + 6 + 1 + + + + + CR6 + UART2 control register 6 + 8 + 0x0009 + 0x00 + + + LSF + 0 + 1 + + + LHDF + 1 + 1 + + + LHDIEN + 2 + 1 + + + LASE + 4 + 1 + + + LSLV + 5 + 1 + + + LDUM + 7 + 1 + + + + + GTR + UART2 guard time register + 8 + 0x000A + 0x00 + + + GT + 0 + 8 + + + + + PSCR + UART2 prescaler register + 8 + 0x000B + 0x00 + + + PSC + 0 + 8 + + + + + + Interrupt_IRQ20 + Interrupt_IRQ20 interrupt + 20 + + + Interrupt_IRQ21 + Interrupt_IRQ21 interrupt + 21 + + + + WWDG + 0x50D1 + + 0x0000 + 2 + registers + + WWDG + Watchdog + + + CR + WWDG control register + 8 + 0x0000 + 0x7F + + + T0 + 0 + 1 + + + T1 + 1 + 1 + + + T2 + 2 + 1 + + + T3 + 3 + 1 + + + T4 + 4 + 1 + + + T5 + 5 + 1 + + + T6 + 6 + 1 + + + WDGA + 7 + 1 + + + + + WR + WWDR window register + 8 + 0x0001 + 0x7F + + + W0 + 0 + 1 + + + W1 + 1 + 1 + + + W2 + 2 + 1 + + + W3 + 3 + 1 + + + W4 + 4 + 1 + + + W5 + 5 + 1 + + + W6 + 6 + 1 + + + + + + + diff --git a/misc/svd/STM8S207K8.svd b/misc/svd/STM8S207K8.svd new file mode 100644 index 0000000..12b5608 --- /dev/null +++ b/misc/svd/STM8S207K8.svd @@ -0,0 +1,7146 @@ + + + STMicroelectronics + STM8S207K8 + 1.0 + STM8S/STM8AF, high density + Mainstream Performance line 8-bit MCU with 64 Kbytes Flash, 24 MHz CPU, integrated EEPROM + + other + r1p0 + big + false + false + false + false + false + false + false + false + false + 4 + + 8 + 8 + 8 + read-write + + + ADC2 + 0x5400 + + 0x0000 + 8 + registers + + ADC2 + ADC + + + CSR + ADC control/status register + 8 + 0x0000 + 0x00 + + + CH + 0 + 4 + + + AWDIE + 4 + 1 + + + EOCIE + 5 + 1 + + + AWD + 6 + 1 + + + EOC + 7 + 1 + + + + + CR1 + ADC configuration register 1 + 8 + 0x0001 + 0x00 + + + ADON + 0 + 1 + + + CONT + 1 + 1 + + + SPSEL + 4 + 3 + + + + + CR2 + ADC configuration register 2 + 8 + 0x0002 + 0x00 + + + SCAN + 1 + 1 + + + ALIGN + 3 + 1 + + + EXTSEL + 4 + 2 + + + EXTTRIG + 6 + 1 + + + + + CR3 + ADC configuration register 3 + 8 + 0x0003 + 0x00 + + + OVR + 6 + 1 + + + DBUF + 7 + 1 + + + + + DRH + ADC data register high + 8 + 0x0004 + 0x00 + + + DH + 0 + 8 + + + + + DRL + ADC data register low + 8 + 0x0005 + 0x00 + + + DL + 0 + 8 + + + + + TDRH + ADC Schmitt trigger disable register high + 8 + 0x0006 + 0x00 + + + TD + 0 + 8 + + + + + TDRL + ADC Schmitt trigger disable register low + 8 + 0x0007 + 0x00 + + + TL + 0 + 8 + + + + + + Interrupt_IRQ22 + Interrupt_IRQ22 interrupt + 22 + + + + AWU + 0x50F0 + + 0x0000 + 3 + registers + + AWU + AWU + + + CSR1 + AWU control/status register 1 + 8 + 0x0000 + 0x00 + + + MSR + 0 + 1 + + + AWUEN + 4 + 1 + + + AWUF + 5 + 1 + + + + + APR + AWU asynchronous prescaler buffer register + 8 + 0x0001 + 0x3F + + + APR + 0 + 6 + + + + + TBR + AWU timebase selection register + 8 + 0x0002 + 0x00 + + + AWUTB + 0 + 4 + + + + + + Interrupt_IRQ1 + Interrupt_IRQ1 interrupt + 1 + + + + BEEP + 0x50F3 + + 0x0000 + 1 + registers + + BEEP + BEEP + + + CSR + BEEP control/status register + 8 + 0x0000 + 0x1F + + + BEEPDIV + 0 + 5 + + + BEEPEN + 5 + 1 + + + BEEPSEL + 6 + 2 + + + + + + + CLK + 0x50C0 + + 0x0000 + 2 + registers + + + 0x0003 + 11 + registers + + CLK + CLK + + + ICKR + Internal clock control register + 8 + 0x0000 + 0x01 + + + HSIEN + 0 + 1 + + + HSIRDY + 1 + 1 + + + FHW + 2 + 1 + + + LSIEN + 3 + 1 + + + LSIRDY + 4 + 1 + + + REGAH + 5 + 1 + + + + + ECKR + External clock control register + 8 + 0x0001 + 0x00 + + + HSEEN + 0 + 1 + + + HSERDY + 1 + 1 + + + + + CMSR + Clock master status register + 8 + 0x0003 + 0xE1 + + + CKM + 0 + 8 + + + + + SWR + Clock master switch register + 8 + 0x0004 + 0xE1 + + + SWI + 0 + 8 + + + + + SWCR + Clock switch control register + 8 + 0x0005 + 0x00 + + + SWBSY + 0 + 1 + + + SWEN + 1 + 1 + + + SWIEN + 2 + 1 + + + SWIF + 3 + 1 + + + + + CKDIVR + Clock divider register + 8 + 0x0006 + 0x18 + + + CPUDIV + 0 + 3 + + + HSIDIV + 3 + 2 + + + + + PCKENR1 + Peripheral clock gating register 1 + 8 + 0x0007 + 0xFF + + + PCKEN + 0 + 8 + + + + + CSSR + Clock security system register + 8 + 0x0008 + 0x00 + + + CSSEN + 0 + 1 + + + AUX + 1 + 1 + + + CSSDIE + 2 + 1 + + + CSSD + 3 + 1 + + + + + CCOR + Configurable clock control register + 8 + 0x0009 + 0x00 + + + CCOEN + 0 + 1 + + + CCOSEL + 1 + 4 + + + CCORDY + 5 + 1 + + + CC0BSY + 6 + 1 + + + + + PCKENR2 + Peripheral clock gating register 2 + 8 + 0x000A + 0xFF + + + PCKEN2 + 0 + 8 + + + + + CANCCR + CAN clock control register + 8 + 0x000B + 0x00 + + + CANDIV + 0 + 3 + + + + + HSITRIMR + HSI clock calibration trimming register + 8 + 0x000C + 0x00 + + + HSITRIM + 0 + 4 + + + + + SWIMCCR + SWIM clock control register + 8 + 0x000D + 0x00 + + + SWIMCLK + 0 + 1 + + + + + + Interrupt_IRQ2 + Interrupt_IRQ2 interrupt + 2 + + + + CPU + 0x7F00 + + 0x0000 + 11 + registers + + + 0x0060 + 1 + registers + + CPU + CPU + + + A + Accumulator + 8 + 0x0000 + 0x00 + + + PCE + Program counter extended + 8 + 0x0001 + 0x00 + + + PCH + Program counter high + 8 + 0x0002 + 0x00 + + + PCL + Program counter low + 8 + 0x0003 + 0x00 + + + XH + X index register high + 8 + 0x0004 + 0x00 + + + XL + X index register low + 8 + 0x0005 + 0x00 + + + YH + Y index register high + 8 + 0x0006 + 0x00 + + + YL + Y index register low + 8 + 0x0007 + 0x00 + + + SPH + Stack pointer high + 8 + 0x0008 + 0x17 + + + SPL + Stack pointer low + 8 + 0x0009 + 0xFF + + + CCR + Condition code register + 8 + 0x000A + 0x28 + + + C + 0 + 1 + + + Z + 1 + 1 + + + NF + 2 + 1 + + + I0 + 3 + 1 + + + H + 4 + 1 + + + I1 + 5 + 1 + + + V + 7 + 1 + + + + + CFG_GCR + Global configuration register + 8 + 0x0060 + 0x00 + + + SWO + 0 + 1 + + + AL + 1 + 1 + + + + + + + DM + 0x7F90 + + 0x0000 + 11 + registers + + DM + DM + + + BK1RE + DM breakpoint 1 register extended byte + 8 + 0x0000 + 0xFF + + + BK1RH + DM breakpoint 1 register high byte + 8 + 0x0001 + 0xFF + + + BK1RL + DM breakpoint 1 register low byte + 8 + 0x0002 + 0xFF + + + BK2RE + DM breakpoint 2 register extended byte + 8 + 0x0003 + 0xFF + + + BK2RH + DM breakpoint 2 register high byte + 8 + 0x0004 + 0xFF + + + BK2RL + DM breakpoint 2 register low byte + 8 + 0x0005 + 0xFF + + + CR1 + DM debug module control register 1 + 8 + 0x0006 + 0x00 + + + CR2 + DM debug module control register 2 + 8 + 0x0007 + 0x00 + + + CSR1 + DM debug module control/status register 1 + 8 + 0x0008 + 0x10 + + + CSR2 + DM debug module control/status register 2 + 8 + 0x0009 + 0x00 + + + ENFCTR + DM enable function register + 8 + 0x000A + 0xFF + + + + + FLASH + 0x505A + + 0x0000 + 6 + registers + + + 0x0008 + 1 + registers + + + 0x000a + 1 + registers + + FLASH + FLASH + + + CR1 + Flash control register 1 + 8 + 0x0000 + 0x00 + + + FIX + 0 + 1 + + + IE + 1 + 1 + + + AHALT + 2 + 1 + + + HALT + 3 + 1 + + + + + CR2 + Flash control register 2 + 8 + 0x0001 + 0x00 + + + PRG + 0 + 1 + + + FPRG + 4 + 1 + + + ERASE + 5 + 1 + + + WPRG + 6 + 1 + + + OPT + 7 + 1 + + + + + NCR2 + Flash complementary control register 2 + 8 + 0x0002 + 0xFF + + + NPRG + 0 + 1 + + + NFPRG + 4 + 1 + + + NERASE + 5 + 1 + + + NWPRG + 6 + 1 + + + NOPT + 7 + 1 + + + + + FPR + Flash protection register + 8 + 0x0003 + 0x00 + + + WPB0 + 0 + 1 + + + WPB1 + 1 + 1 + + + WPB2 + 2 + 1 + + + WPB3 + 3 + 1 + + + WPB4 + 4 + 1 + + + WPB5 + 5 + 1 + + + + + NFPR + Flash complementary protection register + 8 + 0x0004 + 0xFF + + + NWPB0 + 0 + 1 + + + NWPB1 + 1 + 1 + + + NWPB2 + 2 + 1 + + + NWPB3 + 3 + 1 + + + NWPB4 + 4 + 1 + + + NWPB5 + 5 + 1 + + + + + IAPSR + Flash in-application programming status register + 8 + 0x0005 + 0x00 + + + WR_PG_DIS + 0 + 1 + + + PUL + 1 + 1 + + + EOP + 2 + 1 + + + DUL + 3 + 1 + + + HVOFF + 6 + 1 + + + + + PUKR + Flash Program memory unprotection register + 8 + 0x0008 + 0x00 + + + MASS_PRG + 0 + 8 + + + + + DUKR + Data EEPROM unprotection register + 8 + 0x000A + 0x00 + + + MASS_DATA + 0 + 8 + + + + + + Interrupt_IRQ24 + Interrupt_IRQ24 interrupt + 24 + + + + I2C + 0x5210 + + 0x0000 + 5 + registers + + + 0x0006 + 9 + registers + + I2C + I2C + + + CR1 + I2C control register 1 + 8 + 0x0000 + 0x00 + + + PE + 0 + 1 + + + ENGC + 6 + 1 + + + NOSTRETCH + 7 + 1 + + + + + CR2 + I2C control register 2 + 8 + 0x0001 + 0x00 + + + START + 0 + 1 + + + STOP + 1 + 1 + + + ACK + 2 + 1 + + + POS + 3 + 1 + + + SWRST + 7 + 1 + + + + + FREQR + I2C frequency register + 8 + 0x0002 + 0x00 + + + FREQ + 0 + 6 + + + + + OARL + I2C own address register low + 8 + 0x0003 + 0x00 + + + ADD0 + 0 + 1 + + + ADD + 1 + 7 + + + + + OARH + I2C own address register high + 8 + 0x0004 + 0x00 + + + ADD + 1 + 2 + + + ADDCONF + 6 + 1 + + + ADDMODE + 7 + 1 + + + + + DR + I2C data register + 8 + 0x0006 + 0x00 + + + DR + 0 + 8 + + + + + SR1 + I2C status register 1 + 8 + 0x0007 + 0x00 + + + SB + 0 + 1 + + + ADDR + 1 + 1 + + + BTF + 2 + 1 + + + ADD10 + 3 + 1 + + + STOPF + 4 + 1 + + + RXNE + 6 + 1 + + + TXE + 7 + 1 + + + + + SR2 + I2C status register 2 + 8 + 0x0008 + 0x00 + + + BERR + 0 + 1 + + + ARLO + 1 + 1 + + + AF + 2 + 1 + + + OVR + 3 + 1 + + + WUFH + 5 + 1 + + + + + SR3 + I2C status register 3 + 8 + 0x0009 + 0x00 + + + MSL + 0 + 1 + + + BUSY + 1 + 1 + + + TRA + 2 + 1 + + + GENCALL + 4 + 1 + + + + + ITR + I2C interrupt control register + 8 + 0x000A + 0x00 + + + ITERREN + 0 + 1 + + + ITEVTEN + 1 + 1 + + + ITBUFEN + 2 + 1 + + + + + CCRL + I2C clock control register low + 8 + 0x000B + 0x00 + + + CCR + 0 + 8 + + + + + CCRH + I2C clock control register high + 8 + 0x000C + 0x00 + + + CCR + 0 + 4 + + + DUTY + 6 + 1 + + + F_S + 7 + 1 + + + + + TRISER + I2C TRISE register + 8 + 0x000D + 0x02 + + + TRISE + 0 + 6 + + + + + PECR + I2C packet error checking register + 8 + 0x000E + 0x00 + + + + Interrupt_IRQ19 + Interrupt_IRQ19 interrupt + 19 + + + + ITC + 0x50A0 + + 0x0000 + 2 + registers + + + 0x2ed0 + 8 + registers + + ITC + ITC + + + CR1 + External interrupt control register 1 + 8 + 0x0000 + 0x00 + + + PAIS + 0 + 2 + + + PBIS + 2 + 2 + + + PCIS + 4 + 2 + + + PDIS + 6 + 2 + + + + + CR2 + External interrupt control register 2 + 8 + 0x0001 + 0x00 + + + PEIS + 0 + 2 + + + TLIS + 2 + 1 + + + + + SPR1 + Interrupt software priority register 1 + 8 + 0x2ED0 + 0xFF + + + VECT0SPR + 0 + 2 + + + VECT1SPR + 2 + 2 + + + VECT2SPR + 4 + 2 + + + VECT3SPR + 6 + 2 + + + + + SPR2 + Interrupt software priority register 2 + 8 + 0x2ED1 + 0xFF + + + VECT4SPR + 0 + 2 + + + VECT5SPR + 2 + 2 + + + VECT6SPR + 4 + 2 + + + VECT7SPR + 6 + 2 + + + + + SPR3 + Interrupt software priority register 3 + 8 + 0x2ED2 + 0xFF + + + VECT8SPR + 0 + 2 + + + VECT9SPR + 2 + 2 + + + VECT10SPR + 4 + 2 + + + VECT11SPR + 6 + 2 + + + + + SPR4 + Interrupt software priority register 4 + 8 + 0x2ED3 + 0xFF + + + VECT12SPR + 0 + 2 + + + VECT13SPR + 2 + 2 + + + VECT14SPR + 4 + 2 + + + VECT15SPR + 6 + 2 + + + + + SPR5 + Interrupt software priority register 5 + 8 + 0x2ED4 + 0xFF + + + VECT16SPR + 0 + 2 + + + VECT17SPR + 2 + 2 + + + VECT18SPR + 4 + 2 + + + VECT19SPR + 6 + 2 + + + + + SPR6 + Interrupt software priority register 6 + 8 + 0x2ED5 + 0xFF + + + VECT20SPR + 0 + 2 + + + VECT21SPR + 2 + 2 + + + VECT22SPR + 4 + 2 + + + VECT23SPR + 6 + 2 + + + + + SPR7 + Interrupt software priority register 7 + 8 + 0x2ED6 + 0xFF + + + VECT24SPR + 0 + 2 + + + VECT25SPR + 2 + 2 + + + VECT26SPR + 4 + 2 + + + VECT27SPR + 6 + 2 + + + + + SPR8 + Interrupt software priority register 8 + 8 + 0x2ED7 + 0xFF + + + VECT28SPR + 0 + 2 + + + VECT29SPR + 2 + 2 + + + + + + Interrupt_IRQ2 + Interrupt_IRQ2 interrupt + 2 + + + + IWDG + 0x50E0 + + 0x0000 + 3 + registers + + IWDG + Watchdog + + + KR + IWDG key register + 8 + 0x0000 + 0x00 + + + KEY + 0 + 8 + + + + + PR + IWDG prescaler register + 8 + 0x0001 + 0x00 + + + PR + 0 + 3 + + + + + RLR + IWDG reload register + 8 + 0x0002 + 0xFF + + + RL + 0 + 8 + + + + + + + OPT + 0x4800 + + 0x0000 + 11 + registers + + + 0x000d + 2 + registers + + + 0x007e + 2 + registers + + OPT + Option-Bytes + + + OPT0 + Read-out protection (ROP) + 8 + 0x0000 + 0x00 + + + OPT1 + User boot code (UBC) + 8 + 0x0001 + 0x00 + + + NOPT1 + User boot code (UBC) (complementary byte) + 8 + 0x0002 + 0xFF + + + OPT2 + Alternate function remapping (AFR) + 8 + 0x0003 + 0x00 + + + NOPT2 + Alternate function remapping (AFR) (complementary byte) + 8 + 0x0004 + 0xFF + + + OPT3 + Watchdog option + 8 + 0x0005 + 0x00 + + + NOPT3 + Watchdog option (complementary byte) + 8 + 0x0006 + 0xFF + + + OPT4 + Clock option + 8 + 0x0007 + 0x00 + + + NOPT4 + Clock option (complementary byte) + 8 + 0x0008 + 0xFF + + + OPT5 + HSE clock startup + 8 + 0x0009 + 0x00 + + + NOPT5 + HSE clock startup (complementary byte) + 8 + 0x000A + 0xFF + + + OPT7 + Flash wait states + 8 + 0x000D + 0x00 + + + NOPT7 + Flash wait states (complementary byte) + 8 + 0x000E + 0xFF + + + OPTBL + Bootloader + 8 + 0x007E + 0x00 + + + NOPTBL + Bootloader (complementary byte) + 8 + 0x007F + 0xFF + + + + + PORTA + 0x5000 + + 0x0000 + 5 + registers + + PORTA + GPIO + + + ODR + Port A data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port A input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port A data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port A control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port A control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTB + 0x5005 + + 0x0000 + 5 + registers + + PORTB + GPIO + + + ODR + Port B data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port B input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port B data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port B control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port B control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTC + 0x500A + + 0x0000 + 5 + registers + + PORTC + GPIO + + + ODR + Port C data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port C input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port C data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port C control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port C control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTD + 0x500F + + 0x0000 + 5 + registers + + PORTD + GPIO + + + ODR + Port D data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port D input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port D data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port D control register 1 + 8 + 0x0003 + 0x02 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port D control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTE + 0x5014 + + 0x0000 + 5 + registers + + PORTE + GPIO + + + ODR + Port E data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port E input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port E data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port E control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port E control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTF + 0x5019 + + 0x0000 + 5 + registers + + PORTF + GPIO + + + ODR + Port F data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port F input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port F data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port F control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port F control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTG + 0x501E + + 0x0000 + 5 + registers + + PORTG + GPIO + + + ODR + Port G data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port G input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port G data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port G control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port G control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTH + 0x5023 + + 0x0000 + 5 + registers + + PORTH + GPIO + + + ODR + Port H data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port H input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port H data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port H control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port H control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTI + 0x5028 + + 0x0000 + 5 + registers + + PORTI + GPIO + + + ODR + Port I data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port I input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port I data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port I control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port I control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + RST + 0x50B3 + + 0x0000 + 1 + registers + + RST + RST + + + SR + Reset status register + 8 + 0x0000 + 0x00 + + + WWDGF + 0 + 1 + + + IWDGF + 1 + 1 + + + ILLOPF + 2 + 1 + + + SWIMF + 3 + 1 + + + EMCF + 4 + 1 + + + + + + + SPI + 0x5200 + + 0x0000 + 8 + registers + + SPI + SPI + + + CR1 + SPI control register 1 + 8 + 0x0000 + 0x00 + + + CPHA + 0 + 1 + + + CPOL + 1 + 1 + + + MSTR + 2 + 1 + + + BR + 3 + 3 + + + SPE + 6 + 1 + + + LSBFIRST + 7 + 1 + + + + + CR2 + SPI control register 2 + 8 + 0x0001 + 0x00 + + + SSI + 0 + 1 + + + SSM + 1 + 1 + + + RXONLY + 2 + 1 + + + CRCNEXT + 4 + 1 + + + CECEN + 5 + 1 + + + BDOE + 6 + 1 + + + BDM + 7 + 1 + + + + + ICR + SPI interrupt control register + 8 + 0x0002 + 0x00 + + + WKIE + 4 + 1 + + + ERRIE + 5 + 1 + + + RXIE + 6 + 1 + + + TXIE + 7 + 1 + + + + + SR + SPI status register + 8 + 0x0003 + 0x02 + + + RXNE + 0 + 1 + + + TXE + 1 + 1 + + + WKUP + 3 + 1 + + + CRCERR + 4 + 1 + + + MODF + 5 + 1 + + + OVR + 6 + 1 + + + BSY + 7 + 1 + + + + + DR + SPI data register + 8 + 0x0004 + 0x00 + + + DR + 0 + 8 + + + + + CRCPR + SPI CRC polynomial register + 8 + 0x0005 + 0x07 + + + CRCPOLY + 0 + 8 + + + + + RXCRCR + SPI Rx CRC register + 8 + 0x0006 + 0xFF + + + RXCRC + 0 + 8 + + + + + TXCRCR + SPI Tx CRC register + 8 + 0x0007 + 0xFF + + + TXCRC + 0 + 8 + + + + + + Interrupt_IRQ10 + Interrupt_IRQ10 interrupt + 10 + + + + SWIM + 0x7F80 + + 0x0000 + 1 + registers + + SWIM + Debug + + + CSR + SWIM control status register + 8 + 0x0000 + 0x00 + + + + + TIM1 + 0x5250 + + 0x0000 + 32 + registers + + TIM1 + Timer + + + CR1 + TIM1 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + DIR + 4 + 1 + + + CMS + 5 + 2 + + + ARPE + 7 + 1 + + + + + CR2 + TIM1 control register 2 + 8 + 0x0001 + 0x00 + + + CCPG + 0 + 1 + + + COMS + 2 + 1 + + + MMS + 4 + 3 + + + + + SMCR + TIM1 slave mode control register + 8 + 0x0002 + 0x00 + + + SMS + 0 + 3 + + + TS + 4 + 3 + + + MSM + 7 + 1 + + + + + ETR + TIM1 external trigger register + 8 + 0x0003 + 0x00 + + + ETF + 0 + 4 + + + ETPS + 4 + 2 + + + ECE + 6 + 1 + + + ETP + 7 + 1 + + + + + IER + TIM1 Interrupt enable register + 8 + 0x0004 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + CC4IE + 4 + 1 + + + COMIE + 5 + 1 + + + TIE + 6 + 1 + + + BIE + 7 + 1 + + + + + SR1 + TIM1 status register 1 + 8 + 0x0005 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + CC4IF + 4 + 1 + + + COMIF + 5 + 1 + + + TIF + 6 + 1 + + + BIF + 7 + 1 + + + + + SR2 + TIM1 status register 2 + 8 + 0x0006 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + CC4OF + 4 + 1 + + + + + EGR + TIM1 event generation register + 8 + 0x0007 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + CC4G + 4 + 1 + + + COMG + 5 + 1 + + + TG + 6 + 1 + + + BG + 7 + 1 + + + + + CCMR1 + TIM1 capture/compare mode register 1 + 8 + 0x0008 + 0x00 + + + CC1S + 0 + 2 + + + OC1FE + 2 + 1 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + OC1CE + 7 + 1 + + + + + CCMR2 + TIM1 capture/compare mode register 2 + 8 + 0x0009 + 0x00 + + + CC2S + 0 + 2 + + + OC2FE + 2 + 1 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + OC2CE + 7 + 1 + + + + + CCMR3 + TIM1 capture/compare mode register 3 + 8 + 0x000A + 0x00 + + + CC3S + 0 + 2 + + + OC3FE + 2 + 1 + + + OC3PE + 3 + 1 + + + OC3M + 4 + 3 + + + OC3CE + 7 + 1 + + + + + CCMR4 + TIM1 capture/compare mode register 4 + 8 + 0x000B + 0x00 + + + CC4S + 0 + 2 + + + OC4FE + 2 + 1 + + + OC4PE + 3 + 1 + + + OC4M + 4 + 3 + + + OC4CE + 7 + 1 + + + + + CCER1 + TIM1 capture/compare enable register 1 + 8 + 0x000C + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC1NE + 2 + 1 + + + CC1NP + 3 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + CC2NE + 6 + 1 + + + CC2NP + 7 + 1 + + + + + CCER2 + TIM1 capture/compare enable register 2 + 8 + 0x000D + 0x00 + + + CC3E + 0 + 1 + + + CC3P + 1 + 1 + + + CC3NE + 2 + 1 + + + CC3NP + 3 + 1 + + + CC4E + 4 + 1 + + + CC4P + 5 + 1 + + + + + CNTRH + TIM1 counter high + 8 + 0x000E + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM1 counter low + 8 + 0x000F + 0x00 + + + CNT + 0 + 8 + + + + + PSCRH + TIM1 prescaler register high + 8 + 0x0010 + 0x00 + + + PSC + 0 + 8 + + + + + PSCRL + TIM1 prescaler register low + 8 + 0x0011 + 0x00 + + + PSC + 0 + 8 + + + + + ARRH + TIM1 auto-reload register high + 8 + 0x0012 + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM1 auto-reload register low + 8 + 0x0013 + 0xFF + + + ARR + 0 + 8 + + + + + RCR + TIM1 repetition counter register + 8 + 0x0014 + 0x00 + + + REP + 0 + 8 + + + + + CCR1H + TIM1 capture/compare register 1 high + 8 + 0x0015 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM1 capture/compare register 1 low + 8 + 0x0016 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM1 capture/compare register 2 high + 8 + 0x0017 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM1 capture/compare register 2 low + 8 + 0x0018 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR3H + TIM1 capture/compare register 3 high + 8 + 0x0019 + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR3L + TIM1 capture/compare register 3 low + 8 + 0x001A + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR4H + TIM1 capture/compare register 4 high + 8 + 0x001B + 0x00 + + + CCR4 + 0 + 8 + + + + + CCR4L + TIM1 capture/compare register 4 low + 8 + 0x001C + 0x00 + + + CCR4 + 0 + 8 + + + + + BKR + TIM1 break register + 8 + 0x001D + 0x00 + + + LOCK + 0 + 2 + + + OSSI + 2 + 1 + + + OSSR + 3 + 1 + + + BKE + 4 + 1 + + + BKP + 5 + 1 + + + AOE + 6 + 1 + + + MOE + 7 + 1 + + + + + DTR + TIM1 dead-time register + 8 + 0x001E + 0x00 + + + DTG + 0 + 8 + + + + + OISR + TIM1 output idle state register + 8 + 0x001F + 0x00 + + + OIS1 + 0 + 1 + + + OIS1N + 1 + 1 + + + OIS2 + 2 + 1 + + + OIS2N + 3 + 1 + + + OIS3 + 4 + 1 + + + OIS3N + 5 + 1 + + + OIS4 + 6 + 1 + + + + + + Interrupt_IRQ11 + Interrupt_IRQ11 interrupt + 11 + + + Interrupt_IRQ12 + Interrupt_IRQ12 interrupt + 12 + + + + TIM2 + 0x5300 + + 0x0000 + 21 + registers + + TIM2 + Timer + + + CR1 + TIM2 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM2 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + TIE + 6 + 1 + + + + + SR1 + TIM2 status register 1 + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + TIF + 6 + 1 + + + + + SR2 + TIM2 status register 2 + 8 + 0x0003 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + + + EGR + TIM2 event generation register + 8 + 0x0004 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + TG + 6 + 1 + + + + + CCMR1 + TIM2 capture/compare mode register 1 + 8 + 0x0005 + 0x00 + + + CC1S + 0 + 2 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + + + CCMR2 + TIM2 capture/compare mode register 2 + 8 + 0x0006 + 0x00 + + + CC2S + 0 + 2 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + + + CCMR3 + TIM2 capture/compare mode register 3 + 8 + 0x0007 + 0x00 + + + CC3S + 0 + 2 + + + OC3PE + 3 + 1 + + + OC3M + 4 + 3 + + + + + CCER1 + TIM2 capture/compare enable register 1 + 8 + 0x0008 + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + + + CCER2 + TIM2 capture/compare enable register 2 + 8 + 0x0009 + 0x00 + + + CC3E + 0 + 1 + + + CC3P + 1 + 1 + + + + + CNTRH + TIM2 counter high + 8 + 0x000A + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM2 counter low + 8 + 0x000B + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM2 prescaler register + 8 + 0x000C + 0x00 + + + PSC + 0 + 4 + + + + + ARRH + TIM2 auto-reload register high + 8 + 0x000D + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM2 auto-reload register low + 8 + 0x000E + 0xFF + + + ARR + 0 + 8 + + + + + CCR1H + TIM2 capture/compare register 1 high + 8 + 0x000F + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM2 capture/compare register 1 low + 8 + 0x0010 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM2 capture/compare reg + 8 + 0x0011 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM2 capture/compare register 2 low + 8 + 0x0012 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR3H + TIM2 capture/compare register 3 high + 8 + 0x0013 + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR3L + TIM2 capture/compare register 3 low + 8 + 0x0014 + 0x00 + + + CCR3 + 0 + 8 + + + + + + Interrupt_IRQ13 + Interrupt_IRQ13 interrupt + 13 + + + Interrupt_IRQ14 + Interrupt_IRQ14 interrupt + 14 + + + + TIM3 + 0x5320 + + 0x0000 + 17 + registers + + TIM3 + Timer + + + CR1 + TIM3 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM3 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + TIE + 6 + 1 + + + + + SR1 + TIM3 status register 1 + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + TIF + 6 + 1 + + + + + SR2 + TIM3 status register 2 + 8 + 0x0003 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + + + EGR + TIM3 event generation register + 8 + 0x0004 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + TG + 6 + 1 + + + + + CCMR1 + TIM3 capture/compare mode register 1 + 8 + 0x0005 + 0x00 + + + CC1S + 0 + 2 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + + + CCMR2 + TIM3 capture/compare mode register 2 + 8 + 0x0006 + 0x00 + + + CC2S + 0 + 2 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + + + CCER1 + TIM3 capture/compare enable register 1 + 8 + 0x0007 + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + + + CNTRH + TIM3 counter high + 8 + 0x0008 + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM3 counter low + 8 + 0x0009 + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM3 prescaler register + 8 + 0x000A + 0x00 + + + PSC + 0 + 4 + + + + + ARRH + TIM3 auto-reload register high + 8 + 0x000B + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM3 auto-reload register low + 8 + 0x000C + 0xFF + + + ARR + 0 + 8 + + + + + CCR1H + TIM3 capture/compare register 1 high + 8 + 0x000D + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM3 capture/compare register 1 low + 8 + 0x000E + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM3 capture/compare register 2 high + 8 + 0x000F + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM3 capture/compare register 2 low + 8 + 0x0010 + 0x00 + + + CCR2 + 0 + 8 + + + + + + Interrupt_IRQ15 + Interrupt_IRQ15 interrupt + 15 + + + Interrupt_IRQ16 + Interrupt_IRQ16 interrupt + 16 + + + + TIM4 + 0x5340 + + 0x0000 + 7 + registers + + TIM4 + Timer + + + CR1 + TIM4 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM4 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + TIE + 6 + 1 + + + + + SR + TIM4 status register + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + TIF + 6 + 1 + + + + + EGR + TIM4 event generation register + 8 + 0x0003 + 0x00 + + + UG + 0 + 1 + + + TG + 6 + 1 + + + + + CNTR + TIM4 counter + 8 + 0x0004 + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM4 prescaler register + 8 + 0x0005 + 0x00 + + + PSC + 0 + 3 + + + + + ARR + TIM4 auto-reload register + 8 + 0x0006 + 0xFF + + + ARR + 0 + 8 + + + + + + Interrupt_IRQ23 + Interrupt_IRQ23 interrupt + 23 + + + + UART1 + 0x5230 + + 0x0000 + 11 + registers + + UART1 + Uart + + + SR + UART1 status register + 8 + 0x0000 + 0xC0 + + + PE + 0 + 1 + + + FE + 1 + 1 + + + NF + 2 + 1 + + + OR_LHE + 3 + 1 + + + IDLE + 4 + 1 + + + RXNE + 5 + 1 + + + TC + 6 + 1 + + + TXE + 7 + 1 + + + + + DR + UART1 data register + 8 + 0x0001 + 0x00 + + + DR + 0 + 8 + + + + + BRR1 + UART1 baud rate register 1 + 8 + 0x0002 + 0x00 + + + UART_DIV + 0 + 8 + + + + + BRR2 + UART1 baud rate register 2 + 8 + 0x0003 + 0x00 + + + UART_DIV + 0 + 8 + + + + + CR1 + UART1 control register 1 + 8 + 0x0004 + 0x00 + + + PIEN + 0 + 1 + + + PS + 1 + 1 + + + PCEN + 2 + 1 + + + WAKE + 3 + 1 + + + M + 4 + 1 + + + UART0 + 5 + 1 + + + T8 + 6 + 1 + + + R8 + 7 + 1 + + + + + CR2 + UART1 control register 2 + 8 + 0x0005 + 0x00 + + + SBK + 0 + 1 + + + RWU + 1 + 1 + + + REN + 2 + 1 + + + TEN + 3 + 1 + + + ILIEN + 4 + 1 + + + RIEN + 5 + 1 + + + TCIEN + 6 + 1 + + + TIEN + 7 + 1 + + + + + CR3 + UART1 control register 3 + 8 + 0x0006 + 0x00 + + + LBCL + 0 + 1 + + + CPHA + 1 + 1 + + + CPOL + 2 + 1 + + + CKEN + 3 + 1 + + + STOP + 4 + 2 + + + LINEN + 7 + 1 + + + + + CR4 + UART1 control register 4 + 8 + 0x0007 + 0x00 + + + ADD + 0 + 4 + + + LBDF + 4 + 1 + + + LBDL + 5 + 1 + + + LBDIEN + 6 + 1 + + + + + CR5 + UART1 control register 5 + 8 + 0x0008 + 0x00 + + + IREN + 1 + 1 + + + IRLP + 2 + 1 + + + HDSEL + 3 + 1 + + + NACK + 4 + 1 + + + SCEN + 5 + 1 + + + + + GTR + UART1 guard time register + 8 + 0x0009 + 0x00 + + + GT + 0 + 8 + + + + + PSCR + UART1 prescaler register + 8 + 0x000A + 0x00 + + + PSC + 0 + 8 + + + + + + Interrupt_IRQ17 + Interrupt_IRQ17 interrupt + 17 + + + Interrupt_IRQ18 + Interrupt_IRQ18 interrupt + 18 + + + + UART3 + 0x5240 + + 0x0000 + 8 + registers + + + 0x0009 + 1 + registers + + UART3 + Uart + + + SR + UART3 status register + 8 + 0x0000 + 0xC0 + + + PE + 0 + 1 + + + FE + 1 + 1 + + + NF + 2 + 1 + + + OR + 3 + 1 + + + IDLE + 4 + 1 + + + RXNE + 5 + 1 + + + TC + 6 + 1 + + + TXE + 7 + 1 + + + + + DR + UART3 data register + 8 + 0x0001 + 0x00 + + + DR + 0 + 8 + + + + + BRR1 + UART3 baud rate register 1 + 8 + 0x0002 + 0x00 + + + UART_DIV + 0 + 8 + + + + + BRR2 + UART3 baud rate register 2 + 8 + 0x0003 + 0x00 + + + UART_DIV + 0 + 8 + + + + + CR1 + UART3 control register 1 + 8 + 0x0004 + 0x00 + + + PIEN + 0 + 1 + + + PS + 1 + 1 + + + PCEN + 2 + 1 + + + WAKE + 3 + 1 + + + M + 4 + 1 + + + UARTD + 5 + 1 + + + T8 + 6 + 1 + + + R8 + 7 + 1 + + + + + CR2 + UART3 control register 2 + 8 + 0x0005 + 0x00 + + + SBK + 0 + 1 + + + RWU + 1 + 1 + + + REN + 2 + 1 + + + TEN + 3 + 1 + + + ILIEN + 4 + 1 + + + RIEN + 5 + 1 + + + TCIEN + 6 + 1 + + + TIEN + 7 + 1 + + + + + CR3 + UART3 control register 3 + 8 + 0x0006 + 0x00 + + + STOP + 4 + 2 + + + LINEN + 6 + 1 + + + + + CR4 + UART3 control register 4 + 8 + 0x0007 + 0x00 + + + ADD + 0 + 4 + + + LBDF + 4 + 1 + + + LBDL + 5 + 1 + + + LBDIEN + 6 + 1 + + + + + CR6 + UART3 control register 6 + 8 + 0x0009 + 0x00 + + + LSF + 0 + 1 + + + LHDF + 1 + 1 + + + LHDIEN + 2 + 1 + + + LASE + 4 + 1 + + + LSLV + 5 + 1 + + + LDUM + 7 + 1 + + + + + + Interrupt_IRQ20 + Interrupt_IRQ20 interrupt + 20 + + + Interrupt_IRQ21 + Interrupt_IRQ21 interrupt + 21 + + + + WWDG + 0x50D1 + + 0x0000 + 2 + registers + + WWDG + Watchdog + + + CR + WWDG control register + 8 + 0x0000 + 0x7F + + + T0 + 0 + 1 + + + T1 + 1 + 1 + + + T2 + 2 + 1 + + + T3 + 3 + 1 + + + T4 + 4 + 1 + + + T5 + 5 + 1 + + + T6 + 6 + 1 + + + WDGA + 7 + 1 + + + + + WR + WWDR window register + 8 + 0x0001 + 0x7F + + + W0 + 0 + 1 + + + W1 + 1 + 1 + + + W2 + 2 + 1 + + + W3 + 3 + 1 + + + W4 + 4 + 1 + + + W5 + 5 + 1 + + + W6 + 6 + 1 + + + + + + + diff --git a/misc/svd/STM8S208MB.svd b/misc/svd/STM8S208MB.svd new file mode 100644 index 0000000..679c983 --- /dev/null +++ b/misc/svd/STM8S208MB.svd @@ -0,0 +1,7561 @@ + + + STMicroelectronics + STM8S208MB + 1.0 + STM8S/STM8AF, high density + Mainstream Performance line 8-bit MCU with 128 Kbytes Flash, 24 MHz CPU, integrated EEPROM + + other + r1p0 + big + false + false + false + false + false + false + false + false + false + 4 + + 8 + 8 + 8 + read-write + + + ADC2 + 0x5400 + + 0x0000 + 8 + registers + + ADC2 + ADC + + + CSR + ADC control/status register + 8 + 0x0000 + 0x00 + + + CH + 0 + 4 + + + AWDIE + 4 + 1 + + + EOCIE + 5 + 1 + + + AWD + 6 + 1 + + + EOC + 7 + 1 + + + + + CR1 + ADC configuration register 1 + 8 + 0x0001 + 0x00 + + + ADON + 0 + 1 + + + CONT + 1 + 1 + + + SPSEL + 4 + 3 + + + + + CR2 + ADC configuration register 2 + 8 + 0x0002 + 0x00 + + + SCAN + 1 + 1 + + + ALIGN + 3 + 1 + + + EXTSEL + 4 + 2 + + + EXTTRIG + 6 + 1 + + + + + CR3 + ADC configuration register 3 + 8 + 0x0003 + 0x00 + + + OVR + 6 + 1 + + + DBUF + 7 + 1 + + + + + DRH + ADC data register high + 8 + 0x0004 + 0x00 + + + DH + 0 + 8 + + + + + DRL + ADC data register low + 8 + 0x0005 + 0x00 + + + DL + 0 + 8 + + + + + TDRH + ADC Schmitt trigger disable register high + 8 + 0x0006 + 0x00 + + + TD + 0 + 8 + + + + + TDRL + ADC Schmitt trigger disable register low + 8 + 0x0007 + 0x00 + + + TL + 0 + 8 + + + + + + Interrupt_IRQ22 + Interrupt_IRQ22 interrupt + 22 + + + + AWU + 0x50F0 + + 0x0000 + 3 + registers + + AWU + AWU + + + CSR1 + AWU control/status register 1 + 8 + 0x0000 + 0x00 + + + MSR + 0 + 1 + + + AWUEN + 4 + 1 + + + AWUF + 5 + 1 + + + + + APR + AWU asynchronous prescaler buffer register + 8 + 0x0001 + 0x3F + + + APR + 0 + 6 + + + + + TBR + AWU timebase selection register + 8 + 0x0002 + 0x00 + + + AWUTB + 0 + 4 + + + + + + Interrupt_IRQ1 + Interrupt_IRQ1 interrupt + 1 + + + + BEEP + 0x50F3 + + 0x0000 + 1 + registers + + BEEP + BEEP + + + CSR + BEEP control/status register + 8 + 0x0000 + 0x1F + + + BEEPDIV + 0 + 5 + + + BEEPEN + 5 + 1 + + + BEEPSEL + 6 + 2 + + + + + + + CLK + 0x50C0 + + 0x0000 + 2 + registers + + + 0x0003 + 11 + registers + + CLK + CLK + + + ICKR + Internal clock control register + 8 + 0x0000 + 0x01 + + + HSIEN + 0 + 1 + + + HSIRDY + 1 + 1 + + + FHW + 2 + 1 + + + LSIEN + 3 + 1 + + + LSIRDY + 4 + 1 + + + REGAH + 5 + 1 + + + + + ECKR + External clock control register + 8 + 0x0001 + 0x00 + + + HSEEN + 0 + 1 + + + HSERDY + 1 + 1 + + + + + CMSR + Clock master status register + 8 + 0x0003 + 0xE1 + + + CKM + 0 + 8 + + + + + SWR + Clock master switch register + 8 + 0x0004 + 0xE1 + + + SWI + 0 + 8 + + + + + SWCR + Clock switch control register + 8 + 0x0005 + 0x00 + + + SWBSY + 0 + 1 + + + SWEN + 1 + 1 + + + SWIEN + 2 + 1 + + + SWIF + 3 + 1 + + + + + CKDIVR + Clock divider register + 8 + 0x0006 + 0x18 + + + CPUDIV + 0 + 3 + + + HSIDIV + 3 + 2 + + + + + PCKENR1 + Peripheral clock gating register 1 + 8 + 0x0007 + 0xFF + + + PCKEN + 0 + 8 + + + + + CSSR + Clock security system register + 8 + 0x0008 + 0x00 + + + CSSEN + 0 + 1 + + + AUX + 1 + 1 + + + CSSDIE + 2 + 1 + + + CSSD + 3 + 1 + + + + + CCOR + Configurable clock control register + 8 + 0x0009 + 0x00 + + + CCOEN + 0 + 1 + + + CCOSEL + 1 + 4 + + + CCORDY + 5 + 1 + + + CC0BSY + 6 + 1 + + + + + PCKENR2 + Peripheral clock gating register 2 + 8 + 0x000A + 0xFF + + + PCKEN2 + 0 + 8 + + + + + CANCCR + CAN clock control register + 8 + 0x000B + 0x00 + + + CANDIV + 0 + 3 + + + + + HSITRIMR + HSI clock calibration trimming register + 8 + 0x000C + 0x00 + + + HSITRIM + 0 + 4 + + + + + SWIMCCR + SWIM clock control register + 8 + 0x000D + 0x00 + + + SWIMCLK + 0 + 1 + + + + + + Interrupt_IRQ2 + Interrupt_IRQ2 interrupt + 2 + + + + CPU + 0x7F00 + + 0x0000 + 11 + registers + + + 0x0060 + 1 + registers + + CPU + CPU + + + A + Accumulator + 8 + 0x0000 + 0x00 + + + PCE + Program counter extended + 8 + 0x0001 + 0x00 + + + PCH + Program counter high + 8 + 0x0002 + 0x00 + + + PCL + Program counter low + 8 + 0x0003 + 0x00 + + + XH + X index register high + 8 + 0x0004 + 0x00 + + + XL + X index register low + 8 + 0x0005 + 0x00 + + + YH + Y index register high + 8 + 0x0006 + 0x00 + + + YL + Y index register low + 8 + 0x0007 + 0x00 + + + SPH + Stack pointer high + 8 + 0x0008 + 0x17 + + + SPL + Stack pointer low + 8 + 0x0009 + 0xFF + + + CCR + Condition code register + 8 + 0x000A + 0x28 + + + C + 0 + 1 + + + Z + 1 + 1 + + + NF + 2 + 1 + + + I0 + 3 + 1 + + + H + 4 + 1 + + + I1 + 5 + 1 + + + V + 7 + 1 + + + + + CFG_GCR + Global configuration register + 8 + 0x0060 + 0x00 + + + SWO + 0 + 1 + + + AL + 1 + 1 + + + + + + + DM + 0x7F90 + + 0x0000 + 11 + registers + + DM + DM + + + BK1RE + DM breakpoint 1 register extended byte + 8 + 0x0000 + 0xFF + + + BK1RH + DM breakpoint 1 register high byte + 8 + 0x0001 + 0xFF + + + BK1RL + DM breakpoint 1 register low byte + 8 + 0x0002 + 0xFF + + + BK2RE + DM breakpoint 2 register extended byte + 8 + 0x0003 + 0xFF + + + BK2RH + DM breakpoint 2 register high byte + 8 + 0x0004 + 0xFF + + + BK2RL + DM breakpoint 2 register low byte + 8 + 0x0005 + 0xFF + + + CR1 + DM debug module control register 1 + 8 + 0x0006 + 0x00 + + + CR2 + DM debug module control register 2 + 8 + 0x0007 + 0x00 + + + CSR1 + DM debug module control/status register 1 + 8 + 0x0008 + 0x10 + + + CSR2 + DM debug module control/status register 2 + 8 + 0x0009 + 0x00 + + + ENFCTR + DM enable function register + 8 + 0x000A + 0xFF + + + + + FLASH + 0x505A + + 0x0000 + 6 + registers + + + 0x0008 + 1 + registers + + + 0x000a + 1 + registers + + FLASH + FLASH + + + CR1 + Flash control register 1 + 8 + 0x0000 + 0x00 + + + FIX + 0 + 1 + + + IE + 1 + 1 + + + AHALT + 2 + 1 + + + HALT + 3 + 1 + + + + + CR2 + Flash control register 2 + 8 + 0x0001 + 0x00 + + + PRG + 0 + 1 + + + FPRG + 4 + 1 + + + ERASE + 5 + 1 + + + WPRG + 6 + 1 + + + OPT + 7 + 1 + + + + + NCR2 + Flash complementary control register 2 + 8 + 0x0002 + 0xFF + + + NPRG + 0 + 1 + + + NFPRG + 4 + 1 + + + NERASE + 5 + 1 + + + NWPRG + 6 + 1 + + + NOPT + 7 + 1 + + + + + FPR + Flash protection register + 8 + 0x0003 + 0x00 + + + WPB0 + 0 + 1 + + + WPB1 + 1 + 1 + + + WPB2 + 2 + 1 + + + WPB3 + 3 + 1 + + + WPB4 + 4 + 1 + + + WPB5 + 5 + 1 + + + + + NFPR + Flash complementary protection register + 8 + 0x0004 + 0xFF + + + NWPB0 + 0 + 1 + + + NWPB1 + 1 + 1 + + + NWPB2 + 2 + 1 + + + NWPB3 + 3 + 1 + + + NWPB4 + 4 + 1 + + + NWPB5 + 5 + 1 + + + + + IAPSR + Flash in-application programming status register + 8 + 0x0005 + 0x00 + + + WR_PG_DIS + 0 + 1 + + + PUL + 1 + 1 + + + EOP + 2 + 1 + + + DUL + 3 + 1 + + + HVOFF + 6 + 1 + + + + + PUKR + Flash Program memory unprotection register + 8 + 0x0008 + 0x00 + + + MASS_PRG + 0 + 8 + + + + + DUKR + Data EEPROM unprotection register + 8 + 0x000A + 0x00 + + + MASS_DATA + 0 + 8 + + + + + + Interrupt_IRQ24 + Interrupt_IRQ24 interrupt + 24 + + + + I2C + 0x5210 + + 0x0000 + 5 + registers + + + 0x0006 + 9 + registers + + I2C + I2C + + + CR1 + I2C control register 1 + 8 + 0x0000 + 0x00 + + + PE + 0 + 1 + + + ENGC + 6 + 1 + + + NOSTRETCH + 7 + 1 + + + + + CR2 + I2C control register 2 + 8 + 0x0001 + 0x00 + + + START + 0 + 1 + + + STOP + 1 + 1 + + + ACK + 2 + 1 + + + POS + 3 + 1 + + + SWRST + 7 + 1 + + + + + FREQR + I2C frequency register + 8 + 0x0002 + 0x00 + + + FREQ + 0 + 6 + + + + + OARL + I2C own address register low + 8 + 0x0003 + 0x00 + + + ADD0 + 0 + 1 + + + ADD + 1 + 7 + + + + + OARH + I2C own address register high + 8 + 0x0004 + 0x00 + + + ADD + 1 + 2 + + + ADDCONF + 6 + 1 + + + ADDMODE + 7 + 1 + + + + + DR + I2C data register + 8 + 0x0006 + 0x00 + + + DR + 0 + 8 + + + + + SR1 + I2C status register 1 + 8 + 0x0007 + 0x00 + + + SB + 0 + 1 + + + ADDR + 1 + 1 + + + BTF + 2 + 1 + + + ADD10 + 3 + 1 + + + STOPF + 4 + 1 + + + RXNE + 6 + 1 + + + TXE + 7 + 1 + + + + + SR2 + I2C status register 2 + 8 + 0x0008 + 0x00 + + + BERR + 0 + 1 + + + ARLO + 1 + 1 + + + AF + 2 + 1 + + + OVR + 3 + 1 + + + WUFH + 5 + 1 + + + + + SR3 + I2C status register 3 + 8 + 0x0009 + 0x00 + + + MSL + 0 + 1 + + + BUSY + 1 + 1 + + + TRA + 2 + 1 + + + GENCALL + 4 + 1 + + + + + ITR + I2C interrupt control register + 8 + 0x000A + 0x00 + + + ITERREN + 0 + 1 + + + ITEVTEN + 1 + 1 + + + ITBUFEN + 2 + 1 + + + + + CCRL + I2C clock control register low + 8 + 0x000B + 0x00 + + + CCR + 0 + 8 + + + + + CCRH + I2C clock control register high + 8 + 0x000C + 0x00 + + + CCR + 0 + 4 + + + DUTY + 6 + 1 + + + F_S + 7 + 1 + + + + + TRISER + I2C TRISE register + 8 + 0x000D + 0x02 + + + TRISE + 0 + 6 + + + + + PECR + I2C packet error checking register + 8 + 0x000E + 0x00 + + + + Interrupt_IRQ19 + Interrupt_IRQ19 interrupt + 19 + + + + ITC + 0x50A0 + + 0x0000 + 2 + registers + + + 0x2ed0 + 8 + registers + + ITC + ITC + + + CR1 + External interrupt control register 1 + 8 + 0x0000 + 0x00 + + + PAIS + 0 + 2 + + + PBIS + 2 + 2 + + + PCIS + 4 + 2 + + + PDIS + 6 + 2 + + + + + CR2 + External interrupt control register 2 + 8 + 0x0001 + 0x00 + + + PEIS + 0 + 2 + + + TLIS + 2 + 1 + + + + + SPR1 + Interrupt software priority register 1 + 8 + 0x2ED0 + 0xFF + + + VECT0SPR + 0 + 2 + + + VECT1SPR + 2 + 2 + + + VECT2SPR + 4 + 2 + + + VECT3SPR + 6 + 2 + + + + + SPR2 + Interrupt software priority register 2 + 8 + 0x2ED1 + 0xFF + + + VECT4SPR + 0 + 2 + + + VECT5SPR + 2 + 2 + + + VECT6SPR + 4 + 2 + + + VECT7SPR + 6 + 2 + + + + + SPR3 + Interrupt software priority register 3 + 8 + 0x2ED2 + 0xFF + + + VECT8SPR + 0 + 2 + + + VECT9SPR + 2 + 2 + + + VECT10SPR + 4 + 2 + + + VECT11SPR + 6 + 2 + + + + + SPR4 + Interrupt software priority register 4 + 8 + 0x2ED3 + 0xFF + + + VECT12SPR + 0 + 2 + + + VECT13SPR + 2 + 2 + + + VECT14SPR + 4 + 2 + + + VECT15SPR + 6 + 2 + + + + + SPR5 + Interrupt software priority register 5 + 8 + 0x2ED4 + 0xFF + + + VECT16SPR + 0 + 2 + + + VECT17SPR + 2 + 2 + + + VECT18SPR + 4 + 2 + + + VECT19SPR + 6 + 2 + + + + + SPR6 + Interrupt software priority register 6 + 8 + 0x2ED5 + 0xFF + + + VECT20SPR + 0 + 2 + + + VECT21SPR + 2 + 2 + + + VECT22SPR + 4 + 2 + + + VECT23SPR + 6 + 2 + + + + + SPR7 + Interrupt software priority register 7 + 8 + 0x2ED6 + 0xFF + + + VECT24SPR + 0 + 2 + + + VECT25SPR + 2 + 2 + + + VECT26SPR + 4 + 2 + + + VECT27SPR + 6 + 2 + + + + + SPR8 + Interrupt software priority register 8 + 8 + 0x2ED7 + 0xFF + + + VECT28SPR + 0 + 2 + + + VECT29SPR + 2 + 2 + + + + + + Interrupt_IRQ2 + Interrupt_IRQ2 interrupt + 2 + + + + IWDG + 0x50E0 + + 0x0000 + 3 + registers + + IWDG + Watchdog + + + KR + IWDG key register + 8 + 0x0000 + 0x00 + + + KEY + 0 + 8 + + + + + PR + IWDG prescaler register + 8 + 0x0001 + 0x00 + + + PR + 0 + 3 + + + + + RLR + IWDG reload register + 8 + 0x0002 + 0xFF + + + RL + 0 + 8 + + + + + + + OPT + 0x4800 + + 0x0000 + 11 + registers + + + 0x000d + 2 + registers + + + 0x007e + 2 + registers + + OPT + Option-Bytes + + + OPT0 + Read-out protection (ROP) + 8 + 0x0000 + 0x00 + + + OPT1 + User boot code (UBC) + 8 + 0x0001 + 0x00 + + + NOPT1 + User boot code (UBC) (complementary byte) + 8 + 0x0002 + 0xFF + + + OPT2 + Alternate function remapping (AFR) + 8 + 0x0003 + 0x00 + + + NOPT2 + Alternate function remapping (AFR) (complementary byte) + 8 + 0x0004 + 0xFF + + + OPT3 + Misc. option + 8 + 0x0005 + 0x00 + + + NOPT3 + Misc. option (complementary byte) + 8 + 0x0006 + 0xFF + + + OPT4 + Clock option + 8 + 0x0007 + 0x00 + + + NOPT4 + Clock option (complementary byte) + 8 + 0x0008 + 0xFF + + + OPT5 + HSE clock startup + 8 + 0x0009 + 0x00 + + + NOPT5 + HSE clock startup (complementary byte) + 8 + 0x000A + 0xFF + + + OPT7 + Flash wait states + 8 + 0x000D + 0x00 + + + NOPT7 + Flash wait states (complementary byte) + 8 + 0x000E + 0xFF + + + OPTBL + Bootloader + 8 + 0x007E + 0x00 + + + NOPTBL + Bootloader (complementary byte) + 8 + 0x007F + 0xFF + + + + + PORTA + 0x5000 + + 0x0000 + 5 + registers + + PORTA + GPIO + + + ODR + Port A data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port A input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port A data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port A control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port A control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTB + 0x5005 + + 0x0000 + 5 + registers + + PORTB + GPIO + + + ODR + Port B data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port B input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port B data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port B control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port B control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTC + 0x500A + + 0x0000 + 5 + registers + + PORTC + GPIO + + + ODR + Port C data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port C input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port C data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port C control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port C control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTD + 0x500F + + 0x0000 + 5 + registers + + PORTD + GPIO + + + ODR + Port D data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port D input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port D data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port D control register 1 + 8 + 0x0003 + 0x02 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port D control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTE + 0x5014 + + 0x0000 + 5 + registers + + PORTE + GPIO + + + ODR + Port E data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port E input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port E data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port E control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port E control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTF + 0x5019 + + 0x0000 + 5 + registers + + PORTF + GPIO + + + ODR + Port F data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port F input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port F data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port F control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port F control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTG + 0x501E + + 0x0000 + 5 + registers + + PORTG + GPIO + + + ODR + Port G data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port G input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port G data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port G control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port G control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTH + 0x5023 + + 0x0000 + 5 + registers + + PORTH + GPIO + + + ODR + Port H data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port H input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port H data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port H control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port H control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTI + 0x5028 + + 0x0000 + 5 + registers + + PORTI + GPIO + + + ODR + Port I data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port I input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port I data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port I control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port I control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + RST + 0x50B3 + + 0x0000 + 1 + registers + + RST + RST + + + SR + Reset status register + 8 + 0x0000 + 0x00 + + + WWDGF + 0 + 1 + + + IWDGF + 1 + 1 + + + ILLOPF + 2 + 1 + + + SWIMF + 3 + 1 + + + EMCF + 4 + 1 + + + + + + + SPI + 0x5200 + + 0x0000 + 8 + registers + + SPI + SPI + + + CR1 + SPI control register 1 + 8 + 0x0000 + 0x00 + + + CPHA + 0 + 1 + + + CPOL + 1 + 1 + + + MSTR + 2 + 1 + + + BR + 3 + 3 + + + SPE + 6 + 1 + + + LSBFIRST + 7 + 1 + + + + + CR2 + SPI control register 2 + 8 + 0x0001 + 0x00 + + + SSI + 0 + 1 + + + SSM + 1 + 1 + + + RXONLY + 2 + 1 + + + CRCNEXT + 4 + 1 + + + CECEN + 5 + 1 + + + BDOE + 6 + 1 + + + BDM + 7 + 1 + + + + + ICR + SPI interrupt control register + 8 + 0x0002 + 0x00 + + + WKIE + 4 + 1 + + + ERRIE + 5 + 1 + + + RXIE + 6 + 1 + + + TXIE + 7 + 1 + + + + + SR + SPI status register + 8 + 0x0003 + 0x02 + + + RXNE + 0 + 1 + + + TXE + 1 + 1 + + + WKUP + 3 + 1 + + + CRCERR + 4 + 1 + + + MODF + 5 + 1 + + + OVR + 6 + 1 + + + BSY + 7 + 1 + + + + + DR + SPI data register + 8 + 0x0004 + 0x00 + + + DR + 0 + 8 + + + + + CRCPR + SPI CRC polynomial register + 8 + 0x0005 + 0x07 + + + CRCPOLY + 0 + 8 + + + + + RXCRCR + SPI Rx CRC register + 8 + 0x0006 + 0xFF + + + RXCRC + 0 + 8 + + + + + TXCRCR + SPI Tx CRC register + 8 + 0x0007 + 0xFF + + + TXCRC + 0 + 8 + + + + + + Interrupt_IRQ10 + Interrupt_IRQ10 interrupt + 10 + + + + SWIM + 0x7F80 + + 0x0000 + 1 + registers + + SWIM + Debug + + + CSR + SWIM control status register + 8 + 0x0000 + 0x00 + + + + + TIM1 + 0x5250 + + 0x0000 + 32 + registers + + TIM1 + Timer + + + CR1 + TIM1 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + DIR + 4 + 1 + + + CMS + 5 + 2 + + + ARPE + 7 + 1 + + + + + CR2 + TIM1 control register 2 + 8 + 0x0001 + 0x00 + + + CCPG + 0 + 1 + + + COMS + 2 + 1 + + + MMS + 4 + 3 + + + + + SMCR + TIM1 slave mode control register + 8 + 0x0002 + 0x00 + + + SMS + 0 + 3 + + + TS + 4 + 3 + + + MSM + 7 + 1 + + + + + ETR + TIM1 external trigger register + 8 + 0x0003 + 0x00 + + + ETF + 0 + 4 + + + ETPS + 4 + 2 + + + ECE + 6 + 1 + + + ETP + 7 + 1 + + + + + IER + TIM1 Interrupt enable register + 8 + 0x0004 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + CC4IE + 4 + 1 + + + COMIE + 5 + 1 + + + TIE + 6 + 1 + + + BIE + 7 + 1 + + + + + SR1 + TIM1 status register 1 + 8 + 0x0005 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + CC4IF + 4 + 1 + + + COMIF + 5 + 1 + + + TIF + 6 + 1 + + + BIF + 7 + 1 + + + + + SR2 + TIM1 status register 2 + 8 + 0x0006 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + CC4OF + 4 + 1 + + + + + EGR + TIM1 event generation register + 8 + 0x0007 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + CC4G + 4 + 1 + + + COMG + 5 + 1 + + + TG + 6 + 1 + + + BG + 7 + 1 + + + + + CCMR1 + TIM1 capture/compare mode register 1 + 8 + 0x0008 + 0x00 + + + CC1S + 0 + 2 + + + OC1FE + 2 + 1 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + OC1CE + 7 + 1 + + + + + CCMR2 + TIM1 capture/compare mode register 2 + 8 + 0x0009 + 0x00 + + + CC2S + 0 + 2 + + + OC2FE + 2 + 1 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + OC2CE + 7 + 1 + + + + + CCMR3 + TIM1 capture/compare mode register 3 + 8 + 0x000A + 0x00 + + + CC3S + 0 + 2 + + + OC3FE + 2 + 1 + + + OC3PE + 3 + 1 + + + OC3M + 4 + 3 + + + OC3CE + 7 + 1 + + + + + CCMR4 + TIM1 capture/compare mode register 4 + 8 + 0x000B + 0x00 + + + CC4S + 0 + 2 + + + OC4FE + 2 + 1 + + + OC4PE + 3 + 1 + + + OC4M + 4 + 3 + + + OC4CE + 7 + 1 + + + + + CCER1 + TIM1 capture/compare enable register 1 + 8 + 0x000C + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC1NE + 2 + 1 + + + CC1NP + 3 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + CC2NE + 6 + 1 + + + CC2NP + 7 + 1 + + + + + CCER2 + TIM1 capture/compare enable register 2 + 8 + 0x000D + 0x00 + + + CC3E + 0 + 1 + + + CC3P + 1 + 1 + + + CC3NE + 2 + 1 + + + CC3NP + 3 + 1 + + + CC4E + 4 + 1 + + + CC4P + 5 + 1 + + + + + CNTRH + TIM1 counter high + 8 + 0x000E + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM1 counter low + 8 + 0x000F + 0x00 + + + CNT + 0 + 8 + + + + + PSCRH + TIM1 prescaler register high + 8 + 0x0010 + 0x00 + + + PSC + 0 + 8 + + + + + PSCRL + TIM1 prescaler register low + 8 + 0x0011 + 0x00 + + + PSC + 0 + 8 + + + + + ARRH + TIM1 auto-reload register high + 8 + 0x0012 + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM1 auto-reload register low + 8 + 0x0013 + 0xFF + + + ARR + 0 + 8 + + + + + RCR + TIM1 repetition counter register + 8 + 0x0014 + 0x00 + + + REP + 0 + 8 + + + + + CCR1H + TIM1 capture/compare register 1 high + 8 + 0x0015 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM1 capture/compare register 1 low + 8 + 0x0016 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM1 capture/compare register 2 high + 8 + 0x0017 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM1 capture/compare register 2 low + 8 + 0x0018 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR3H + TIM1 capture/compare register 3 high + 8 + 0x0019 + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR3L + TIM1 capture/compare register 3 low + 8 + 0x001A + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR4H + TIM1 capture/compare register 4 high + 8 + 0x001B + 0x00 + + + CCR4 + 0 + 8 + + + + + CCR4L + TIM1 capture/compare register 4 low + 8 + 0x001C + 0x00 + + + CCR4 + 0 + 8 + + + + + BKR + TIM1 break register + 8 + 0x001D + 0x00 + + + LOCK + 0 + 2 + + + OSSI + 2 + 1 + + + OSSR + 3 + 1 + + + BKE + 4 + 1 + + + BKP + 5 + 1 + + + AOE + 6 + 1 + + + MOE + 7 + 1 + + + + + DTR + TIM1 dead-time register + 8 + 0x001E + 0x00 + + + DTG + 0 + 8 + + + + + OISR + TIM1 output idle state register + 8 + 0x001F + 0x00 + + + OIS1 + 0 + 1 + + + OIS1N + 1 + 1 + + + OIS2 + 2 + 1 + + + OIS2N + 3 + 1 + + + OIS3 + 4 + 1 + + + OIS3N + 5 + 1 + + + OIS4 + 6 + 1 + + + + + + Interrupt_IRQ11 + Interrupt_IRQ11 interrupt + 11 + + + Interrupt_IRQ12 + Interrupt_IRQ12 interrupt + 12 + + + + TIM2 + 0x5300 + + 0x0000 + 21 + registers + + TIM2 + Timer + + + CR1 + TIM2 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM2 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + TIE + 6 + 1 + + + + + SR1 + TIM2 status register 1 + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + TIF + 6 + 1 + + + + + SR2 + TIM2 status register 2 + 8 + 0x0003 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + + + EGR + TIM2 event generation register + 8 + 0x0004 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + TG + 6 + 1 + + + + + CCMR1 + TIM2 capture/compare mode register 1 + 8 + 0x0005 + 0x00 + + + CC1S + 0 + 2 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + + + CCMR2 + TIM2 capture/compare mode register 2 + 8 + 0x0006 + 0x00 + + + CC2S + 0 + 2 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + + + CCMR3 + TIM2 capture/compare mode register 3 + 8 + 0x0007 + 0x00 + + + CC3S + 0 + 2 + + + OC3PE + 3 + 1 + + + OC3M + 4 + 3 + + + + + CCER1 + TIM2 capture/compare enable register 1 + 8 + 0x0008 + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + + + CCER2 + TIM2 capture/compare enable register 2 + 8 + 0x0009 + 0x00 + + + CC3E + 0 + 1 + + + CC3P + 1 + 1 + + + + + CNTRH + TIM2 counter high + 8 + 0x000A + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM2 counter low + 8 + 0x000B + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM2 prescaler register + 8 + 0x000C + 0x00 + + + PSC + 0 + 4 + + + + + ARRH + TIM2 auto-reload register high + 8 + 0x000D + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM2 auto-reload register low + 8 + 0x000E + 0xFF + + + ARR + 0 + 8 + + + + + CCR1H + TIM2 capture/compare register 1 high + 8 + 0x000F + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM2 capture/compare register 1 low + 8 + 0x0010 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM2 capture/compare reg + 8 + 0x0011 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM2 capture/compare register 2 low + 8 + 0x0012 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR3H + TIM2 capture/compare register 3 high + 8 + 0x0013 + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR3L + TIM2 capture/compare register 3 low + 8 + 0x0014 + 0x00 + + + CCR3 + 0 + 8 + + + + + + Interrupt_IRQ13 + Interrupt_IRQ13 interrupt + 13 + + + Interrupt_IRQ14 + Interrupt_IRQ14 interrupt + 14 + + + + TIM3 + 0x5320 + + 0x0000 + 17 + registers + + TIM3 + Timer + + + CR1 + TIM3 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM3 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + TIE + 6 + 1 + + + + + SR1 + TIM3 status register 1 + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + TIF + 6 + 1 + + + + + SR2 + TIM3 status register 2 + 8 + 0x0003 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + + + EGR + TIM3 event generation register + 8 + 0x0004 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + TG + 6 + 1 + + + + + CCMR1 + TIM3 capture/compare mode register 1 + 8 + 0x0005 + 0x00 + + + CC1S + 0 + 2 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + + + CCMR2 + TIM3 capture/compare mode register 2 + 8 + 0x0006 + 0x00 + + + CC2S + 0 + 2 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + + + CCER1 + TIM3 capture/compare enable register 1 + 8 + 0x0007 + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + + + CNTRH + TIM3 counter high + 8 + 0x0008 + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM3 counter low + 8 + 0x0009 + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM3 prescaler register + 8 + 0x000A + 0x00 + + + PSC + 0 + 4 + + + + + ARRH + TIM3 auto-reload register high + 8 + 0x000B + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM3 auto-reload register low + 8 + 0x000C + 0xFF + + + ARR + 0 + 8 + + + + + CCR1H + TIM3 capture/compare register 1 high + 8 + 0x000D + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM3 capture/compare register 1 low + 8 + 0x000E + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM3 capture/compare register 2 high + 8 + 0x000F + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM3 capture/compare register 2 low + 8 + 0x0010 + 0x00 + + + CCR2 + 0 + 8 + + + + + + Interrupt_IRQ15 + Interrupt_IRQ15 interrupt + 15 + + + Interrupt_IRQ16 + Interrupt_IRQ16 interrupt + 16 + + + + TIM4 + 0x5340 + + 0x0000 + 7 + registers + + TIM4 + Timer + + + CR1 + TIM4 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM4 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + TIE + 6 + 1 + + + + + SR + TIM4 status register + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + TIF + 6 + 1 + + + + + EGR + TIM4 event generation register + 8 + 0x0003 + 0x00 + + + UG + 0 + 1 + + + TG + 6 + 1 + + + + + CNTR + TIM4 counter + 8 + 0x0004 + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM4 prescaler register + 8 + 0x0005 + 0x00 + + + PSC + 0 + 3 + + + + + ARR + TIM4 auto-reload register + 8 + 0x0006 + 0xFF + + + ARR + 0 + 8 + + + + + + Interrupt_IRQ23 + Interrupt_IRQ23 interrupt + 23 + + + + UART1 + 0x5230 + + 0x0000 + 11 + registers + + UART1 + Uart + + + SR + UART1 status register + 8 + 0x0000 + 0xC0 + + + PE + 0 + 1 + + + FE + 1 + 1 + + + NF + 2 + 1 + + + OR_LHE + 3 + 1 + + + IDLE + 4 + 1 + + + RXNE + 5 + 1 + + + TC + 6 + 1 + + + TXE + 7 + 1 + + + + + DR + UART1 data register + 8 + 0x0001 + 0x00 + + + DR + 0 + 8 + + + + + BRR1 + UART1 baud rate register 1 + 8 + 0x0002 + 0x00 + + + UART_DIV + 0 + 8 + + + + + BRR2 + UART1 baud rate register 2 + 8 + 0x0003 + 0x00 + + + UART_DIV + 0 + 8 + + + + + CR1 + UART1 control register 1 + 8 + 0x0004 + 0x00 + + + PIEN + 0 + 1 + + + PS + 1 + 1 + + + PCEN + 2 + 1 + + + WAKE + 3 + 1 + + + M + 4 + 1 + + + UART0 + 5 + 1 + + + T8 + 6 + 1 + + + R8 + 7 + 1 + + + + + CR2 + UART1 control register 2 + 8 + 0x0005 + 0x00 + + + SBK + 0 + 1 + + + RWU + 1 + 1 + + + REN + 2 + 1 + + + TEN + 3 + 1 + + + ILIEN + 4 + 1 + + + RIEN + 5 + 1 + + + TCIEN + 6 + 1 + + + TIEN + 7 + 1 + + + + + CR3 + UART1 control register 3 + 8 + 0x0006 + 0x00 + + + LBCL + 0 + 1 + + + CPHA + 1 + 1 + + + CPOL + 2 + 1 + + + CKEN + 3 + 1 + + + STOP + 4 + 2 + + + LINEN + 7 + 1 + + + + + CR4 + UART1 control register 4 + 8 + 0x0007 + 0x00 + + + ADD + 0 + 4 + + + LBDF + 4 + 1 + + + LBDL + 5 + 1 + + + LBDIEN + 6 + 1 + + + + + CR5 + UART1 control register 5 + 8 + 0x0008 + 0x00 + + + IREN + 1 + 1 + + + IRLP + 2 + 1 + + + HDSEL + 3 + 1 + + + NACK + 4 + 1 + + + SCEN + 5 + 1 + + + + + GTR + UART1 guard time register + 8 + 0x0009 + 0x00 + + + GT + 0 + 8 + + + + + PSCR + UART1 prescaler register + 8 + 0x000A + 0x00 + + + PSC + 0 + 8 + + + + + + Interrupt_IRQ17 + Interrupt_IRQ17 interrupt + 17 + + + Interrupt_IRQ18 + Interrupt_IRQ18 interrupt + 18 + + + + UART3 + 0x5240 + + 0x0000 + 8 + registers + + + 0x0009 + 1 + registers + + UART3 + Uart + + + SR + UART3 status register + 8 + 0x0000 + 0xC0 + + + PE + 0 + 1 + + + FE + 1 + 1 + + + NF + 2 + 1 + + + OR + 3 + 1 + + + IDLE + 4 + 1 + + + RXNE + 5 + 1 + + + TC + 6 + 1 + + + TXE + 7 + 1 + + + + + DR + UART3 data register + 8 + 0x0001 + 0x00 + + + DR + 0 + 8 + + + + + BRR1 + UART3 baud rate register 1 + 8 + 0x0002 + 0x00 + + + UART_DIV + 0 + 8 + + + + + BRR2 + UART3 baud rate register 2 + 8 + 0x0003 + 0x00 + + + UART_DIV + 0 + 8 + + + + + CR1 + UART3 control register 1 + 8 + 0x0004 + 0x00 + + + PIEN + 0 + 1 + + + PS + 1 + 1 + + + PCEN + 2 + 1 + + + WAKE + 3 + 1 + + + M + 4 + 1 + + + UARTD + 5 + 1 + + + T8 + 6 + 1 + + + R8 + 7 + 1 + + + + + CR2 + UART3 control register 2 + 8 + 0x0005 + 0x00 + + + SBK + 0 + 1 + + + RWU + 1 + 1 + + + REN + 2 + 1 + + + TEN + 3 + 1 + + + ILIEN + 4 + 1 + + + RIEN + 5 + 1 + + + TCIEN + 6 + 1 + + + TIEN + 7 + 1 + + + + + CR3 + UART3 control register 3 + 8 + 0x0006 + 0x00 + + + STOP + 4 + 2 + + + LINEN + 6 + 1 + + + + + CR4 + UART3 control register 4 + 8 + 0x0007 + 0x00 + + + ADD + 0 + 4 + + + LBDF + 4 + 1 + + + LBDL + 5 + 1 + + + LBDIEN + 6 + 1 + + + + + CR6 + UART3 control register 6 + 8 + 0x0009 + 0x00 + + + LSF + 0 + 1 + + + LHDF + 1 + 1 + + + LHDIEN + 2 + 1 + + + LASE + 4 + 1 + + + LSLV + 5 + 1 + + + LDUM + 7 + 1 + + + + + + Interrupt_IRQ20 + Interrupt_IRQ20 interrupt + 20 + + + Interrupt_IRQ21 + Interrupt_IRQ21 interrupt + 21 + + + + WWDG + 0x50D1 + + 0x0000 + 2 + registers + + WWDG + Watchdog + + + CR + WWDG control register + 8 + 0x0000 + 0x7F + + + T0 + 0 + 1 + + + T1 + 1 + 1 + + + T2 + 2 + 1 + + + T3 + 3 + 1 + + + T4 + 4 + 1 + + + T5 + 5 + 1 + + + T6 + 6 + 1 + + + WDGA + 7 + 1 + + + + + WR + WWDR window register + 8 + 0x0001 + 0x7F + + + W0 + 0 + 1 + + + W1 + 1 + 1 + + + W2 + 2 + 1 + + + W3 + 3 + 1 + + + W4 + 4 + 1 + + + W5 + 5 + 1 + + + W6 + 6 + 1 + + + + + + + CAN + 0x5420 + + 0x0000 + 24 + registers + + CAN + CAN + + + MCR + CAN master control register + 8 + 0x0000 + 0x02 + + + INRQ + 0 + 1 + + + SLEEP + 1 + 1 + + + TXFP + 2 + 1 + + + RFLM + 3 + 1 + + + NART + 4 + 1 + + + AWUM + 5 + 1 + + + ABOM + 6 + 1 + + + TTOM + 7 + 1 + + + + + MSR + CAN master status register + 8 + 0x0001 + 0x02 + + + INAK + 0 + 1 + + + SLAK + 1 + 1 + + + ERRI + 2 + 1 + + + WKUI + 3 + 1 + + + TX + 4 + 1 + + + RX + 5 + 1 + + + + + TSR + CAN transmit status register + 8 + 0x0002 + 0x00 + + + RQCP0 + 0 + 1 + + + RQCP1 + 1 + 1 + + + RQCP2 + 2 + 1 + + + TXQOK0 + 4 + 1 + + + TXQOK1 + 5 + 1 + + + TXQOK2 + 6 + 1 + + + + + TPR + CAN transmit priority register + 8 + 0x0003 + 0x0C + + + CODE0 + 0 + 1 + + + CODE1 + 1 + 1 + + + TME0 + 2 + 1 + + + TME1 + 3 + 1 + + + TME2 + 4 + 1 + + + LOW0 + 5 + 1 + + + LOW1 + 6 + 1 + + + LOW2 + 7 + 1 + + + + + RFR + CAN receive FIFO register + 8 + 0x0004 + 0x00 + + + FMP + 0 + 2 + + + FULL + 3 + 1 + + + FOVR + 4 + 1 + + + RFOM + 5 + 1 + + + + + IER + CAN interrupt enable register + 8 + 0x0005 + 0x00 + + + TMEIE + 0 + 1 + + + FMPIE + 1 + 1 + + + FFIE + 2 + 1 + + + FOVIE + 4 + 1 + + + WKUIE + 7 + 1 + + + + + DGR + CAN diagnosis register + 8 + 0x0006 + 0x0C + + + LBKM + 0 + 1 + + + SILM + 1 + 1 + + + SAMP + 2 + 1 + + + RX + 3 + 1 + + + TXM2E + 4 + 1 + + + + + FPSR + CAN page selection register + 8 + 0x0007 + 0x00 + + + P0 + CAN paged register 0 + 8 + 0x0008 + 0x00 + + + P1 + CAN paged register 1 + 8 + 0x0009 + 0x00 + + + P2 + CAN paged register 2 + 8 + 0x000A + 0x00 + + + P3 + CAN paged register 3 + 8 + 0x000B + 0x00 + + + P4 + CAN paged register 4 + 8 + 0x000C + 0x00 + + + P5 + CAN paged register 5 + 8 + 0x000D + 0x00 + + + P6 + CAN paged register 6 + 8 + 0x000E + 0x00 + + + P7 + CAN paged register 7 + 8 + 0x000F + 0x00 + + + P8 + CAN paged register 8 + 8 + 0x0010 + 0x00 + + + P9 + CAN paged register 9 + 8 + 0x0011 + 0x00 + + + PA + CAN paged register A + 8 + 0x0012 + 0x00 + + + PB + CAN paged register B + 8 + 0x0013 + 0x00 + + + PC + CAN paged register C + 8 + 0x0014 + 0x00 + + + PD + CAN paged register D + 8 + 0x0015 + 0x00 + + + PE + CAN paged register E + 8 + 0x0016 + 0x00 + + + PF + CAN paged register F + 8 + 0x0017 + 0x00 + + + + Interrupt_IRQ8 + Interrupt_IRQ8 interrupt + 8 + + + Interrupt_IRQ9 + Interrupt_IRQ9 interrupt + 9 + + + + diff --git a/misc/svd/STM8S208RB.svd b/misc/svd/STM8S208RB.svd new file mode 100644 index 0000000..5871ad4 --- /dev/null +++ b/misc/svd/STM8S208RB.svd @@ -0,0 +1,7561 @@ + + + STMicroelectronics + STM8S208RB + 1.0 + STM8S/STM8AF, high density + Mainstream Performance line 8-bit MCU with 128 Kbyes Flash, 24 MHz CPU, integrated EEPROM + + other + r1p0 + big + false + false + false + false + false + false + false + false + false + 4 + + 8 + 8 + 8 + read-write + + + ADC2 + 0x5400 + + 0x0000 + 8 + registers + + ADC2 + ADC + + + CSR + ADC control/status register + 8 + 0x0000 + 0x00 + + + CH + 0 + 4 + + + AWDIE + 4 + 1 + + + EOCIE + 5 + 1 + + + AWD + 6 + 1 + + + EOC + 7 + 1 + + + + + CR1 + ADC configuration register 1 + 8 + 0x0001 + 0x00 + + + ADON + 0 + 1 + + + CONT + 1 + 1 + + + SPSEL + 4 + 3 + + + + + CR2 + ADC configuration register 2 + 8 + 0x0002 + 0x00 + + + SCAN + 1 + 1 + + + ALIGN + 3 + 1 + + + EXTSEL + 4 + 2 + + + EXTTRIG + 6 + 1 + + + + + CR3 + ADC configuration register 3 + 8 + 0x0003 + 0x00 + + + OVR + 6 + 1 + + + DBUF + 7 + 1 + + + + + DRH + ADC data register high + 8 + 0x0004 + 0x00 + + + DH + 0 + 8 + + + + + DRL + ADC data register low + 8 + 0x0005 + 0x00 + + + DL + 0 + 8 + + + + + TDRH + ADC Schmitt trigger disable register high + 8 + 0x0006 + 0x00 + + + TD + 0 + 8 + + + + + TDRL + ADC Schmitt trigger disable register low + 8 + 0x0007 + 0x00 + + + TL + 0 + 8 + + + + + + Interrupt_IRQ22 + Interrupt_IRQ22 interrupt + 22 + + + + AWU + 0x50F0 + + 0x0000 + 3 + registers + + AWU + AWU + + + CSR1 + AWU control/status register 1 + 8 + 0x0000 + 0x00 + + + MSR + 0 + 1 + + + AWUEN + 4 + 1 + + + AWUF + 5 + 1 + + + + + APR + AWU asynchronous prescaler buffer register + 8 + 0x0001 + 0x3F + + + APR + 0 + 6 + + + + + TBR + AWU timebase selection register + 8 + 0x0002 + 0x00 + + + AWUTB + 0 + 4 + + + + + + Interrupt_IRQ1 + Interrupt_IRQ1 interrupt + 1 + + + + BEEP + 0x50F3 + + 0x0000 + 1 + registers + + BEEP + BEEP + + + CSR + BEEP control/status register + 8 + 0x0000 + 0x1F + + + BEEPDIV + 0 + 5 + + + BEEPEN + 5 + 1 + + + BEEPSEL + 6 + 2 + + + + + + + CLK + 0x50C0 + + 0x0000 + 2 + registers + + + 0x0003 + 11 + registers + + CLK + CLK + + + ICKR + Internal clock control register + 8 + 0x0000 + 0x01 + + + HSIEN + 0 + 1 + + + HSIRDY + 1 + 1 + + + FHW + 2 + 1 + + + LSIEN + 3 + 1 + + + LSIRDY + 4 + 1 + + + REGAH + 5 + 1 + + + + + ECKR + External clock control register + 8 + 0x0001 + 0x00 + + + HSEEN + 0 + 1 + + + HSERDY + 1 + 1 + + + + + CMSR + Clock master status register + 8 + 0x0003 + 0xE1 + + + CKM + 0 + 8 + + + + + SWR + Clock master switch register + 8 + 0x0004 + 0xE1 + + + SWI + 0 + 8 + + + + + SWCR + Clock switch control register + 8 + 0x0005 + 0x00 + + + SWBSY + 0 + 1 + + + SWEN + 1 + 1 + + + SWIEN + 2 + 1 + + + SWIF + 3 + 1 + + + + + CKDIVR + Clock divider register + 8 + 0x0006 + 0x18 + + + CPUDIV + 0 + 3 + + + HSIDIV + 3 + 2 + + + + + PCKENR1 + Peripheral clock gating register 1 + 8 + 0x0007 + 0xFF + + + PCKEN + 0 + 8 + + + + + CSSR + Clock security system register + 8 + 0x0008 + 0x00 + + + CSSEN + 0 + 1 + + + AUX + 1 + 1 + + + CSSDIE + 2 + 1 + + + CSSD + 3 + 1 + + + + + CCOR + Configurable clock control register + 8 + 0x0009 + 0x00 + + + CCOEN + 0 + 1 + + + CCOSEL + 1 + 4 + + + CCORDY + 5 + 1 + + + CC0BSY + 6 + 1 + + + + + PCKENR2 + Peripheral clock gating register 2 + 8 + 0x000A + 0xFF + + + PCKEN2 + 0 + 8 + + + + + CANCCR + CAN clock control register + 8 + 0x000B + 0x00 + + + CANDIV + 0 + 3 + + + + + HSITRIMR + HSI clock calibration trimming register + 8 + 0x000C + 0x00 + + + HSITRIM + 0 + 4 + + + + + SWIMCCR + SWIM clock control register + 8 + 0x000D + 0x00 + + + SWIMCLK + 0 + 1 + + + + + + Interrupt_IRQ2 + Interrupt_IRQ2 interrupt + 2 + + + + CPU + 0x7F00 + + 0x0000 + 11 + registers + + + 0x0060 + 1 + registers + + CPU + CPU + + + A + Accumulator + 8 + 0x0000 + 0x00 + + + PCE + Program counter extended + 8 + 0x0001 + 0x00 + + + PCH + Program counter high + 8 + 0x0002 + 0x00 + + + PCL + Program counter low + 8 + 0x0003 + 0x00 + + + XH + X index register high + 8 + 0x0004 + 0x00 + + + XL + X index register low + 8 + 0x0005 + 0x00 + + + YH + Y index register high + 8 + 0x0006 + 0x00 + + + YL + Y index register low + 8 + 0x0007 + 0x00 + + + SPH + Stack pointer high + 8 + 0x0008 + 0x17 + + + SPL + Stack pointer low + 8 + 0x0009 + 0xFF + + + CCR + Condition code register + 8 + 0x000A + 0x28 + + + C + 0 + 1 + + + Z + 1 + 1 + + + NF + 2 + 1 + + + I0 + 3 + 1 + + + H + 4 + 1 + + + I1 + 5 + 1 + + + V + 7 + 1 + + + + + CFG_GCR + Global configuration register + 8 + 0x0060 + 0x00 + + + SWO + 0 + 1 + + + AL + 1 + 1 + + + + + + + DM + 0x7F90 + + 0x0000 + 11 + registers + + DM + DM + + + BK1RE + DM breakpoint 1 register extended byte + 8 + 0x0000 + 0xFF + + + BK1RH + DM breakpoint 1 register high byte + 8 + 0x0001 + 0xFF + + + BK1RL + DM breakpoint 1 register low byte + 8 + 0x0002 + 0xFF + + + BK2RE + DM breakpoint 2 register extended byte + 8 + 0x0003 + 0xFF + + + BK2RH + DM breakpoint 2 register high byte + 8 + 0x0004 + 0xFF + + + BK2RL + DM breakpoint 2 register low byte + 8 + 0x0005 + 0xFF + + + CR1 + DM debug module control register 1 + 8 + 0x0006 + 0x00 + + + CR2 + DM debug module control register 2 + 8 + 0x0007 + 0x00 + + + CSR1 + DM debug module control/status register 1 + 8 + 0x0008 + 0x10 + + + CSR2 + DM debug module control/status register 2 + 8 + 0x0009 + 0x00 + + + ENFCTR + DM enable function register + 8 + 0x000A + 0xFF + + + + + FLASH + 0x505A + + 0x0000 + 6 + registers + + + 0x0008 + 1 + registers + + + 0x000a + 1 + registers + + FLASH + FLASH + + + CR1 + Flash control register 1 + 8 + 0x0000 + 0x00 + + + FIX + 0 + 1 + + + IE + 1 + 1 + + + AHALT + 2 + 1 + + + HALT + 3 + 1 + + + + + CR2 + Flash control register 2 + 8 + 0x0001 + 0x00 + + + PRG + 0 + 1 + + + FPRG + 4 + 1 + + + ERASE + 5 + 1 + + + WPRG + 6 + 1 + + + OPT + 7 + 1 + + + + + NCR2 + Flash complementary control register 2 + 8 + 0x0002 + 0xFF + + + NPRG + 0 + 1 + + + NFPRG + 4 + 1 + + + NERASE + 5 + 1 + + + NWPRG + 6 + 1 + + + NOPT + 7 + 1 + + + + + FPR + Flash protection register + 8 + 0x0003 + 0x00 + + + WPB0 + 0 + 1 + + + WPB1 + 1 + 1 + + + WPB2 + 2 + 1 + + + WPB3 + 3 + 1 + + + WPB4 + 4 + 1 + + + WPB5 + 5 + 1 + + + + + NFPR + Flash complementary protection register + 8 + 0x0004 + 0xFF + + + NWPB0 + 0 + 1 + + + NWPB1 + 1 + 1 + + + NWPB2 + 2 + 1 + + + NWPB3 + 3 + 1 + + + NWPB4 + 4 + 1 + + + NWPB5 + 5 + 1 + + + + + IAPSR + Flash in-application programming status register + 8 + 0x0005 + 0x00 + + + WR_PG_DIS + 0 + 1 + + + PUL + 1 + 1 + + + EOP + 2 + 1 + + + DUL + 3 + 1 + + + HVOFF + 6 + 1 + + + + + PUKR + Flash Program memory unprotection register + 8 + 0x0008 + 0x00 + + + MASS_PRG + 0 + 8 + + + + + DUKR + Data EEPROM unprotection register + 8 + 0x000A + 0x00 + + + MASS_DATA + 0 + 8 + + + + + + Interrupt_IRQ24 + Interrupt_IRQ24 interrupt + 24 + + + + I2C + 0x5210 + + 0x0000 + 5 + registers + + + 0x0006 + 9 + registers + + I2C + I2C + + + CR1 + I2C control register 1 + 8 + 0x0000 + 0x00 + + + PE + 0 + 1 + + + ENGC + 6 + 1 + + + NOSTRETCH + 7 + 1 + + + + + CR2 + I2C control register 2 + 8 + 0x0001 + 0x00 + + + START + 0 + 1 + + + STOP + 1 + 1 + + + ACK + 2 + 1 + + + POS + 3 + 1 + + + SWRST + 7 + 1 + + + + + FREQR + I2C frequency register + 8 + 0x0002 + 0x00 + + + FREQ + 0 + 6 + + + + + OARL + I2C own address register low + 8 + 0x0003 + 0x00 + + + ADD0 + 0 + 1 + + + ADD + 1 + 7 + + + + + OARH + I2C own address register high + 8 + 0x0004 + 0x00 + + + ADD + 1 + 2 + + + ADDCONF + 6 + 1 + + + ADDMODE + 7 + 1 + + + + + DR + I2C data register + 8 + 0x0006 + 0x00 + + + DR + 0 + 8 + + + + + SR1 + I2C status register 1 + 8 + 0x0007 + 0x00 + + + SB + 0 + 1 + + + ADDR + 1 + 1 + + + BTF + 2 + 1 + + + ADD10 + 3 + 1 + + + STOPF + 4 + 1 + + + RXNE + 6 + 1 + + + TXE + 7 + 1 + + + + + SR2 + I2C status register 2 + 8 + 0x0008 + 0x00 + + + BERR + 0 + 1 + + + ARLO + 1 + 1 + + + AF + 2 + 1 + + + OVR + 3 + 1 + + + WUFH + 5 + 1 + + + + + SR3 + I2C status register 3 + 8 + 0x0009 + 0x00 + + + MSL + 0 + 1 + + + BUSY + 1 + 1 + + + TRA + 2 + 1 + + + GENCALL + 4 + 1 + + + + + ITR + I2C interrupt control register + 8 + 0x000A + 0x00 + + + ITERREN + 0 + 1 + + + ITEVTEN + 1 + 1 + + + ITBUFEN + 2 + 1 + + + + + CCRL + I2C clock control register low + 8 + 0x000B + 0x00 + + + CCR + 0 + 8 + + + + + CCRH + I2C clock control register high + 8 + 0x000C + 0x00 + + + CCR + 0 + 4 + + + DUTY + 6 + 1 + + + F_S + 7 + 1 + + + + + TRISER + I2C TRISE register + 8 + 0x000D + 0x02 + + + TRISE + 0 + 6 + + + + + PECR + I2C packet error checking register + 8 + 0x000E + 0x00 + + + + Interrupt_IRQ19 + Interrupt_IRQ19 interrupt + 19 + + + + ITC + 0x50A0 + + 0x0000 + 2 + registers + + + 0x2ed0 + 8 + registers + + ITC + ITC + + + CR1 + External interrupt control register 1 + 8 + 0x0000 + 0x00 + + + PAIS + 0 + 2 + + + PBIS + 2 + 2 + + + PCIS + 4 + 2 + + + PDIS + 6 + 2 + + + + + CR2 + External interrupt control register 2 + 8 + 0x0001 + 0x00 + + + PEIS + 0 + 2 + + + TLIS + 2 + 1 + + + + + SPR1 + Interrupt software priority register 1 + 8 + 0x2ED0 + 0xFF + + + VECT0SPR + 0 + 2 + + + VECT1SPR + 2 + 2 + + + VECT2SPR + 4 + 2 + + + VECT3SPR + 6 + 2 + + + + + SPR2 + Interrupt software priority register 2 + 8 + 0x2ED1 + 0xFF + + + VECT4SPR + 0 + 2 + + + VECT5SPR + 2 + 2 + + + VECT6SPR + 4 + 2 + + + VECT7SPR + 6 + 2 + + + + + SPR3 + Interrupt software priority register 3 + 8 + 0x2ED2 + 0xFF + + + VECT8SPR + 0 + 2 + + + VECT9SPR + 2 + 2 + + + VECT10SPR + 4 + 2 + + + VECT11SPR + 6 + 2 + + + + + SPR4 + Interrupt software priority register 4 + 8 + 0x2ED3 + 0xFF + + + VECT12SPR + 0 + 2 + + + VECT13SPR + 2 + 2 + + + VECT14SPR + 4 + 2 + + + VECT15SPR + 6 + 2 + + + + + SPR5 + Interrupt software priority register 5 + 8 + 0x2ED4 + 0xFF + + + VECT16SPR + 0 + 2 + + + VECT17SPR + 2 + 2 + + + VECT18SPR + 4 + 2 + + + VECT19SPR + 6 + 2 + + + + + SPR6 + Interrupt software priority register 6 + 8 + 0x2ED5 + 0xFF + + + VECT20SPR + 0 + 2 + + + VECT21SPR + 2 + 2 + + + VECT22SPR + 4 + 2 + + + VECT23SPR + 6 + 2 + + + + + SPR7 + Interrupt software priority register 7 + 8 + 0x2ED6 + 0xFF + + + VECT24SPR + 0 + 2 + + + VECT25SPR + 2 + 2 + + + VECT26SPR + 4 + 2 + + + VECT27SPR + 6 + 2 + + + + + SPR8 + Interrupt software priority register 8 + 8 + 0x2ED7 + 0xFF + + + VECT28SPR + 0 + 2 + + + VECT29SPR + 2 + 2 + + + + + + Interrupt_IRQ2 + Interrupt_IRQ2 interrupt + 2 + + + + IWDG + 0x50E0 + + 0x0000 + 3 + registers + + IWDG + Watchdog + + + KR + IWDG key register + 8 + 0x0000 + 0x00 + + + KEY + 0 + 8 + + + + + PR + IWDG prescaler register + 8 + 0x0001 + 0x00 + + + PR + 0 + 3 + + + + + RLR + IWDG reload register + 8 + 0x0002 + 0xFF + + + RL + 0 + 8 + + + + + + + OPT + 0x4800 + + 0x0000 + 11 + registers + + + 0x000d + 2 + registers + + + 0x007e + 2 + registers + + OPT + Option-Bytes + + + OPT0 + Read-out protection (ROP) + 8 + 0x0000 + 0x00 + + + OPT1 + User boot code (UBC) + 8 + 0x0001 + 0x00 + + + NOPT1 + User boot code (UBC) (complementary byte) + 8 + 0x0002 + 0xFF + + + OPT2 + Alternate function remapping (AFR) + 8 + 0x0003 + 0x00 + + + NOPT2 + Alternate function remapping (AFR) (complementary byte) + 8 + 0x0004 + 0xFF + + + OPT3 + Misc. option + 8 + 0x0005 + 0x00 + + + NOPT3 + Misc. option (complementary byte) + 8 + 0x0006 + 0xFF + + + OPT4 + Clock option + 8 + 0x0007 + 0x00 + + + NOPT4 + Clock option (complementary byte) + 8 + 0x0008 + 0xFF + + + OPT5 + HSE clock startup + 8 + 0x0009 + 0x00 + + + NOPT5 + HSE clock startup (complementary byte) + 8 + 0x000A + 0xFF + + + OPT7 + Flash wait states + 8 + 0x000D + 0x00 + + + NOPT7 + Flash wait states (complementary byte) + 8 + 0x000E + 0xFF + + + OPTBL + Bootloader + 8 + 0x007E + 0x00 + + + NOPTBL + Bootloader (complementary byte) + 8 + 0x007F + 0xFF + + + + + PORTA + 0x5000 + + 0x0000 + 5 + registers + + PORTA + GPIO + + + ODR + Port A data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port A input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port A data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port A control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port A control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTB + 0x5005 + + 0x0000 + 5 + registers + + PORTB + GPIO + + + ODR + Port B data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port B input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port B data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port B control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port B control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTC + 0x500A + + 0x0000 + 5 + registers + + PORTC + GPIO + + + ODR + Port C data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port C input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port C data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port C control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port C control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTD + 0x500F + + 0x0000 + 5 + registers + + PORTD + GPIO + + + ODR + Port D data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port D input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port D data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port D control register 1 + 8 + 0x0003 + 0x02 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port D control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTE + 0x5014 + + 0x0000 + 5 + registers + + PORTE + GPIO + + + ODR + Port E data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port E input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port E data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port E control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port E control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTF + 0x5019 + + 0x0000 + 5 + registers + + PORTF + GPIO + + + ODR + Port F data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port F input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port F data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port F control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port F control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTG + 0x501E + + 0x0000 + 5 + registers + + PORTG + GPIO + + + ODR + Port G data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port G input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port G data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port G control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port G control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTH + 0x5023 + + 0x0000 + 5 + registers + + PORTH + GPIO + + + ODR + Port H data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port H input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port H data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port H control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port H control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + PORTI + 0x5028 + + 0x0000 + 5 + registers + + PORTI + GPIO + + + ODR + Port I data output latch register + 8 + 0x0000 + 0x00 + + + ODR0 + 0 + 1 + + + ODR1 + 1 + 1 + + + ODR2 + 2 + 1 + + + ODR3 + 3 + 1 + + + ODR4 + 4 + 1 + + + ODR5 + 5 + 1 + + + ODR6 + 6 + 1 + + + ODR7 + 7 + 1 + + + + + IDR + Port I input pin value register + 8 + 0x0001 + 0x00 + + + IDR0 + 0 + 1 + + + IDR1 + 1 + 1 + + + IDR2 + 2 + 1 + + + IDR3 + 3 + 1 + + + IDR4 + 4 + 1 + + + IDR5 + 5 + 1 + + + IDR6 + 6 + 1 + + + IDR7 + 7 + 1 + + + + + DDR + Port I data direction register + 8 + 0x0002 + 0x00 + + + DDR0 + 0 + 1 + + + DDR1 + 1 + 1 + + + DDR2 + 2 + 1 + + + DDR3 + 3 + 1 + + + DDR4 + 4 + 1 + + + DDR5 + 5 + 1 + + + DDR6 + 6 + 1 + + + DDR7 + 7 + 1 + + + + + CR1 + Port I control register 1 + 8 + 0x0003 + 0x00 + + + C10 + 0 + 1 + + + C11 + 1 + 1 + + + C12 + 2 + 1 + + + C13 + 3 + 1 + + + C14 + 4 + 1 + + + C15 + 5 + 1 + + + C16 + 6 + 1 + + + C17 + 7 + 1 + + + + + CR2 + Port I control register 2 + 8 + 0x0004 + 0x00 + + + C20 + 0 + 1 + + + C21 + 1 + 1 + + + C22 + 2 + 1 + + + C23 + 3 + 1 + + + C24 + 4 + 1 + + + C25 + 5 + 1 + + + C26 + 6 + 1 + + + C27 + 7 + 1 + + + + + + + RST + 0x50B3 + + 0x0000 + 1 + registers + + RST + RST + + + SR + Reset status register + 8 + 0x0000 + 0x00 + + + WWDGF + 0 + 1 + + + IWDGF + 1 + 1 + + + ILLOPF + 2 + 1 + + + SWIMF + 3 + 1 + + + EMCF + 4 + 1 + + + + + + + SPI + 0x5200 + + 0x0000 + 8 + registers + + SPI + SPI + + + CR1 + SPI control register 1 + 8 + 0x0000 + 0x00 + + + CPHA + 0 + 1 + + + CPOL + 1 + 1 + + + MSTR + 2 + 1 + + + BR + 3 + 3 + + + SPE + 6 + 1 + + + LSBFIRST + 7 + 1 + + + + + CR2 + SPI control register 2 + 8 + 0x0001 + 0x00 + + + SSI + 0 + 1 + + + SSM + 1 + 1 + + + RXONLY + 2 + 1 + + + CRCNEXT + 4 + 1 + + + CECEN + 5 + 1 + + + BDOE + 6 + 1 + + + BDM + 7 + 1 + + + + + ICR + SPI interrupt control register + 8 + 0x0002 + 0x00 + + + WKIE + 4 + 1 + + + ERRIE + 5 + 1 + + + RXIE + 6 + 1 + + + TXIE + 7 + 1 + + + + + SR + SPI status register + 8 + 0x0003 + 0x02 + + + RXNE + 0 + 1 + + + TXE + 1 + 1 + + + WKUP + 3 + 1 + + + CRCERR + 4 + 1 + + + MODF + 5 + 1 + + + OVR + 6 + 1 + + + BSY + 7 + 1 + + + + + DR + SPI data register + 8 + 0x0004 + 0x00 + + + DR + 0 + 8 + + + + + CRCPR + SPI CRC polynomial register + 8 + 0x0005 + 0x07 + + + CRCPOLY + 0 + 8 + + + + + RXCRCR + SPI Rx CRC register + 8 + 0x0006 + 0xFF + + + RXCRC + 0 + 8 + + + + + TXCRCR + SPI Tx CRC register + 8 + 0x0007 + 0xFF + + + TXCRC + 0 + 8 + + + + + + Interrupt_IRQ10 + Interrupt_IRQ10 interrupt + 10 + + + + SWIM + 0x7F80 + + 0x0000 + 1 + registers + + SWIM + Debug + + + CSR + SWIM control status register + 8 + 0x0000 + 0x00 + + + + + TIM1 + 0x5250 + + 0x0000 + 32 + registers + + TIM1 + Timer + + + CR1 + TIM1 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + DIR + 4 + 1 + + + CMS + 5 + 2 + + + ARPE + 7 + 1 + + + + + CR2 + TIM1 control register 2 + 8 + 0x0001 + 0x00 + + + CCPG + 0 + 1 + + + COMS + 2 + 1 + + + MMS + 4 + 3 + + + + + SMCR + TIM1 slave mode control register + 8 + 0x0002 + 0x00 + + + SMS + 0 + 3 + + + TS + 4 + 3 + + + MSM + 7 + 1 + + + + + ETR + TIM1 external trigger register + 8 + 0x0003 + 0x00 + + + ETF + 0 + 4 + + + ETPS + 4 + 2 + + + ECE + 6 + 1 + + + ETP + 7 + 1 + + + + + IER + TIM1 Interrupt enable register + 8 + 0x0004 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + CC4IE + 4 + 1 + + + COMIE + 5 + 1 + + + TIE + 6 + 1 + + + BIE + 7 + 1 + + + + + SR1 + TIM1 status register 1 + 8 + 0x0005 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + CC4IF + 4 + 1 + + + COMIF + 5 + 1 + + + TIF + 6 + 1 + + + BIF + 7 + 1 + + + + + SR2 + TIM1 status register 2 + 8 + 0x0006 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + CC4OF + 4 + 1 + + + + + EGR + TIM1 event generation register + 8 + 0x0007 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + CC4G + 4 + 1 + + + COMG + 5 + 1 + + + TG + 6 + 1 + + + BG + 7 + 1 + + + + + CCMR1 + TIM1 capture/compare mode register 1 + 8 + 0x0008 + 0x00 + + + CC1S + 0 + 2 + + + OC1FE + 2 + 1 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + OC1CE + 7 + 1 + + + + + CCMR2 + TIM1 capture/compare mode register 2 + 8 + 0x0009 + 0x00 + + + CC2S + 0 + 2 + + + OC2FE + 2 + 1 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + OC2CE + 7 + 1 + + + + + CCMR3 + TIM1 capture/compare mode register 3 + 8 + 0x000A + 0x00 + + + CC3S + 0 + 2 + + + OC3FE + 2 + 1 + + + OC3PE + 3 + 1 + + + OC3M + 4 + 3 + + + OC3CE + 7 + 1 + + + + + CCMR4 + TIM1 capture/compare mode register 4 + 8 + 0x000B + 0x00 + + + CC4S + 0 + 2 + + + OC4FE + 2 + 1 + + + OC4PE + 3 + 1 + + + OC4M + 4 + 3 + + + OC4CE + 7 + 1 + + + + + CCER1 + TIM1 capture/compare enable register 1 + 8 + 0x000C + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC1NE + 2 + 1 + + + CC1NP + 3 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + CC2NE + 6 + 1 + + + CC2NP + 7 + 1 + + + + + CCER2 + TIM1 capture/compare enable register 2 + 8 + 0x000D + 0x00 + + + CC3E + 0 + 1 + + + CC3P + 1 + 1 + + + CC3NE + 2 + 1 + + + CC3NP + 3 + 1 + + + CC4E + 4 + 1 + + + CC4P + 5 + 1 + + + + + CNTRH + TIM1 counter high + 8 + 0x000E + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM1 counter low + 8 + 0x000F + 0x00 + + + CNT + 0 + 8 + + + + + PSCRH + TIM1 prescaler register high + 8 + 0x0010 + 0x00 + + + PSC + 0 + 8 + + + + + PSCRL + TIM1 prescaler register low + 8 + 0x0011 + 0x00 + + + PSC + 0 + 8 + + + + + ARRH + TIM1 auto-reload register high + 8 + 0x0012 + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM1 auto-reload register low + 8 + 0x0013 + 0xFF + + + ARR + 0 + 8 + + + + + RCR + TIM1 repetition counter register + 8 + 0x0014 + 0x00 + + + REP + 0 + 8 + + + + + CCR1H + TIM1 capture/compare register 1 high + 8 + 0x0015 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM1 capture/compare register 1 low + 8 + 0x0016 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM1 capture/compare register 2 high + 8 + 0x0017 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM1 capture/compare register 2 low + 8 + 0x0018 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR3H + TIM1 capture/compare register 3 high + 8 + 0x0019 + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR3L + TIM1 capture/compare register 3 low + 8 + 0x001A + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR4H + TIM1 capture/compare register 4 high + 8 + 0x001B + 0x00 + + + CCR4 + 0 + 8 + + + + + CCR4L + TIM1 capture/compare register 4 low + 8 + 0x001C + 0x00 + + + CCR4 + 0 + 8 + + + + + BKR + TIM1 break register + 8 + 0x001D + 0x00 + + + LOCK + 0 + 2 + + + OSSI + 2 + 1 + + + OSSR + 3 + 1 + + + BKE + 4 + 1 + + + BKP + 5 + 1 + + + AOE + 6 + 1 + + + MOE + 7 + 1 + + + + + DTR + TIM1 dead-time register + 8 + 0x001E + 0x00 + + + DTG + 0 + 8 + + + + + OISR + TIM1 output idle state register + 8 + 0x001F + 0x00 + + + OIS1 + 0 + 1 + + + OIS1N + 1 + 1 + + + OIS2 + 2 + 1 + + + OIS2N + 3 + 1 + + + OIS3 + 4 + 1 + + + OIS3N + 5 + 1 + + + OIS4 + 6 + 1 + + + + + + Interrupt_IRQ11 + Interrupt_IRQ11 interrupt + 11 + + + Interrupt_IRQ12 + Interrupt_IRQ12 interrupt + 12 + + + + TIM2 + 0x5300 + + 0x0000 + 21 + registers + + TIM2 + Timer + + + CR1 + TIM2 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM2 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + TIE + 6 + 1 + + + + + SR1 + TIM2 status register 1 + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + TIF + 6 + 1 + + + + + SR2 + TIM2 status register 2 + 8 + 0x0003 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + + + EGR + TIM2 event generation register + 8 + 0x0004 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + TG + 6 + 1 + + + + + CCMR1 + TIM2 capture/compare mode register 1 + 8 + 0x0005 + 0x00 + + + CC1S + 0 + 2 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + + + CCMR2 + TIM2 capture/compare mode register 2 + 8 + 0x0006 + 0x00 + + + CC2S + 0 + 2 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + + + CCMR3 + TIM2 capture/compare mode register 3 + 8 + 0x0007 + 0x00 + + + CC3S + 0 + 2 + + + OC3PE + 3 + 1 + + + OC3M + 4 + 3 + + + + + CCER1 + TIM2 capture/compare enable register 1 + 8 + 0x0008 + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + + + CCER2 + TIM2 capture/compare enable register 2 + 8 + 0x0009 + 0x00 + + + CC3E + 0 + 1 + + + CC3P + 1 + 1 + + + + + CNTRH + TIM2 counter high + 8 + 0x000A + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM2 counter low + 8 + 0x000B + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM2 prescaler register + 8 + 0x000C + 0x00 + + + PSC + 0 + 4 + + + + + ARRH + TIM2 auto-reload register high + 8 + 0x000D + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM2 auto-reload register low + 8 + 0x000E + 0xFF + + + ARR + 0 + 8 + + + + + CCR1H + TIM2 capture/compare register 1 high + 8 + 0x000F + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM2 capture/compare register 1 low + 8 + 0x0010 + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM2 capture/compare reg + 8 + 0x0011 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM2 capture/compare register 2 low + 8 + 0x0012 + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR3H + TIM2 capture/compare register 3 high + 8 + 0x0013 + 0x00 + + + CCR3 + 0 + 8 + + + + + CCR3L + TIM2 capture/compare register 3 low + 8 + 0x0014 + 0x00 + + + CCR3 + 0 + 8 + + + + + + Interrupt_IRQ13 + Interrupt_IRQ13 interrupt + 13 + + + Interrupt_IRQ14 + Interrupt_IRQ14 interrupt + 14 + + + + TIM3 + 0x5320 + + 0x0000 + 17 + registers + + TIM3 + Timer + + + CR1 + TIM3 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM3 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + CC1IE + 1 + 1 + + + CC2IE + 2 + 1 + + + CC3IE + 3 + 1 + + + TIE + 6 + 1 + + + + + SR1 + TIM3 status register 1 + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + CC1IF + 1 + 1 + + + CC2IF + 2 + 1 + + + CC3IF + 3 + 1 + + + TIF + 6 + 1 + + + + + SR2 + TIM3 status register 2 + 8 + 0x0003 + 0x00 + + + CC1OF + 1 + 1 + + + CC2OF + 2 + 1 + + + CC3OF + 3 + 1 + + + + + EGR + TIM3 event generation register + 8 + 0x0004 + 0x00 + + + UG + 0 + 1 + + + CC1G + 1 + 1 + + + CC2G + 2 + 1 + + + CC3G + 3 + 1 + + + TG + 6 + 1 + + + + + CCMR1 + TIM3 capture/compare mode register 1 + 8 + 0x0005 + 0x00 + + + CC1S + 0 + 2 + + + OC1PE + 3 + 1 + + + OC1M + 4 + 3 + + + + + CCMR2 + TIM3 capture/compare mode register 2 + 8 + 0x0006 + 0x00 + + + CC2S + 0 + 2 + + + OC2PE + 3 + 1 + + + OC2M + 4 + 3 + + + + + CCER1 + TIM3 capture/compare enable register 1 + 8 + 0x0007 + 0x00 + + + CC1E + 0 + 1 + + + CC1P + 1 + 1 + + + CC2E + 4 + 1 + + + CC2P + 5 + 1 + + + + + CNTRH + TIM3 counter high + 8 + 0x0008 + 0x00 + + + CNT + 0 + 8 + + + + + CNTRL + TIM3 counter low + 8 + 0x0009 + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM3 prescaler register + 8 + 0x000A + 0x00 + + + PSC + 0 + 4 + + + + + ARRH + TIM3 auto-reload register high + 8 + 0x000B + 0xFF + + + ARR + 0 + 8 + + + + + ARRL + TIM3 auto-reload register low + 8 + 0x000C + 0xFF + + + ARR + 0 + 8 + + + + + CCR1H + TIM3 capture/compare register 1 high + 8 + 0x000D + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR1L + TIM3 capture/compare register 1 low + 8 + 0x000E + 0x00 + + + CCR1 + 0 + 8 + + + + + CCR2H + TIM3 capture/compare register 2 high + 8 + 0x000F + 0x00 + + + CCR2 + 0 + 8 + + + + + CCR2L + TIM3 capture/compare register 2 low + 8 + 0x0010 + 0x00 + + + CCR2 + 0 + 8 + + + + + + Interrupt_IRQ15 + Interrupt_IRQ15 interrupt + 15 + + + Interrupt_IRQ16 + Interrupt_IRQ16 interrupt + 16 + + + + TIM4 + 0x5340 + + 0x0000 + 7 + registers + + TIM4 + Timer + + + CR1 + TIM4 control register 1 + 8 + 0x0000 + 0x00 + + + CEN + 0 + 1 + + + UDIS + 1 + 1 + + + URS + 2 + 1 + + + OPM + 3 + 1 + + + ARPE + 7 + 1 + + + + + IER + TIM4 interrupt enable register + 8 + 0x0001 + 0x00 + + + UIE + 0 + 1 + + + TIE + 6 + 1 + + + + + SR + TIM4 status register + 8 + 0x0002 + 0x00 + + + UIF + 0 + 1 + + + TIF + 6 + 1 + + + + + EGR + TIM4 event generation register + 8 + 0x0003 + 0x00 + + + UG + 0 + 1 + + + TG + 6 + 1 + + + + + CNTR + TIM4 counter + 8 + 0x0004 + 0x00 + + + CNT + 0 + 8 + + + + + PSCR + TIM4 prescaler register + 8 + 0x0005 + 0x00 + + + PSC + 0 + 3 + + + + + ARR + TIM4 auto-reload register + 8 + 0x0006 + 0xFF + + + ARR + 0 + 8 + + + + + + Interrupt_IRQ23 + Interrupt_IRQ23 interrupt + 23 + + + + UART1 + 0x5230 + + 0x0000 + 11 + registers + + UART1 + Uart + + + SR + UART1 status register + 8 + 0x0000 + 0xC0 + + + PE + 0 + 1 + + + FE + 1 + 1 + + + NF + 2 + 1 + + + OR_LHE + 3 + 1 + + + IDLE + 4 + 1 + + + RXNE + 5 + 1 + + + TC + 6 + 1 + + + TXE + 7 + 1 + + + + + DR + UART1 data register + 8 + 0x0001 + 0x00 + + + DR + 0 + 8 + + + + + BRR1 + UART1 baud rate register 1 + 8 + 0x0002 + 0x00 + + + UART_DIV + 0 + 8 + + + + + BRR2 + UART1 baud rate register 2 + 8 + 0x0003 + 0x00 + + + UART_DIV + 0 + 8 + + + + + CR1 + UART1 control register 1 + 8 + 0x0004 + 0x00 + + + PIEN + 0 + 1 + + + PS + 1 + 1 + + + PCEN + 2 + 1 + + + WAKE + 3 + 1 + + + M + 4 + 1 + + + UART0 + 5 + 1 + + + T8 + 6 + 1 + + + R8 + 7 + 1 + + + + + CR2 + UART1 control register 2 + 8 + 0x0005 + 0x00 + + + SBK + 0 + 1 + + + RWU + 1 + 1 + + + REN + 2 + 1 + + + TEN + 3 + 1 + + + ILIEN + 4 + 1 + + + RIEN + 5 + 1 + + + TCIEN + 6 + 1 + + + TIEN + 7 + 1 + + + + + CR3 + UART1 control register 3 + 8 + 0x0006 + 0x00 + + + LBCL + 0 + 1 + + + CPHA + 1 + 1 + + + CPOL + 2 + 1 + + + CKEN + 3 + 1 + + + STOP + 4 + 2 + + + LINEN + 7 + 1 + + + + + CR4 + UART1 control register 4 + 8 + 0x0007 + 0x00 + + + ADD + 0 + 4 + + + LBDF + 4 + 1 + + + LBDL + 5 + 1 + + + LBDIEN + 6 + 1 + + + + + CR5 + UART1 control register 5 + 8 + 0x0008 + 0x00 + + + IREN + 1 + 1 + + + IRLP + 2 + 1 + + + HDSEL + 3 + 1 + + + NACK + 4 + 1 + + + SCEN + 5 + 1 + + + + + GTR + UART1 guard time register + 8 + 0x0009 + 0x00 + + + GT + 0 + 8 + + + + + PSCR + UART1 prescaler register + 8 + 0x000A + 0x00 + + + PSC + 0 + 8 + + + + + + Interrupt_IRQ17 + Interrupt_IRQ17 interrupt + 17 + + + Interrupt_IRQ18 + Interrupt_IRQ18 interrupt + 18 + + + + UART3 + 0x5240 + + 0x0000 + 8 + registers + + + 0x0009 + 1 + registers + + UART3 + Uart + + + SR + UART3 status register + 8 + 0x0000 + 0xC0 + + + PE + 0 + 1 + + + FE + 1 + 1 + + + NF + 2 + 1 + + + OR + 3 + 1 + + + IDLE + 4 + 1 + + + RXNE + 5 + 1 + + + TC + 6 + 1 + + + TXE + 7 + 1 + + + + + DR + UART3 data register + 8 + 0x0001 + 0x00 + + + DR + 0 + 8 + + + + + BRR1 + UART3 baud rate register 1 + 8 + 0x0002 + 0x00 + + + UART_DIV + 0 + 8 + + + + + BRR2 + UART3 baud rate register 2 + 8 + 0x0003 + 0x00 + + + UART_DIV + 0 + 8 + + + + + CR1 + UART3 control register 1 + 8 + 0x0004 + 0x00 + + + PIEN + 0 + 1 + + + PS + 1 + 1 + + + PCEN + 2 + 1 + + + WAKE + 3 + 1 + + + M + 4 + 1 + + + UARTD + 5 + 1 + + + T8 + 6 + 1 + + + R8 + 7 + 1 + + + + + CR2 + UART3 control register 2 + 8 + 0x0005 + 0x00 + + + SBK + 0 + 1 + + + RWU + 1 + 1 + + + REN + 2 + 1 + + + TEN + 3 + 1 + + + ILIEN + 4 + 1 + + + RIEN + 5 + 1 + + + TCIEN + 6 + 1 + + + TIEN + 7 + 1 + + + + + CR3 + UART3 control register 3 + 8 + 0x0006 + 0x00 + + + STOP + 4 + 2 + + + LINEN + 6 + 1 + + + + + CR4 + UART3 control register 4 + 8 + 0x0007 + 0x00 + + + ADD + 0 + 4 + + + LBDF + 4 + 1 + + + LBDL + 5 + 1 + + + LBDIEN + 6 + 1 + + + + + CR6 + UART3 control register 6 + 8 + 0x0009 + 0x00 + + + LSF + 0 + 1 + + + LHDF + 1 + 1 + + + LHDIEN + 2 + 1 + + + LASE + 4 + 1 + + + LSLV + 5 + 1 + + + LDUM + 7 + 1 + + + + + + Interrupt_IRQ20 + Interrupt_IRQ20 interrupt + 20 + + + Interrupt_IRQ21 + Interrupt_IRQ21 interrupt + 21 + + + + WWDG + 0x50D1 + + 0x0000 + 2 + registers + + WWDG + Watchdog + + + CR + WWDG control register + 8 + 0x0000 + 0x7F + + + T0 + 0 + 1 + + + T1 + 1 + 1 + + + T2 + 2 + 1 + + + T3 + 3 + 1 + + + T4 + 4 + 1 + + + T5 + 5 + 1 + + + T6 + 6 + 1 + + + WDGA + 7 + 1 + + + + + WR + WWDR window register + 8 + 0x0001 + 0x7F + + + W0 + 0 + 1 + + + W1 + 1 + 1 + + + W2 + 2 + 1 + + + W3 + 3 + 1 + + + W4 + 4 + 1 + + + W5 + 5 + 1 + + + W6 + 6 + 1 + + + + + + + CAN + 0x5420 + + 0x0000 + 24 + registers + + CAN + CAN + + + MCR + CAN master control register + 8 + 0x0000 + 0x02 + + + INRQ + 0 + 1 + + + SLEEP + 1 + 1 + + + TXFP + 2 + 1 + + + RFLM + 3 + 1 + + + NART + 4 + 1 + + + AWUM + 5 + 1 + + + ABOM + 6 + 1 + + + TTOM + 7 + 1 + + + + + MSR + CAN master status register + 8 + 0x0001 + 0x02 + + + INAK + 0 + 1 + + + SLAK + 1 + 1 + + + ERRI + 2 + 1 + + + WKUI + 3 + 1 + + + TX + 4 + 1 + + + RX + 5 + 1 + + + + + TSR + CAN transmit status register + 8 + 0x0002 + 0x00 + + + RQCP0 + 0 + 1 + + + RQCP1 + 1 + 1 + + + RQCP2 + 2 + 1 + + + TXQOK0 + 4 + 1 + + + TXQOK1 + 5 + 1 + + + TXQOK2 + 6 + 1 + + + + + TPR + CAN transmit priority register + 8 + 0x0003 + 0x0C + + + CODE0 + 0 + 1 + + + CODE1 + 1 + 1 + + + TME0 + 2 + 1 + + + TME1 + 3 + 1 + + + TME2 + 4 + 1 + + + LOW0 + 5 + 1 + + + LOW1 + 6 + 1 + + + LOW2 + 7 + 1 + + + + + RFR + CAN receive FIFO register + 8 + 0x0004 + 0x00 + + + FMP + 0 + 2 + + + FULL + 3 + 1 + + + FOVR + 4 + 1 + + + RFOM + 5 + 1 + + + + + IER + CAN interrupt enable register + 8 + 0x0005 + 0x00 + + + TMEIE + 0 + 1 + + + FMPIE + 1 + 1 + + + FFIE + 2 + 1 + + + FOVIE + 4 + 1 + + + WKUIE + 7 + 1 + + + + + DGR + CAN diagnosis register + 8 + 0x0006 + 0x0C + + + LBKM + 0 + 1 + + + SILM + 1 + 1 + + + SAMP + 2 + 1 + + + RX + 3 + 1 + + + TXM2E + 4 + 1 + + + + + FPSR + CAN page selection register + 8 + 0x0007 + 0x00 + + + P0 + CAN paged register 0 + 8 + 0x0008 + 0x00 + + + P1 + CAN paged register 1 + 8 + 0x0009 + 0x00 + + + P2 + CAN paged register 2 + 8 + 0x000A + 0x00 + + + P3 + CAN paged register 3 + 8 + 0x000B + 0x00 + + + P4 + CAN paged register 4 + 8 + 0x000C + 0x00 + + + P5 + CAN paged register 5 + 8 + 0x000D + 0x00 + + + P6 + CAN paged register 6 + 8 + 0x000E + 0x00 + + + P7 + CAN paged register 7 + 8 + 0x000F + 0x00 + + + P8 + CAN paged register 8 + 8 + 0x0010 + 0x00 + + + P9 + CAN paged register 9 + 8 + 0x0011 + 0x00 + + + PA + CAN paged register A + 8 + 0x0012 + 0x00 + + + PB + CAN paged register B + 8 + 0x0013 + 0x00 + + + PC + CAN paged register C + 8 + 0x0014 + 0x00 + + + PD + CAN paged register D + 8 + 0x0015 + 0x00 + + + PE + CAN paged register E + 8 + 0x0016 + 0x00 + + + PF + CAN paged register F + 8 + 0x0017 + 0x00 + + + + Interrupt_IRQ8 + Interrupt_IRQ8 interrupt + 8 + + + Interrupt_IRQ9 + Interrupt_IRQ9 interrupt + 9 + + + + From 7bcc53d20e2b690a5a589d90b6c3600a5cd33721 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 14 Mar 2021 19:20:24 +0100 Subject: [PATCH 04/16] Restructure board files for debugging --- boards/mb208.json | 4 ++++ boards/nucleo_8s207k8.json | 10 ++++++++++ boards/nucleo_8s208rb.json | 10 ++++++++++ boards/s8uno.json | 4 ++++ boards/stm8sblack.json | 4 ++++ boards/stm8sblue.json | 4 ++++ boards/stm8sdisco.json | 23 +++++++---------------- 7 files changed, 43 insertions(+), 16 deletions(-) diff --git a/boards/mb208.json b/boards/mb208.json index e4ed85f..cb4a2a2 100644 --- a/boards/mb208.json +++ b/boards/mb208.json @@ -11,6 +11,10 @@ "arduino", "spl" ], + "debug": { + "svd_path": "STM8S208MB.svd", + "openocd_target": "stm8s" + }, "upload": { "maximum_ram_size": 6144, "maximum_size": 131072, diff --git a/boards/nucleo_8s207k8.json b/boards/nucleo_8s207k8.json index 6dd6b1e..f01108f 100644 --- a/boards/nucleo_8s207k8.json +++ b/boards/nucleo_8s207k8.json @@ -6,6 +6,16 @@ "cpu": "stm8", "mcu": "stm8s207k8t6" }, + "debug": { + "svd_path": "STM8S207K8.svd", + "openocd_target": "stm8s", + "default_tools": [ + "stlink" + ], + "onboard_tools": [ + "stlink" + ] + }, "frameworks": [ "spl" ], diff --git a/boards/nucleo_8s208rb.json b/boards/nucleo_8s208rb.json index 5e11ccf..2f8347d 100644 --- a/boards/nucleo_8s208rb.json +++ b/boards/nucleo_8s208rb.json @@ -6,6 +6,16 @@ "cpu": "stm8", "mcu": "stm8s208rbt6" }, + "debug": { + "svd_path": "STM8S208RB.svd", + "openocd_target": "stm8s", + "default_tools": [ + "stlink" + ], + "onboard_tools": [ + "stlink" + ] + }, "frameworks": [ "spl" ], diff --git a/boards/s8uno.json b/boards/s8uno.json index 6047fde..cd4ccc0 100644 --- a/boards/s8uno.json +++ b/boards/s8uno.json @@ -7,6 +7,10 @@ "mcu": "stm8s105k6t6", "variant": "s8uno" }, + "debug": { + "svd_path": "STM8S105K6.svd", + "openocd_target": "stm8s105" + }, "frameworks": [ "arduino", "spl" diff --git a/boards/stm8sblack.json b/boards/stm8sblack.json index 7b11e1c..6ad9244 100644 --- a/boards/stm8sblack.json +++ b/boards/stm8sblack.json @@ -7,6 +7,10 @@ "mcu": "stm8s105k4t6", "variant": "stm8sblack" }, + "debug": { + "svd_path": "STM8S105K4.svd", + "openocd_target": "stm8s105" + }, "frameworks": [ "arduino", "spl" diff --git a/boards/stm8sblue.json b/boards/stm8sblue.json index 604f7d3..a05405f 100644 --- a/boards/stm8sblue.json +++ b/boards/stm8sblue.json @@ -11,6 +11,10 @@ "arduino", "spl" ], + "debug": { + "svd_path": "STM8S103F3.svd", + "openocd_target": "stm8s103" + }, "upload": { "maximum_ram_size": 1024, "maximum_size": 8192, diff --git a/boards/stm8sdisco.json b/boards/stm8sdisco.json index f195ad7..67f4833 100644 --- a/boards/stm8sdisco.json +++ b/boards/stm8sdisco.json @@ -8,23 +8,14 @@ "variant": "stm8sdisco" }, "debug": { + "svd_path": "STM8S105C6.svd", "openocd_target": "stm8s", - "tools": { - "stlink": { - "default": true, - "server": { - "arguments": [ - "-f", - "scripts/interface/stlink.cfg", - "-f", - "scripts/target/stm8s.cfg" - ], - "executable": "bin/openocd", - "package": "tool-openocd" - }, - "onboard": true - } - } + "default_tools": [ + "stlink" + ], + "onboard_tools": [ + "stlink" + ] }, "frameworks": [ "arduino", From d3c94cfd2a81484e71b0c36fb34887b06da0d6f3 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 14 Mar 2021 19:32:25 +0100 Subject: [PATCH 05/16] First version platform.py --- platform.py | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 platform.py diff --git a/platform.py b/platform.py new file mode 100644 index 0000000..6ce16a5 --- /dev/null +++ b/platform.py @@ -0,0 +1,78 @@ +# Copyright 2021-present PlatformIO +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +import os + +from platform import system + +from platformio.managers.platform import PlatformBase +from platformio.util import get_systype + + +class Ststm8Platform(PlatformBase): + + def configure_default_packages(self, variables, targets): + return PlatformBase.configure_default_packages(self, variables, + targets) + + def get_boards(self, id_=None): + result = PlatformBase.get_boards(self, id_) + if not result: + return result + if id_: + return self._add_default_debug_tools(result) + else: + for key, value in result.items(): + result[key] = self._add_default_debug_tools(result[key]) + return result + + def _add_default_debug_tools(self, board): + debug = board.manifest.get("debug", {}) + upload_protocols = board.manifest.get("upload", {}).get( + "protocols", []) + if "tools" not in debug: + debug['tools'] = {} + + # Configure OpenOCD debuggin via ST-Link + for link in ("stlink"): + if link == "stlink": + server_args = ["-s", "$PACKAGE_DIR/scripts"] + if debug.get("openocd_board"): + server_args.extend([ + "-f", "board/%s.cfg" % debug.get("openocd_board") + ]) + else: + assert debug.get("openocd_target"), ( + "Missed target configuration for %s" % board.id) + server_args.extend([ + "-f", "interface/%s.cfg" % link, + "-f", "target/%s.cfg" % debug.get("openocd_target") + ]) + server_args.extend(debug.get("openocd_extra_args", [])) + + debug['tools'][link] = { + "server": { + "package": "tool-openocd", + "executable": "bin/openocd", + "arguments": server_args + } + } + debug['tools'][link]['onboard'] = link in debug.get( + "onboard_tools", []) + debug['tools'][link]['default'] = link in debug.get( + "default_tools", []) + + board.manifest['debug'] = debug + return board From 4b6556c496bf97054641de03b9e96fe684ad6c2f Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 14 Mar 2021 20:37:52 +0100 Subject: [PATCH 06/16] Work around Intel HEX generation bug --- builder/main.py | 19 ++++++++++++++++--- platform.py | 6 ++++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/builder/main.py b/builder/main.py index e854a7a..54a9c5b 100644 --- a/builder/main.py +++ b/builder/main.py @@ -30,7 +30,7 @@ GDB="stm8-gdb", LD="sdldstm8", RANLIB="sdranlib", - OBJCOPY="sdobjcopy", + OBJCOPY="stm8-objcopy", SIZETOOL="stm8-size", OBJSUFFIX=".rel", LIBSUFFIX=".lib", @@ -99,10 +99,23 @@ def _ldflags_for_hex(env, ldflags): target_firm = join("$BUILD_DIR", "${PROGNAME}.ihx") else: target_elf = env.BuildProgram() + # convert elf to hex not via sdcc but via stm8-objcopy. + # otherwise the resulting ihex file has the debug sections (if --debug --out-fmt-elf is enabled) + # in it and it fails to flash target_firm = env.Command( join("$BUILD_DIR", "${PROGNAME}.ihx"), - env['PIOBUILDFILES'], - env['LINKCOM'].replace("$LINKFLAGS", "$ldflags_for_hex") + join("$BUILD_DIR", "${PROGNAME}.elf"), + " ".join( + ["$OBJCOPY", + "-O", + "ihex", + "$SOURCES", + "--only-section=HOME", + "--only-section=GSINIT", + "--only-section=GSFINAL", + "--only-section=CODE", + "--only-section=INITIALIZER", + "$TARGET"]) ) env.Depends(target_firm, target_elf) diff --git a/platform.py b/platform.py index 6ce16a5..83c5876 100644 --- a/platform.py +++ b/platform.py @@ -45,8 +45,9 @@ def _add_default_debug_tools(self, board): if "tools" not in debug: debug['tools'] = {} - # Configure OpenOCD debuggin via ST-Link - for link in ("stlink"): + # Configure OpenOCD debugging. + # Only via ST-Link for now + for link in ("stlink",): if link == "stlink": server_args = ["-s", "$PACKAGE_DIR/scripts"] if debug.get("openocd_board"): @@ -58,6 +59,7 @@ def _add_default_debug_tools(self, board): "Missed target configuration for %s" % board.id) server_args.extend([ "-f", "interface/%s.cfg" % link, + "-c", "transport select swim", "-f", "target/%s.cfg" % debug.get("openocd_target") ]) server_args.extend(debug.get("openocd_extra_args", [])) From e4fab076c483fde5ce33a2453dbd2bc17e434f78 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 14 Mar 2021 20:42:15 +0100 Subject: [PATCH 07/16] Better way to remove debug info --- builder/main.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/builder/main.py b/builder/main.py index 54a9c5b..05090cb 100644 --- a/builder/main.py +++ b/builder/main.py @@ -110,11 +110,8 @@ def _ldflags_for_hex(env, ldflags): "-O", "ihex", "$SOURCES", - "--only-section=HOME", - "--only-section=GSINIT", - "--only-section=GSFINAL", - "--only-section=CODE", - "--only-section=INITIALIZER", + "--remove-section=\".debug*\"", + "--remove-section=SSEG", "$TARGET"]) ) env.Depends(target_firm, target_elf) From 9227c1308cedb212669ee664609d29e39b9ccf0e Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 14 Mar 2021 21:04:49 +0100 Subject: [PATCH 08/16] Correct OpenOCD adapter and typos --- platform.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/platform.py b/platform.py index 83c5876..24cfcf9 100644 --- a/platform.py +++ b/platform.py @@ -56,10 +56,10 @@ def _add_default_debug_tools(self, board): ]) else: assert debug.get("openocd_target"), ( - "Missed target configuration for %s" % board.id) + "Missing target configuration for %s" % board.id) server_args.extend([ - "-f", "interface/%s.cfg" % link, - "-c", "transport select swim", + "-f", "interface/stlink-dap.cfg", + # transport protocol swim is automatically selected, no need to set it "-f", "target/%s.cfg" % debug.get("openocd_target") ]) server_args.extend(debug.get("openocd_extra_args", [])) From 8168e2469f02a5dea8335def7e088e70256dd196 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 14 Mar 2021 21:05:03 +0100 Subject: [PATCH 09/16] Add right build flags debugging --- builder/main.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/builder/main.py b/builder/main.py index 05090cb..220dc52 100644 --- a/builder/main.py +++ b/builder/main.py @@ -89,6 +89,15 @@ def _ldflags_for_hex(env, ldflags): if env.get("PROGNAME", "program") == "program": env.Replace(PROGNAME="firmware") +# +# Automatically remove flags which are incompatible with SDCC +# in debug mode +if env.GetBuildType() == "debug": + # inject build unflags and unflags that will be + # processed later. + env.Append(BUILD_UNFLAGS=["-Og","-g2", "-ggdb2"]) + env.Append(BUILD_FLAGS=["--debug", "--out-fmt-elf"]) + # # Target: Build executable and linkable firmware # From e9373b181dc2324aa25d294ffac3aed3a03ab2e5 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 14 Mar 2021 21:09:09 +0100 Subject: [PATCH 10/16] Make OpenOCD non-optional --- platform.json | 1 - 1 file changed, 1 deletion(-) diff --git a/platform.json b/platform.json index 1a46591..0e4d63a 100644 --- a/platform.json +++ b/platform.json @@ -59,7 +59,6 @@ }, "tool-openocd": { "type": "uploader", - "optional": true, "owner": "platformio", "version": "~2.1000.0" } From f629e7c4a0a7c53b5279860957962d267df10f5e Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 21 Mar 2021 20:58:44 +0100 Subject: [PATCH 11/16] Add newline to board manifest files --- boards/nucleo_8s207k8.json | 2 +- boards/nucleo_8s208rb.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/boards/nucleo_8s207k8.json b/boards/nucleo_8s207k8.json index f01108f..71cd6fe 100644 --- a/boards/nucleo_8s207k8.json +++ b/boards/nucleo_8s207k8.json @@ -32,4 +32,4 @@ "name": "NUCLEO-8S207K8", "url": "https://www.st.com/en/evaluation-tools/nucleo-8s207k8.html", "vendor": "STMicroelectronics" -} \ No newline at end of file +} diff --git a/boards/nucleo_8s208rb.json b/boards/nucleo_8s208rb.json index 2f8347d..13ea05b 100644 --- a/boards/nucleo_8s208rb.json +++ b/boards/nucleo_8s208rb.json @@ -31,4 +31,4 @@ "name": "NUCLEO-8S208RB", "url": "https://www.st.com/en/evaluation-tools/nucleo-8s208rb.html", "vendor": "STMicroelectronics" -} \ No newline at end of file +} From ed212d09044a9bc90f5f4a969c048b608c7f3126 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 21 Mar 2021 20:59:59 +0100 Subject: [PATCH 12/16] Remove unnecessary string format --- builder/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/main.py b/builder/main.py index 220dc52..69e156f 100644 --- a/builder/main.py +++ b/builder/main.py @@ -174,7 +174,7 @@ def _ldflags_for_hex(env, ldflags): UPLOADER="stm8flash", UPLOADERFLAGS=[ "-c", "$UPLOAD_PROTOCOL", - "-p", "%s" % flash_target, + "-p", flash_target, "-s", "flash", "-w" ], UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCE' From e13bc79f314af8caa55b833420cbaf16d23d0ea7 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 21 Mar 2021 21:22:49 +0100 Subject: [PATCH 13/16] Unify usage of double quotes --- platform.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/platform.py b/platform.py index 24cfcf9..999e605 100644 --- a/platform.py +++ b/platform.py @@ -43,7 +43,7 @@ def _add_default_debug_tools(self, board): upload_protocols = board.manifest.get("upload", {}).get( "protocols", []) if "tools" not in debug: - debug['tools'] = {} + debug["tools"] = {} # Configure OpenOCD debugging. # Only via ST-Link for now @@ -64,17 +64,17 @@ def _add_default_debug_tools(self, board): ]) server_args.extend(debug.get("openocd_extra_args", [])) - debug['tools'][link] = { + debug["tools"][link] = { "server": { "package": "tool-openocd", "executable": "bin/openocd", "arguments": server_args } } - debug['tools'][link]['onboard'] = link in debug.get( + debug["tools"][link]["onboard"] = link in debug.get( "onboard_tools", []) - debug['tools'][link]['default'] = link in debug.get( + debug["tools"][link]["default"] = link in debug.get( "default_tools", []) - board.manifest['debug'] = debug + board.manifest["debug"] = debug return board From 0f5d0ba5d2c60bf29bf97bfd9635b2a192a376a5 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 21 Mar 2021 21:22:56 +0100 Subject: [PATCH 14/16] Fix issue with IHX generation Switching from SDCC to stm8-objcopy to Intel HEX file generation has the advantage of just copying the relevant sections (and ignoring the debug sections that sdcc would otherwise include), but also care must be taken that all sections which do not end up in FLASH are removed. Two more sections are removed during copying, which are created when initialized and uninitialized global variables are used within a project. --- builder/main.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/builder/main.py b/builder/main.py index 69e156f..25f6fd0 100644 --- a/builder/main.py +++ b/builder/main.py @@ -111,6 +111,9 @@ def _ldflags_for_hex(env, ldflags): # convert elf to hex not via sdcc but via stm8-objcopy. # otherwise the resulting ihex file has the debug sections (if --debug --out-fmt-elf is enabled) # in it and it fails to flash + # also remove sections which are put into SRAM (starting at 0x0) and cause upload failure. + # maybe it would be better to just copy the sections which end up in flash? + # (HOME, GSINIT, GSFINAL, INITIALIZER, CODE and others?) target_firm = env.Command( join("$BUILD_DIR", "${PROGNAME}.ihx"), join("$BUILD_DIR", "${PROGNAME}.elf"), @@ -121,6 +124,8 @@ def _ldflags_for_hex(env, ldflags): "$SOURCES", "--remove-section=\".debug*\"", "--remove-section=SSEG", + "--remove-section=INITIALIZED", + "--remove-section=DATA", "$TARGET"]) ) env.Depends(target_firm, target_elf) From 9254750e350b213ab4e55517df63970fd158c158 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 22 Mar 2021 14:38:46 +0100 Subject: [PATCH 15/16] Removed empty overrided function --- platform.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/platform.py b/platform.py index 999e605..c9fe945 100644 --- a/platform.py +++ b/platform.py @@ -23,10 +23,6 @@ class Ststm8Platform(PlatformBase): - def configure_default_packages(self, variables, targets): - return PlatformBase.configure_default_packages(self, variables, - targets) - def get_boards(self, id_=None): result = PlatformBase.get_boards(self, id_) if not result: From 2d2fec889e7da9955efcd2c072078dbb71cb0b8f Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 22 Mar 2021 14:42:10 +0100 Subject: [PATCH 16/16] Make OpenOCD optional again This will be re-downloaded before a debugging session starts and we do not need to worry. --- platform.json | 1 + 1 file changed, 1 insertion(+) diff --git a/platform.json b/platform.json index 0e4d63a..1a46591 100644 --- a/platform.json +++ b/platform.json @@ -59,6 +59,7 @@ }, "tool-openocd": { "type": "uploader", + "optional": true, "owner": "platformio", "version": "~2.1000.0" }