diff --git a/.gitignore b/.gitignore index d615cce..89f3131 100644 --- a/.gitignore +++ b/.gitignore @@ -371,4 +371,6 @@ Visual Studio 2022/ Visual Studio 2022Templates/ Test/ src/01/Samples/Dojo/ -KSociety.Dojo.sln \ No newline at end of file +src/01/KSociety.ProgrammerTerminal +KSociety.Dojo.sln +KSociety.ProgrammerTerminal.sln \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x443.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x443.xml new file mode 100644 index 0000000..9a27e50 --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x443.xml @@ -0,0 +1,504 @@ + + + + 0x443 + STMicroelectronics + MCU + + Cortex-M0+ + STM32C01x + STM32C0 + ARM 32-bit Cortex-M0+ based device + + + + + + + + + Embedded SRAM + Storage + + 0x00 + RWE + + + + + Single + + + + + + + + + + Embedded Flash + Storage + The Flash memory interface manages CPU AHB I-Code and D-Code accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms + 0xFF + RWE + + + + + + + Single + 0x8 + + + + + + + + + + OTP + Storage + The Data OTP memory block. It contains the one time programmable bits. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + Option Bytes + Configuration + + RW + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + or any value other than 0xAA and 0xCC: Level 1, read protection + Level 2, chip protection + + 0xAA + + + + + + BOR Level + + + + + BOR_EN + + 0x8 + 0x1 + RW + + Configurable brown out reset disabled, power-on reset defined by POR/PDR levels + Configurable brown out reset enabled, values of BORR_LEV and BORF_LEV taken into account + + 0x1 + + + BORR_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0x9 + 0x2 + RW + + BOR falling level 1 with threshold around 2.1 V + BOR falling level 2 with threshold around 2.3 V + BOR falling level 3 with threshold around 2.6 V + BOR falling level 4 with threshold around 2.9 V + + 0x3 + + + BORF_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0xB + 0x2 + RW + + BOR rising level 1 with threshold around 2.0 V + BOR rising level 2 with threshold around 2.2 V + BOR rising level 3 with threshold around 2.5 V + BOR rising level 4 with threshold around 2.8 V + + 0x3 + + + + + + User Configuration + + + + + nRST_STOP + + 0xD + 0x1 + RW + + Reset generated when entering Stop mode + No reset generated when entering Stop mode + + 0x1 + + + nRST_STDBY + + 0xE + 0x1 + RW + + Reset generated when entering Standby mode + No reset generated when entering Standby mode + + 0x1 + + + nRST_SHDW + + 0xF + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independent watchdog + Software independent watchdog + + 0x1 + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Freeze IWDG counter in stop mode + IWDG counter active in stop mode + + 0x1 + + + IWDG_STDBY + + 0x12 + 0x1 + RW + + Freeze IWDG counter in standby mode + IWDG counter active in standby mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + 0x1 + + + HSE_NOT_REMAPPED + + 0x15 + 0x1 + RW + + HSE_NOT_REMAPPED enable + HSE_NOT_REMAPPED disable + + 0x1 + + + RAM_PARITY_CHECK + + 0x16 + 0x1 + RW + + RAM_PARITY_CHECK enable + RAM_PARITY_CHECK disable + + 0x1 + + + SECURE_MUXING_EN + + 0x17 + 0x1 + RW + + SECURE_MUXING_EN disable + SECURE_MUXING_EN enable + + 0x1 + + + nBOOT_SEL + + 0x18 + 0x1 + RW + + BOOT0 pin (legacy mode) + nBOOT0 option bit + + 0x1 + + + nBOOT1 + + 0x19 + 0x1 + RW + + Boot from Flash if BOOT0 = 1, otherwise Embedded SRAM1 + Boot from Flash if BOOT0 = 1, otherwise system memory + + 0x1 + + + nBOOT0 + + 0x1A + 0x1 + RW + + nBOOT0=0 + nBOOT0=1 + + 0x1 + + + NRST_MODE + + 0x1B + 0x2 + RW + + Reserved + Reset Input only: a low level on the NRST pin generates system reset, internal RESET not propagated to the NSRT pin + GPIO: standard GPIO pad functionality, only internal RESET possible + Bidirectional reset: NRST pin configured in reset input/output mode (legacy mode) + + 0x3 + + + IRHEN + Internal reset holder enable bit + 0x1D + 0x1 + RW + + Internal resets are propagated as simple pulse on NRST pin + Internal resets drives NRST pin low until it is seen as low level + + 0x1 + + + + + + PCROP Protection + + + + + PCROP1A_STRT + Start offset of first PCROP zone in bank 1 + 0x0 + 0x6 + RW + + 0x3F + + + + + + + + PCROP1A_END + End offset of first PCROP zone in bank 1 + 0x0 + 0x6 + RW + + 0x0 + + + PCROP_RDP + + 0x1F + 0x1 + RW + + PCROP zone is kept when RDP is decreased; Partial Mass Erase done + PCROP zone is erased when RDP is decreased Full Mass Erase done + + 0x0 + + + + + + + + PCROP1B_STRT + Start offset of second PCROP zone in bank 1 + 0x0 + 0x6 + RW + + 0x3F + + + + + + + + PCROP1B_END + End offset of second PCROP zone in bank 1 + 0x0 + 0x6 + RW + + 0x0 + + + + + + Write Protection + + + + + WRP1A_STRT + TStart offset of WRP zone A of bank 1. WRP1A_STRT contains the first page of the first WRP zone to protect + 0x0 + 0x4 + RW + + 0xF + + + WRP1A_END + End offset of WRP zone A of bank 1. WRP1A_END contains the last page of the first WRP zone to protect. + 0x10 + 0x4 + RW + + 0x0 + + + + + + + + WRP1B_STRT + Start offset of WRP zone B of bank 1. WRP1B_START contains the first page of the second WRP zone to protect + 0x0 + 0x4 + RW + + 0xF + + + WRP1B_END + End offset of WRP zone B of bank 1. WRP1B_END contains the last page of the second WRP zone to protect + 0x10 + 0x4 + RW + + 0x0 + + + + + + + + FLASH security + + + + + SEC_SIZE + Securable memory area size + 0x0 + 0x5 + RW + + 0x0 + + + BOOT_LOCK + Used to force boot from user area + 0x10 + 0x1 + RW + + Boot based on the pad/option bit configuration + Boot forced from Main Flash memory + + 0x0 + + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x453.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x453.xml new file mode 100644 index 0000000..4d3c7f2 --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x453.xml @@ -0,0 +1,504 @@ + + + + 0x453 + STMicroelectronics + MCU + + Cortex-M0+ + STM32C03x + STM32C0 + ARM 32-bit Cortex-M0+ based device + + + + + + + + + Embedded SRAM + Storage + + 0x00 + RWE + + + + + Single + + + + + + + + + + Embedded Flash + Storage + The Flash memory interface manages CPU AHB I-Code and D-Code accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms + 0xFF + RWE + + + + + + + Single + 0x8 + + + + + + + + + + OTP + Storage + The Data OTP memory block. It contains the one time programmable bits. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + Option Bytes + Configuration + + RW + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + or any value other than 0xAA and 0xCC: Level 1, read protection + Level 2, chip protection + + 0xAA + + + + + + BOR Level + + + + + BOR_EN + + 0x8 + 0x1 + RW + + Configurable brown out reset disabled, power-on reset defined by POR/PDR levels + Configurable brown out reset enabled, values of BORR_LEV and BORF_LEV taken into account + + 0x1 + + + BORR_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0x9 + 0x2 + RW + + BOR falling level 1 with threshold around 2.1 V + BOR falling level 2 with threshold around 2.3 V + BOR falling level 3 with threshold around 2.6 V + BOR falling level 4 with threshold around 2.9 V + + 0x3 + + + BORF_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0xB + 0x2 + RW + + BOR rising level 1 with threshold around 2.0 V + BOR rising level 2 with threshold around 2.2 V + BOR rising level 3 with threshold around 2.5 V + BOR rising level 4 with threshold around 2.8 V + + 0x3 + + + + + + User Configuration + + + + + nRST_STOP + + 0xD + 0x1 + RW + + Reset generated when entering Stop mode + No reset generated when entering Stop mode + + 0x1 + + + nRST_STDBY + + 0xE + 0x1 + RW + + Reset generated when entering Standby mode + No reset generated when entering Standby mode + + 0x1 + + + nRST_SHDW + + 0xF + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independent watchdog + Software independent watchdog + + 0x1 + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Freeze IWDG counter in stop mode + IWDG counter active in stop mode + + 0x1 + + + IWDG_STDBY + + 0x12 + 0x1 + RW + + Freeze IWDG counter in standby mode + IWDG counter active in standby mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + 0x1 + + + HSE_NOT_REMAPPED + + 0x15 + 0x1 + RW + + HSE_NOT_REMAPPED enable + HSE_NOT_REMAPPED disable + + 0x1 + + + RAM_PARITY_CHECK + + 0x16 + 0x1 + RW + + RAM_PARITY_CHECK enable + RAM_PARITY_CHECK disable + + 0x1 + + + SECURE_MUXING_EN + + 0x17 + 0x1 + RW + + SECURE_MUXING_EN disable + SECURE_MUXING_EN enable + + 0x1 + + + nBOOT_SEL + + 0x18 + 0x1 + RW + + BOOT0 pin (legacy mode) + nBOOT0 option bit + + 0x1 + + + nBOOT1 + + 0x19 + 0x1 + RW + + Boot from Flash if BOOT0 = 1, otherwise Embedded SRAM1 + Boot from Flash if BOOT0 = 1, otherwise system memory + + 0x1 + + + nBOOT0 + + 0x1A + 0x1 + RW + + nBOOT0=0 + nBOOT0=1 + + 0x1 + + + NRST_MODE + + 0x1B + 0x2 + RW + + Reserved + Reset Input only: a low level on the NRST pin generates system reset, internal RESET not propagated to the NSRT pin + GPIO: standard GPIO pad functionality, only internal RESET possible + Bidirectional reset: NRST pin configured in reset input/output mode (legacy mode) + + 0x3 + + + IRHEN + Internal reset holder enable bit + 0x1D + 0x1 + RW + + Internal resets are propagated as simple pulse on NRST pin + Internal resets drives NRST pin low until it is seen as low level + + 0x1 + + + + + + PCROP Protection + + + + + PCROP1A_STRT + Start offset of first PCROP zone in bank 1 + 0x0 + 0x6 + RW + + 0x3F + + + + + + + + PCROP1A_END + End offset of first PCROP zone in bank 1 + 0x0 + 0x6 + RW + + 0x0 + + + PCROP_RDP + + 0x1F + 0x1 + RW + + PCROP zone is kept when RDP is decreased; Partial Mass Erase done + PCROP zone is erased when RDP is decreased Full Mass Erase done + + 0x0 + + + + + + + + PCROP1B_STRT + Start offset of second PCROP zone in bank 1 + 0x0 + 0x6 + RW + + 0x3F + + + + + + + + PCROP1B_END + End offset of second PCROP zone in bank 1 + 0x0 + 0x6 + RW + + 0x0 + + + + + + Write Protection + + + + + WRP1A_STRT + TStart offset of WRP zone A of bank 1. WRP1A_STRT contains the first page of the first WRP zone to protect + 0x0 + 0x4 + RW + + 0xF + + + WRP1A_END + End offset of WRP zone A of bank 1. WRP1A_END contains the last page of the first WRP zone to protect. + 0x10 + 0x4 + RW + + 0x0 + + + + + + + + WRP1B_STRT + Start offset of WRP zone B of bank 1. WRP1B_START contains the first page of the second WRP zone to protect + 0x0 + 0x4 + RW + + 0xF + + + WRP1B_END + End offset of WRP zone B of bank 1. WRP1B_END contains the last page of the second WRP zone to protect + 0x10 + 0x4 + RW + + 0x0 + + + + + + + + FLASH security + + + + + SEC_SIZE + Securable memory area size + 0x0 + 0x5 + RW + + 0x0 + + + BOOT_LOCK + Used to force boot from user area + 0x10 + 0x1 + RW + + Boot based on the pad/option bit configuration + Boot forced from Main Flash memory + + 0x0 + + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x455.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x455.xml new file mode 100644 index 0000000..a291239 --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x455.xml @@ -0,0 +1,693 @@ + + + + 0x455 + STMicroelectronics + MCU + Cortex-M33 + STM32U535/STM32U545 + STM32U5 + ARM 32-bit Cortex-M33 based device + + + + + + + + + + + Option Bytes + Configuration + + RW + + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + Level 0.5, read protection not active, only non-secure debug access is possible. Only available when TrustZone is active (TZEN=1) + Level 1, read protection of memories + Level 2, chip protection + + 0xAA + + + + + + + BOR Level + + + + + BOR_LEV + These bits contain the VDD supply level threshold that activates/releases the reset. + 0x8 + 0x3 + RW + + BOR Level 0, reset level threshold is around 1.7 V + BOR Level 1, reset level threshold is around 2.0 V + BOR Level 2, reset level threshold is around 2.2 V + BOR Level 3, reset level threshold is around 2.5 V + BOR Level 4, reset level threshold is around 2.8 V + + 0x0 + + + + + + User Configuration + + + + + TZEN + Global TrustZone security enable. disable this OB by Unchecking TZEN + RDP regression from level 1 to 0 simultaneously + 0x1F + 0x1 + RW + + Global TrustZone security disabled + Global TrustZone security enabled + + 0x0 + + + nRST_STOP + + 0xC + 0x1 + RW + + Reset generated when entering Stop mode + No reset generated when entering Stop mode + + 0x1 + + + nRST_STDBY + + 0xD + 0x1 + RW + + Reset generated when entering Standby mode + No reset generated when entering Standby mode + + 0x1 + + + nRST_SHDW + + 0xE + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + SRAM134_RST + SRAM1, SRAM3 and SRAM4 erase upon system reset + 0xF + 0x1 + RW + + SRAM1, SRAM3 and SRAM4 erased when a system reset occurs + SRAM1, SRAM3 and SRAM4 not erased when a system reset occurs + + 0x1 + + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independant watchdog + Software independant watchdog + + 0x1 + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Freeze IWDG counter in stop mode + IWDG counter active in stop mode + + 0x1 + + + IWDG_STDBY + + 0x12 + 0x1 + RW + + Freeze IWDG counter in standby mode + IWDG counter active in standby mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + 0x1 + + + SWAP_BANK + + 0x14 + 0x1 + RW + + Bank 1 and bank 2 address are not swapped + Bank 1 and bank 2 address are swapped + + 0x0 + + + DUALBANK + + 0x15 + 0x1 + RW + + Single-bank flash memory with contiguous address in bank 1 + Dual-bank flash memory with contiguous addresses + + 0x1 + + + BKPRAM_ECC + SRAM2 parity check enable + 0x16 + 0x1 + RW + + Backup RAM ECC check enabled + Backup RAM ECC check disabled + + 0x1 + + + SRAM2_ECC + SRAM2 ECC detection and correction enable + 0x18 + 0x1 + RW + + SRAM2 ECC check enabled + SRAM2 ECC check disabled + + 0x1 + + + SRAM2_RST + SRAM2 Erase when system reset + 0x19 + 0x1 + RW + + SRAM2 erased when a system reset occurs + SRAM2 is not erased when a system reset occurs + + 0x1 + + + nSWBOOT0 + Software BOOT0 + 0x1A + 0x1 + RW + + BOOT0 taken from the option bit nBOOT0 + BOOT0 taken from PH3/BOOT0 pin + + 0x1 + + + nBOOT0 + nBOOT0 option bit + 0x1B + 0x1 + RW + + nBOOT0 = 0 + nBOOT0 = 1 + + 0x1 + + + PA15_PUPEN + PA15 pull-up enable + 0x1C + 0x1 + RW + + USB power delivery dead-battery enabled/ TDI pull-up deactivated + USB power delivery dead-battery disabled/ TDI pull-up activated + + 0x1 + + + IO_VDD_HSLV + High-speed IO at low VDD voltage configuration bit + 0x1D + 0x1 + RW + + High-speed IO at low VDD voltage feature disabled (VDD can exceed 2.5 V) + High-speed IO at low VDD voltage feature enabled (VDD remains below 2.5 V) + + 0x0 + + + IO_VDDIO2_HSLV + High-speed IO at low VDDIO2 voltage configuration bit + 0x1E + 0x1 + RW + + High-speed IO at low VDDIO2 voltage feature disabled (VDDIO2 can exceed 2.5 V) + High-speed IO at low VDDIO2 voltage feature enabled (VDDIO2 remains below 2.5 V) + + 0x0 + + + + + + Boot Configuration + + + + + NSBOOTADD0 + Non-secure Boot base address 0 + 0x7 + 0x19 + RW + + 0x100000 + + + + + + + + NSBOOTADD1 + Non-secure Boot base address 1 + 0x7 + 0x19 + RW + + 0x17F200 + + + + + + + + SECBOOTADD0 + Secure boot base address 0 + 0x7 + 0x19 + RW + + 0x180000 + + + + + + + + BOOT_LOCK + The boot is always forced to base address value programmed in SECBOOTADD0 + 0x0 + 0x1 + RW + + Boot based on the pad/option bit configuration + Boot forced from base address memory + + 0x0 + + + + + + + + + SECWM1_PSTRT + Start page of first secure area + 0x0 + 0x5 + RW + + 0x0 + + + SECWM1_PEND + End page of first secure area + 0x10 + 0x5 + RW + + 0x1F + + + + + + + + HDP1_PEND + End page of first hide protection area + 0x10 + 0x5 + RW + + 0x0 + + + HDP1EN + Hide protection first area enable + 0x1F + 0x1 + RW + + No HDP area 1 + HDP first area is enabled + + 0x0 + + + + + + + Write Protection 1 + + + + + WRP1A_PSTRT + Bank 1 WPR first area "A" start page + 0x0 + 0x5 + RW + + 0x1F + + + + WRP1A_PEND + Bank 1 WPR first area "A" end page + 0x10 + 0x5 + RW + + 0x0 + + + UNLOCK_1A + Bank 1 WPR first area A unlock + 0x1F + 0x1 + RW + + WRP1A start and end pages locked + WRP1A start and end pages unlocked + + 0x1 + + + + + + + + + WRP1B_PSTRT + Bank 1 WPR first area "B" start page + 0x0 + 0x5 + RW + + 0x1F + + + WRP1B_PEND + Bank 1 WPR first area "B" end page + 0x10 + 0x5 + RW + + 0x0 + + + UNLOCK_1B + Bank 1 WPR first area B unlock + 0x1F + 0x1 + RW + + WRP1B start and end pages locked + WRP1B start and end pages unlocked + + 0x1 + + + + + + + Secure Area 2 + + + + + SECWM2_PSTRT + Start page of second secure area + 0x0 + 0x5 + RW + + 0x1F + + + SECWM2_PEND + End page of second secure area + 0x10 + 0x5 + RW + + 0x0 + + + + + + + + + HDP2_PEND + End page of second hide protection area + 0x10 + 0x5 + RW + + 0x0 + + + HDP2EN + Hide protection second area enable + 0x1F + 0x1 + RW + + No HDP area 2 + HDP second area is enabled + + 0x0 + + + + + + + + + + Write Protection 2 + + + + + WRP2A_PSTRT + Bank 2 WPR first area "A" start page + 0x0 + 0x5 + RW + + 0x1F + + + WRP2A_PEND + Bank 2 WPR first area "A" end page + 0x10 + 0x5 + RW + + 0x0 + + + UNLOCK_2A + Bank 2 WPR first area A unlock + 0x1F + 0x1 + RW + + WRP2A start and end pages locked + WRP2A start and end pages unlocked + + 0x1 + + + + + + + + + WRP2B_PSTRT + Bank 2 WPR first area "B" start page + 0x0 + 0x5 + RW + + 0x1F + + + WRP2B_PEND + Bank 2 WPR first area "B" end page + 0x10 + 0x5 + RW + + 0x0 + + + UNLOCK_2B + Bank 2 WPR first area B unlock + 0x1F + 0x1 + RW + + WRP2B start and end pages locked + WRP2B start and end pages unlocked + + 0x1 + + + + + + OEM Keys + + + + + OEM1KEY [0:31] + OEM1 least significant bytes key + 0x0 + 0x20 + RW + + 0x0 + + + + + + + + OEM1KEY [63:32] + OEM1 most significant bytes key + 0x0 + 0x20 + RW + + 0x0 + + + + + + + + OEM2KEY [0:31] + OEM2 least significant bytes key + 0x0 + 0x20 + RW + + 0x0 + + + + + + + + OEM2KEY [63:32] + OEM2 most significant bytes key + 0x0 + 0x20 + RW + + 0x0 + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x456.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x456.xml new file mode 100644 index 0000000..8b91525 --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x456.xml @@ -0,0 +1,502 @@ + + + + 0x456 + STMicroelectronics + MCU + Cortex-M0+ + STM32G051/STM32G061 + STM32G0 + ARM 32-bit Cortex-M0+ based device + + + + + + + + + Embedded SRAM + Storage + + 0x00 + RWE + + + + + Single + + + + + + + + + + Embedded Flash + Storage + The Flash memory interface manages CPU AHB I-Code and D-Code accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms + 0xFF + RWE + + + + + + + Single + 0x8 + + + + + + + + + + OTP + Storage + The Data OTP memory block. It contains the one time programmable bits. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + MirrorOptionBytes + Storage + Mirror Option Bytes contains the extra area. + 0xFF + RW + + + + + Dual + 0x4 + + + + + + + + + + + + + + + Option Bytes + Configuration + + RW + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + or any value other than 0xAA and 0xCC: Level 1, read protection + Level 2, chip protection + + 0xAA + + + + + + BOR Level + + + + + BOR_EN + + 0x8 + 0x1 + RW + + Configurable brown out reset disabled, power-on reset defined by POR/PDR levels + Configurable brown out reset enabled, values of BORR_LEV and BORF_LEV taken into account + + 0x0 + + + BORR_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0x9 + 0x2 + RW + + BOR rising level 1 with threshold around 2.1 V + BOR rising level 2 with threshold around 2.3 V + BOR rising level 3 with threshold around 2.6 V + BOR rising level 4 with threshold around 2.9 V + + 0x3 + + + BORF_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0xB + 0x2 + RW + + BOR falling level 1 with threshold around 2.0 V + BOR falling level 2 with threshold around 2.2 V + BOR falling level 3 with threshold around 2.5 V + BOR falling level 4 with threshold around 2.8 V + + 0x3 + + + + + + + User Configuration + + + + + nRST_STOP + + 0xD + 0x1 + RW + + Reset generated when entering Stop mode + No reset generated when entering Stop mode + + 0x1 + + + nRST_STDBY + + 0xE + 0x1 + RW + + Reset generated when entering Standby mode + No reset generated when entering Standby mode + + 0x1 + + + nRST_SHDW + + 0xF + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independent watchdog + Software independent watchdog + + 0x1 + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Freeze IWDG counter in stop mode + IWDG counter active in stop mode + + 0x1 + + + IWDG_STDBY + + 0x12 + 0x1 + RW + + Freeze IWDG counter in standby mode + IWDG counter active in standby mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + 0x1 + + + RAM_PARITY_CHECK + + 0x16 + 0x1 + RW + + SRAM parity check enable + SRAM parity check disable + + 0x1 + + + nBOOT_SEL + + 0x18 + 0x1 + RW + + BOOT0 signal is defined by BOOT0 pin value (legacy mode) + BOOT0 signal is defined by nBOOT0 option bit + + 0x1 + + + nBOOT1 + + 0x19 + 0x1 + RW + + Boot from Flash if BOOT0 = 0, otherwise Embedded SRAM1 + Boot from Flash if BOOT0 = 0, otherwise system memory + + 0x1 + + + nBOOT0 + + 0x1A + 0x1 + RW + + nBOOT0=0 + nBOOT0=1 + + 0x1 + + + NRST_MODE + + 0x1B + 0x2 + RW + + Reserved + Reset Input only: a low level on the NRST pin generates system reset, internal RESET not propagated to the NSRT pin + GPIO: standard GPIO pad functionality, only internal RESET possible + Bidirectional reset: NRST pin configured in reset input/output mode (legacy mode) + + 0x3 + + + IRHEN + Internal reset holder enable bit + 0x1D + 0x1 + RW + + Internal resets are propagated as simple pulse on NRST pin + Internal resets drives NRST pin low until it is seen as low level + + 0x1 + + + + + + PCROP Protection + + + + + PCROP1A_STRT + Flash Area A PCROP start address + 0x0 + 0x8 + RW + + 0xFF + + + + + + + + PCROP1A_END + Flash Area A PCROP End address(excluded). Deactivation of PCROP can be done by enabling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0x8 + RW + + 0x0 + + + PCROP_RDP + + 0x1F + 0x1 + RW + + PCROP zone is kept when RDP is decreased + PCROP zone is erased when RDP is decreased + + 0x0 + + + + + + + + PCROP1B_STRT + Flash Area B PCROP start address + 0x0 + 0x8 + RW + + 0xFF + + + + + + + + PCROP1B_END + Flash Area B PCROP End address(excluded). Deactivation of PCROP can be done by enabling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0x8 + RW + + 0x0 + + + + + + Write Protection + + + + + WRP1A_STRT + The address of the first page of the Bank 1 WRP first area + 0x0 + 0x8 + RW + + 0xFF + + + WRP1A_END + The address of the last page of the Bank 1 WRP first area + 0x10 + 0x8 + RW + + 0x0 + + + + + + + + WRP1B_STRT + The address of the first page of the Bank 1 WRP second area + 0x0 + 0x8 + RW + + 0xFF + + + WRP1B_END + The address of the last page of the Bank 1 WRP second area + 0x10 + 0x8 + RW + + 0x0 + + + + + + + + + FLASH security + + + + + BOOT_LOCK + used to force boot from user area + 0x10 + 0x1 + RW + + Boot based on the pad/option bit configuration + Boot forced from Main Flash memory + + 0x0 + + + SEC_SIZE + Securable memory area size + 0x0 + 0x6 + RW + 0x0 + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x460.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x460.xml new file mode 100644 index 0000000..0b29770 --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x460.xml @@ -0,0 +1,504 @@ + + + + 0x460 + STMicroelectronics + MCU + Cortex-M0+ + STM32G07x/STM32G08x + STM32G0 + ARM 32-bit Cortex-M0+ based device + + + + + + + + + + Embedded SRAM + Storage + + 0x00 + RWE + + + + + Single + + + + + + + + + + Embedded Flash + Storage + The Flash memory interface manages CPU AHB I-Code and D-Code accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms + 0xFF + RWE + + + + + + + + + + + Single + 0x8 + + + + + + + + + + OTP + Storage + The Data OTP memory block. It contains the one time programmable bits. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + MirrorOptionBytes + Storage + Mirror Option Bytes contains the extra area. + 0xFF + RW + + + + + Dual + 0x4 + + + + + + + + + + + + + + + Option Bytes + Configuration + + RW + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + or any value other than 0xAA and 0xCC: Level 1, read protection + Level 2, chip protection + + 0xAA + + + + + + BOR Level + + + + + BOR_EN + + 0x8 + 0x1 + RW + + Configurable brown out reset disabled, power-on reset defined by POR/PDR levels + Configurable brown out reset enabled, values of BORR_LEV and BORF_LEV taken into account + + 0x0 + + + BORR_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0x9 + 0x2 + RW + + BOR rising level 1 with threshold around 2.1 V + BOR rising level 2 with threshold around 2.3 V + BOR rising level 3 with threshold around 2.6 V + BOR rising level 4 with threshold around 2.9 V + + 0x3 + + + BORF_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0xB + 0x2 + RW + + BOR falling level 1 with threshold around 2.0 V + BOR falling level 2 with threshold around 2.2 V + BOR falling level 3 with threshold around 2.5 V + BOR falling level 4 with threshold around 2.8 V + + 0x3 + + + + + + User Configuration + + + + + nRST_STOP + + 0xD + 0x1 + RW + + Reset generated when entering Stop mode + No reset generated when entering Stop mode + + 0x1 + + + nRST_STDBY + + 0xE + 0x1 + RW + + Reset generated when entering Standby mode + No reset generated when entering Standby mode + + 0x1 + + + nRST_SHDW + + 0xF + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independent watchdog + Software independent watchdog + + 0x1 + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Freeze IWDG counter in stop mode + IWDG counter active in stop mode + + 0x1 + + + IWDG_STDBY + + 0x12 + 0x1 + RW + + Freeze IWDG counter in standby mode + IWDG counter active in standby mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + 0x1 + + + RAM_PARITY_CHECK + + 0x16 + 0x1 + RW + + SRAM parity check enable + SRAM parity check disable + + 0x1 + + + nBOOT_SEL + + 0x18 + 0x1 + RW + + BOOT0 signal is defined by BOOT0 pin value (legacy mode) + BOOT0 signal is defined by nBOOT0 option bit + + 0x1 + + + nBOOT1 + + 0x19 + 0x1 + RW + + Boot from Flash if BOOT0 = 0, otherwise Embedded SRAM1 + Boot from Flash if BOOT0 = 0, otherwise system memory + + 0x1 + + + nBOOT0 + + 0x1A + 0x1 + RW + + nBOOT0=0 + nBOOT0=1 + + 0x1 + + + NRST_MODE + + 0x1B + 0x2 + RW + + Reserved + Reset Input only: a low level on the NRST pin generates system reset, internal RESET not propagated to the NSRT pin + GPIO: standard GPIO pad functionality, only internal RESET possible + Bidirectional reset: NRST pin configured in reset input/output mode (legacy mode) + + 0x3 + + + IRHEN + Internal reset holder enable bit + 0x1D + 0x1 + RW + + Internal resets are propagated as simple pulse on NRST pin + Internal resets drives NRST pin low until it is seen as low level + + 0x1 + + + + + + PCROP Protection + + + + + PCROP1A_STRT + Flash Area A PCROP start address + 0x0 + 0x9 + RW + + 0x1FF + + + + + + + + PCROP1A_END + Flash Area A PCROP End address(excluded). Deactivation of PCROP can be done by enabling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0x9 + RW + + 0x0 + + + PCROP_RDP + + 0x1F + 0x1 + RW + + PCROP zone is kept when RDP is decreased + PCROP zone is erased when RDP is decreased + + 0x0 + + + + + + + + PCROP1B_STRT + Flash Area B PCROP start address + 0x0 + 0x9 + RW + + 0x1FF + + + + + + + + PCROP1B_END + Flash Area B PCROP End address(excluded). Deactivation of PCROP can be done by enabling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0x9 + RW + + 0x0 + + + + + + Write Protection + + + + + WRP1A_STRT + The address of the first page of the Bank 1 WRP first area + 0x0 + 0x7 + RW + + 0x7F + + + WRP1A_END + The address of the last page of the Bank 1 WRP first area + 0x10 + 0x7 + RW + + 0x0 + + + + + + + + WRP1B_STRT + The address of the first page of the Bank 1 WRP second area + 0x0 + 0x7 + RW + + 0x7F + + + WRP1B_END + The address of the last page of the Bank 1 WRP second area + 0x10 + 0x7 + RW + + 0x0 + + + + + + FLASH security + + + + + BOOT_LOCK + used to force boot from user area + 0x10 + 0x1 + RW + + Boot based on the pad/option bit configuration + Boot forced from Main Flash memory + + 0x0 + + + SEC_SIZE + Securable memory area size + 0x0 + 0x8 + RW + + 0x0 + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x462.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x462.xml new file mode 100644 index 0000000..4fc3793 --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x462.xml @@ -0,0 +1,401 @@ + + + + 0x462 + STMicroelectronics + MCU + Cortex-M4 + STM32L45x/L46x + STM32L4 + ARM 32-bit Cortex-M4 based device + + + + + + + + + + + Embedded SRAM + Storage + + 0x00 + RWE + + + + + Single + + + + + + + + + + Embedded Flash + Storage + The Flash memory interface manages CPU AHB I-Code and D-Code accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms + 0xFF + RWE + + + + + + + + Single + 0x8 + + + + + + + + + + OTP + Storage + The Data OTP memory block. It contains the one time programmable bits. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + MirrorOptionBytes + Storage + Mirror Option Bytes contains the extra area. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + Option Bytes + Configuration + + RW + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + or any value other than 0xAA and 0xCC: Level 1, read protection + Level 2, chip protection + + 0xAA + + + + + + BOR Level + + + + + BOR_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0x8 + 0x3 + RW + + BOR Level 0, reset level threshold is around 1.7 V + BOR Level 1, reset level threshold is around 2.0 V + BOR Level 2, reset level threshold is around 2.2 V + BOR Level 3, reset level threshold is around 2.5 V + BOR Level 4, reset level threshold is around 2.8 V + + 0x0 + + + + + + User Configuration + + + + + nRST_STOP + + 0xC + 0x1 + RW + + Reset generated when entering Stop mode + No reset generated when entering Stop mode + + 0x1 + + + nRST_STDBY + + 0xD + 0x1 + RW + + Reset generated when entering Standby mode + No reset generated when entering Standby mode + + 0x1 + + + nRST_SHDW + + 0xE + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independant watchdog + Software independant watchdog + + 0x1 + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Freeze IWDG counter in stop mode + IWDG counter active in stop mode + + 0x1 + + + IWDG_STDBY + + 0x12 + 0x1 + RW + + Freeze IWDG counter in standby mode + IWDG counter active in standby mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + 0x1 + + + nBOOT1 + This bit selects the boot mode only when BOOT0=1. If BOOT0 = 0, boot from system memory when nSWBOOT0=1 and main flash is empty,otherwise, boot from main flash memory. + 0x17 + 0x1 + RW + + Boot from embedded SRAM1 when BOOT0=1 + Boot from system memory when BOOT0=1 + + 0x1 + + + SRAM2_PE + + 0x18 + 0x1 + RW + + SRAM2 parity check enable + SRAM2 parity check disable + + 0x1 + + + SRAM2_RST + + 0x19 + 0x1 + RW + + SRAM2 erased when a system reset occurs + SRAM2 is not erased when a system reset occurs + + 0x1 + + + nSWBOOT0 + + 0x1A + 0x1 + RW + + BOOT0 taken from the option bit nBOOT0 + BOOT0 taken from PH3/BOOT0 pin + + 0x1 + + + nBOOT0 + This option bit sets the BOOT0 value only when nSWBOOT0=0 + 0x1B + 0x1 + RW + + BOOT0 = 1, boot memory depends on nBOOT1 value + BOOT0 = 0, boot from system memory when nSWBOOT0=1 and main flash is empty,otherwise, boot from main flash memory + + 0x1 + + + + + + PCROP Protection + + + + + PCROP1_STRT + Flash Bank 1 PCROP start address + 0x0 + 0x10 + RW + + 0xFFFF + + + + + + + + PCROP1_END + Flash Bank 1 PCROP End address. Deactivation of PCROP can be done by enabling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0x10 + RW + + 0x0 + + + PCROP_RDP + + 0x1F + 0x1 + RW + + PCROP zone is kept when RDP is decreased + PCROP zone is erased when RDP is decreased + + 0x1 + + + + + + Write Protection + + + + + WRP1A_STRT + The address of the first page of the Bank 1 WRP first area + 0x0 + 0x8 + RW + + 0xFF + + + WRP1A_END + The address of the last page of the Bank 1 WRP first area + 0x10 + 0x8 + RW + + 0x0 + + + + + + + + WRP1B_STRT + The address of the first page of the Bank 1 WRP second area + 0x0 + 0x8 + RW + + 0xFF + + + WRP1B_END + The address of the last page of the Bank 1 WRP second area + 0x10 + 0x8 + RW + + 0x0 + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x466.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x466.xml new file mode 100644 index 0000000..ff7f157 --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x466.xml @@ -0,0 +1,636 @@ + + + + 0x466 + STMicroelectronics + MCU + Cortex-M0+ + STM32G03x/STM32G04x + STM32G0 + ARM 32-bit Cortex-M0+ based device + + + + + + + + + + Embedded SRAM + Storage + + 0x00 + RWE + + + + + Single + + + + + + + + + + Embedded Flash + Storage + The Flash memory interface manages CPU AHB I-Code and D-Code accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms + 0xFF + RWE + + + + + + + Single + 0x8 + + + + + + + + + + + Single + 0x8 + + + + + + + + + + + Single + 0x8 + + + + + + + + + + OTP + Storage + The Data OTP memory block. It contains the one time programmable bits. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + MirrorOptionBytes + Storage + Mirror Option Bytes contains the extra area. + 0xFF + RW + + + + + Dual + 0x4 + + + + + + + + + + + + + + + Option Bytes + Configuration + + RW + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + or any value other than 0xAA and 0xCC: Level 1, read protection + Level 2, chip protection + + 0xAA + + + + + + BOR Level + + + + + BOR_EN + + 0x8 + 0x1 + RW + + Configurable brown out reset disabled, power-on reset defined by POR/PDR levels + Configurable brown out reset enabled, values of BORR_LEV and BORF_LEV taken into account + + 0x0 + + + BORF_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0xB + 0x2 + RW + + BOR falling level 1 with threshold around 2.0 V + BOR falling level 2 with threshold around 2.2 V + BOR falling level 3 with threshold around 2.5 V + BOR falling level 4 with threshold around 2.8 V + + 0x3 + + + BORR_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0x9 + 0x2 + RW + + BOR rising level 1 with threshold around 2.1 V + BOR rising level 2 with threshold around 2.3 V + BOR rising level 3 with threshold around 2.6 V + BOR rising level 4 with threshold around 2.9 V + + 0x3 + + + + + + User Configuration + + + + + nRST_STOP + + 0xD + 0x1 + RW + + Reset generated when entering Stop mode + No reset generated when entering Stop mode + + 0x1 + + + nRST_STDBY + + 0xE + 0x1 + RW + + Reset generated when entering Standby mode + No reset generated when entering Standby mode + + 0x1 + + + nRST_SHDW + 0xF + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independent watchdog + Software independent watchdog + + 0x1 + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Freeze IWDG counter in stop mode + IWDG counter active in stop mode + + 0x1 + + + IWDG_STDBY + + 0x12 + 0x1 + RW + + Freeze IWDG counter in standby mode + IWDG counter active in standby mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + 0x1 + + + RAM_PARITY_CHECK + + 0x16 + 0x1 + RW + + SRAM parity check enable + SRAM parity check disable + + 0x1 + + + nBOOT_SEL + + 0x18 + 0x1 + RW + + BOOT0 signal is defined by BOOT0 pin value (legacy mode) + BOOT0 signal is defined by nBOOT0 option bit + + 0x1 + + + nBOOT1 + + 0x19 + 0x1 + RW + + Boot from Flash if BOOT0 = 1, otherwise Embedded SRAM1 + Boot from Flash if BOOT0 = 1, otherwise system memory + + 0x1 + + + nBOOT0 + + 0x1A + 0x1 + RW + + nBOOT0=0 + nBOOT0=1 + + 0x1 + + + NRST_MODE + 0x1B + 0x2 + RW + + Reserved + Reset Input only: a low level on the NRST pin generates system reset, internal RESET not propagated to the NSRT pin + GPIO: standard GPIO pad functionality, only internal RESET possible + Bidirectional reset: NRST pin configured in reset input/output mode (legacy mode) + + 0x3 + + + IRHEN + Internal reset holder enable bit + 0x1D + 0x1 + RW + + Internal resets are propagated as simple pulse on NRST pin + Internal resets drives NRST pin low until it is seen as low level + + 0x1 + + + + + + PCROP Protection + + + + + PCROP1A_STRT + Flash Area A in Bank1 PCROP start address + 0x0 + 0x8 + RW + + 0xFF + + + + + + + + PCROP1A_END + Flash Area A in Bank1 PCROP End address(excluded). Deactivation of PCROP can be done by enabling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0x8 + RW + + 0x0 + + + PCROP_RDP + + 0x1F + 0x1 + RW + + PCROP zone is kept when RDP is decreased + PCROP zone is erased when RDP is decreased + + 0x0 + + + + + + + + PCROP2A_STRT + Flash Area A in Bank 2 PCROP start address + 0x0 + 0x8 + RW + + 0xFF + + + + + + + + PCROP2A_END + Flash Area A in Bank 2 PCROP end address + 0x0 + 0x8 + RW + + 0x0 + + + + + + + + PCROP1B_STRT + Flash Area B in Bank1 PCROP start address + 0x0 + 0x8 + RW + + 0xFF + + + + + + + + PCROP1B_END + Flash Area B in Bank1 PCROP End address(excluded). Deactivation of PCROP can be done by enabling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0x8 + RW + + 0x0 + + + + + + + + PCROP2B_STRT + Flash Area B in Bank 2 PCROP start address + 0x0 + 0x8 + RW + + 0xFF + + + + + + + + PCROP2B_END + Flash Area B in Bank 2 PCROP End address(excluded). Deactivation of PCROP can be done by enabling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0x8 + RW + + 0x0 + + + + + + Write Protection + + + + + WRP1A_STRT + The address of the first page of the Bank 1 WRP first area + 0x0 + 0x8 + RW + + 0xFF + + + WRP1A_END + The address of the last page of the Bank 1 WRP first area + 0x10 + 0x8 + RW + + 0x0 + + + + + + + + WRP1B_STRT + The address of the first page of the Bank 1 WRP second area + 0x0 + 0x8 + RW + + 0xFF + + + WRP1B_END + The address of the last page of the Bank 1 WRP second area + 0x10 + 0x8 + RW + + 0x0 + + + + + + + + WRP2A_STRT + The address of the first page of the Bank 2 WRP first area + 0x0 + 0x8 + RW + + 0xFF + + + WRP2A_END + The address of the last page of the Bank 2 WRP first area + 0x10 + 0x8 + RW + + 0x0 + + + + + + + + WRP2B_STRT + The address of the first page of the Bank 2 WRP second area + 0x0 + 0x8 + RW + + 0xFF + + + WRP2B_END + The address of the last page of the Bank 2 WRP second area + 0x10 + 0x8 + RW + + 0x0 + + + + + + + + + FLASH security + + + + + BOOT_LOCK + used to force boot from user area + 0x10 + 0x1 + RW + + Boot based on the pad/option bit configuration + Boot forced from Main Flash memory + + 0x0 + + + SEC_SIZE + Securable memory area size, Bank 1 + 0x0 + 0x7 + RW + + 0x0 + + + SEC_SIZE2 + Securable memory area size, Bank 2 + 0x0 + 0x7 + RW + + 0x0 + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x467.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x467.xml new file mode 100644 index 0000000..6fb4d62 --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x467.xml @@ -0,0 +1,697 @@ + + + + 0x467 + STMicroelectronics + MCU + + Cortex-M0+ + STM32G0B0xx/B1xx/C1xx + STM32G0 + ARM 32-bit Cortex-M0+ based device + + + + + + + + + + Embedded SRAM + Storage + + 0x00 + RWE + + + + + Single + + + + + + + + + + Embedded Flash + Storage + The Flash memory interface manages CPU AHB I-Code and D-Code accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms + 0xFF + RWE + + + + + + + Single + 0x8 + + + + + + + + + + + Dual + 0x8 + + + + + + + + + + + + + + + + + Single + 0x8 + + + + + + + + + + + Dual + 0x8 + + + + + + + + + + + + + + + + Dual + 0x8 + + + + + + + + + + OTP + Storage + The Data OTP memory block. It contains the one time programmable bits. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + MirrorOptionBytes + Storage + Mirror Option Bytes contains the extra area. + 0xFF + RW + + + + + Dual + 0x4 + + + + + + + + + + + + + + + Option Bytes + Configuration + + RW + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + or any value other than 0xAA and 0xCC: Level 1, read protection + Level 2, chip protection + + 0xAA + + + + + + BOR Level + + + + + BOR_EN + + 0x8 + 0x1 + RW + + Configurable brown out reset disabled, power-on reset defined by POR/PDR levels + Configurable brown out reset enabled, values of BORR_LEV and BORF_LEV taken into account + + 0x0 + + + BORF_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0x9 + 0x2 + RW + + BOR falling level 1 with threshold around 2.0 V + BOR falling level 2 with threshold around 2.2 V + BOR falling level 3 with threshold around 2.5 V + BOR falling level 4 with threshold around 2.8 V + + 0x3 + + + BORR_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0xB + 0x2 + RW + + BOR rising level 1 with threshold around 2.1 V + BOR rising level 2 with threshold around 2.3 V + BOR rising level 3 with threshold around 2.6 V + BOR rising level 4 with threshold around 2.9 V + + 0x3 + + + + + + User Configuration + + + + + nRST_STOP + + 0xD + 0x1 + RW + + Reset generated when entering Stop mode + No reset generated when entering Stop mode + + 0x1 + + + nRST_STDBY + + 0xE + 0x1 + RW + + Reset generated when entering Standby mode + No reset generated when entering Standby mode + + 0x1 + + + nRST_SHDW + + 0xF + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independent watchdog + Software independent watchdog + + 0x1 + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Freeze IWDG counter in stop mode + IWDG counter active in stop mode + + 0x1 + + + IWDG_STDBY + + 0x12 + 0x1 + RW + + Freeze IWDG counter in standby mode + IWDG counter active in standby mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + 0x1 + + + nSWAP_BANK + + 0x14 + 0x1 + RW + + Bank 1 + Bank 2 + + 0x1 + + + DUAL_BANK + + 0x15 + 0x1 + RW + + 256 Kbytes/512 Kbytes single-bank Flash memory(contiguous addresses in Bank 1) + 256 Kbytes/512 Kbytes dual-bank Flash memory + + 0x1 + + + RAM_PARITY_CHECK + + 0x16 + 0x1 + RW + + SRAM parity check enable + SRAM parity check disable + + 0x1 + + + nBOOT_SEL + + 0x18 + 0x1 + RW + + BOOT0 signal is defined by BOOT0 pin value (legacy mode) + BOOT0 signal is defined by nBOOT0 option bit + + 0x1 + + + nBOOT1 + + 0x19 + 0x1 + RW + + Boot from Flash if BOOT0 = 0, otherwise Embedded SRAM1 + Boot from Flash if BOOT0 = 0, otherwise system memory + + 0x1 + + + nBOOT0 + + 0x1A + 0x1 + RW + + nBOOT0=0 + nBOOT0=1 + + 0x1 + + + NRST_MODE + + 0x1B + 0x2 + RW + + Reserved + Reset Input only: a low level on the NRST pin generates system reset, internal RESET not propagated to the NSRT pin + GPIO: standard GPIO pad functionality, only internal RESET possible + Bidirectional reset: NRST pin configured in reset input/output mode (legacy mode) + + 0x3 + + + IRHEN + Internal reset holder enable bit + 0x1D + 0x1 + RW + + Internal resets are propagated as simple pulse on NRST pin + Internal resets drives NRST pin low until it is seen as low level + + 0x1 + + + + + + PCROP Protection + + + + + PCROP1A_STRT + Flash Area A PCROP start address + 0x0 + 0x9 + RW + + 0x1FF + + + + + + + + PCROP1A_END + Flash Area A PCROP End address(excluded). Deactivation of PCROP can be done by enabling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0x9 + RW + + 0x0 + + + PCROP_RDP + + 0x1F + 0x1 + RW + + PCROP zone is kept when RDP is decreased + PCROP zone is erased when RDP is decreased + + 0x0 + + + + + + + + PCROP1B_STRT + Flash Area B PCROP start address + 0x0 + 0x9 + RW + + 0x1FF + + + + + + + + PCROP1B_END + Flash Area B PCROP End address(excluded). Deactivation of PCROP can be done by enabling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0x9 + RW + + 0x0 + + + + + + + + PCROP2A_STRT + Flash Area A PCROP2 start address + 0x0 + 0x9 + RW + + 0x1FF + + + + + + + + PCROP2A_END + Flash Area A PCROP2 End address(excluded). Deactivation of PCROP can be done by enabling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0x9 + RW + + 0x0 + + + + + + + + PCROP2B_STRT + Flash Area B PCROP2 start address + 0x0 + 0x9 + RW + + 0x1FF + + + + + + + + PCROP2B_END + Flash Area B PCROP2 End address(excluded). Deactivation of PCROP can be done by enabling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0x9 + RW + + 0x0 + + + + + + Write Protection + + + + + WRP1A_STRT + The address of the first page of the Bank 1 WRP first area + 0x0 + 0x7 + RW + + 0x7F + + + WRP1A_END + The address of the last page of the Bank 1 WRP first area + 0x10 + 0x7 + RW + + 0x0 + + + + + + + + WRP1B_STRT + The address of the first page of the Bank 1 WRP second area + 0x0 + 0x7 + RW + + 0x7F + + + WRP1B_END + The address of the last page of the Bank 1 WRP second area + 0x10 + 0x7 + RW + + 0x0 + + + + + + + + + WRP2A_STRT + The address of the first page of the Bank 2 WRP first area + 0x0 + 0x7 + RW + + 0x7F + + + WRP2A_END + The address of the last page of the Bank 2 WRP first area + 0x10 + 0x7 + RW + + 0x0 + + + + + + + + WRP2B_STRT + The address of the first page of the Bank 2 WRP second area + 0x0 + 0x7 + RW + + 0x7F + + + WRP2B_END + The address of the last page of the Bank 2 WRP second area + 0x10 + 0x7 + RW + + 0x0 + + + + + + + + + FLASH security + + + + + BOOT_LOCK + used to force boot from user area + 0x10 + 0x1 + RW + + Boot based on the pad/option bit configuration + Boot forced from Main Flash memory + + 0x0 + + + SEC_SIZE + Securable memory for Bank 1 + 0x0 + 0x8 + RW + 0x0 + + + SEC_SIZE2 + Securable memory for Bank 2 On Dual Bank device,otherwise reserved + 0x14 + 0x8 + RW + 0x0 + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x468.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x468.xml new file mode 100644 index 0000000..7936cc2 --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x468.xml @@ -0,0 +1,454 @@ + + + + 0x468 + STMicroelectronics + MCU + Cortex-M4 + STM32G43x/G44x + STM32G4 + ARM 32-bit Cortex-M4 based device + + + + + + + + + + + Embedded SRAM + Storage + + 0x00 + RWE + + + + + Single + + + + + + + + + + Embedded Flash + Storage + The Flash memory interface manages CPU AHB I-Code and D-Code accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms + 0xFF + RWE + + + + + + + Single + 0x8 + + + + + + + + + + OTP + Storage + The Data OTP memory block. It contains the one time programmable bits. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + MirrorOptionBytes + Storage + Mirror Option Bytes contains the extra area. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + Option Bytes + Configuration + + RW + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + or any value other than 0xAA and 0xCC: Level 1, read protection + Level 2, no debug + + 0xAA + + + + + + BOR Level + + + + + BOR_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0x8 + 0x3 + RW + + BOR Level 0, reset level threshold is around 1.7 V + BOR Level 1, reset level threshold is around 2.0 V + BOR Level 2, reset level threshold is around 2.2 V + BOR Level 3, reset level threshold is around 2.5 V + BOR Level 4, reset level threshold is around 2.8 V + + 0x0 + + + + + + User Configuration + + + + + nRST_STOP + + 0xC + 0x1 + RW + + Reset generated when entering Stop mode + No reset generated when entering Stop mode + + 0x1 + + + nRST_STDBY + + 0xD + 0x1 + RW + + Reset generated when entering Standby mode + No reset generated when entering Standby mode + + 0x1 + + + nRST_SHDW + + 0xE + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independent watchdog + Software independent watchdog + + 0x1 + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Freeze IWDG counter in stop mode + IWDG counter active in stop mode + + 0x1 + + + IWDG_STDBY + + 0x12 + 0x1 + RW + + Freeze IWDG counter in standby mode + IWDG counter active in standby mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + 0x1 + + + nBOOT1 + + 0x17 + 0x1 + RW + + Boot from Flash if BOOT0 = 0, otherwise Embedded SRAM1 + Boot from Flash if BOOT0 = 0, otherwise system memory + + 0x1 + + + SRAM_PE + SRAM1 and CCM SRAM parity check enable + 0x18 + 0x1 + RW + + SRAM1 and CCM SRAM parity check enable + SRAM1 and CCM SRAM parity check disable + + 0x1 + + + CCMSRAM_RST + CCM SRAM Erase when system reset + 0x19 + 0x1 + RW + + CCM SRAM erased when a system reset occurs + CCM SRAM is not erased when a system reset occurs + + 0x1 + + + nSWBOOT0 + Software BOOT0 + 0x1A + 0x1 + RW + + BOOT0 taken from the option bit nBOOT0 + BOOT0 taken from PB8/BOOT0 pin + + 0x1 + + + nBOOT0 + This option bit sets the BOOT0 value only when nSWBOOT0=0 + 0x1B + 0x1 + RW + + nBOOT0 = 0 + nBOOT0 = 1 + + 0x1 + + + NRST_MODE + + 0x1C + 0x2 + RW + + Reserved + Reset Input only: a low level on the NRST pin generates system reset, internal RESET not propagated to the NSRT pin + GPIO: standard GPIO pad functionality, only internal RESET possible + Bidirectional reset: NRST pin configured in reset input/output mode (legacy mode) + + 0x3 + + + IRHEN + Internal reset holder enable bit + 0x1E + 0x1 + RW + + Internal resets are propagated as simple pulse on NRST pin + Internal resets drives NRST pin low until it is seen as low level + + 0x1 + + + + + + PCROP Protection + + + + + PCROP1_STRT + Flash Bank 1 PCROP start address + 0x0 + 0xE + RW + + 0x3FFF + + + + + + + + PCROP1_END + Flash Bank 1 PCROP End address(excluded). Deactivation of PCROP can be done by enbaling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0xE + RW + + 0x0 + + + PCROP_RDP + + 0x1F + 0x1 + RW + + PCROP zone is kept when RDP is decreased + PCROP zone is erased when RDP is decreased + + 0x0 + + + + + + Write Protection + + + + + WRP1A_STRT + The address of the first page of the Bank 1 WRP first area + 0x0 + 0x6 + RW + + 0x3F + + + WRP1A_END + The address of the last page of the Bank 1 WRP first area + 0x10 + 0x6 + RW + + 0x0 + + + + + + + + WRP1B_STRT + The address of the first page of the Bank 1 WRP second area + 0x0 + 0x6 + RW + + 0x3F + + + WRP1B_END + The address of the last page of the Bank 1 WRP second area + 0x10 + 0x6 + RW + + 0x0 + + + + + + Secure Protection + + + + + SEC_SIZE1 + sets the number of pages used in the bank 1 securable area + 0x0 + 0x8 + RW + 0x0 + + + BOOT_LOCK + Unique boot entry point + 0x10 + 0x1 + RW + + This bit can be reset by SW only in level0. In level 1, an RDP level regression will reset this bit, which will force a mass erase of the flash. + the boot will be done from user flash only, whatever the RDP level + + 0x0 + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x469.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x469.xml new file mode 100644 index 0000000..a5f3f57 --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x469.xml @@ -0,0 +1,654 @@ + + + + 0x469 + STMicroelectronics + MCU + Cortex-M4 + STM32G47x/G48x + STM32G4 + Category 3 devices, ARM 32-bit Cortex-M4 based device + + + + + + + + + + Embedded SRAM + Storage + + 0x00 + RWE + + + + + Single + + + + + + + + + + Embedded Flash + Storage + The Flash memory interface manages CPU AHB I-Code and D-Code accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms + 0xFF + RWE + + + + + + + + + + Single + 0x8 + + + + + + + + + + + Dual + 0x8 + + + + + + + + + + + + + + + + + Single + 0x8 + + + + + + + + + + + Dual + 0x8 + + + + + + + + + + + + + + + + + + + Single + 0x8 + + + + + + + + + + + Dual + 0x8 + + + + + + + + + + + + + + + OTP + Storage + The Data OTP memory block. It contains the one time programmable bits. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + MirrorOptionBytes + Storage + Mirror Option Bytes contains the extra area. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + + + + + + Option Bytes + Configuration + + RW + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + or any value other than 0xAA and 0xCC: Level 1, read protection + Level 2, no debug + + 0xAA + + + + + + BOR Level + + + + + BOR_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0x8 + 0x3 + RW + + BOR Level 0, reset level threshold is around 1.7 V + BOR Level 1, reset level threshold is around 2.0 V + BOR Level 2, reset level threshold is around 2.2 V + BOR Level 3, reset level threshold is around 2.5 V + BOR Level 4, reset level threshold is around 2.8 V + + 0x0 + + + + + + User Configuration + + + + + nRST_STOP + + 0xC + 0x1 + RW + + Reset generated when entering Stop mode + No reset generated when entering Stop mode + + 0x1 + + + nRST_STDBY + + 0xD + 0x1 + RW + + Reset generated when entering Standby mode + No reset generated when entering Standby mode + + 0x1 + + + nRST_SHDW + + 0xE + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independent watchdog + Software independent watchdog + + 0x1 + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Freeze IWDG counter in stop mode + IWDG counter active in stop mode + + 0x1 + + + IWDG_STDBY + + 0x12 + 0x1 + RW + + Freeze IWDG counter in standby mode + IWDG counter active in standby mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + 0x1 + + + BFB2 + + 0x14 + 0x1 + RW + + Dual-bank boot disable + Dual-bank boot enable + + 0x0 + + + DBANK + + 0x16 + 0x1 + RW + + Single bank mode with 128 bits data read width + Dual bank mode with 64 bits data + + 0x1 + + + nBOOT1 + + 0x17 + 0x1 + RW + + Boot from Flash if BOOT0 = 0, otherwise Embedded SRAM1 + Boot from Flash if BOOT0 = 0, otherwise system memory + + 0x1 + + + SRAM_PE + SRAM1 and CCM SRAM parity check enable + 0x18 + 0x1 + RW + + SRAM1 and CCM SRAM parity check enable + SRAM1 and CCM SRAM parity check disable + + 0x1 + + + CCMSRAM_RST + CCM SRAM Erase when system reset + 0x19 + 0x1 + RW + + CCM SRAM erased when a system reset occurs + CCM SRAM is not erased when a system reset occurs + + 0x1 + + + nSWBOOT0 + Software BOOT0 + 0x1A + 0x1 + RW + + BOOT0 taken from the option bit nBOOT0 + BOOT0 taken from PB8/BOOT0 pin + + 0x1 + + + nBOOT0 + This option bit sets the BOOT0 value only when nSWBOOT0=0 + 0x1B + 0x1 + RW + + nBOOT0 = 0 + nBOOT0 = 1 + + 0x1 + + + NRST_MODE + + 0x1C + 0x2 + RW + + Reserved + Reset Input only: a low level on the NRST pin generates system reset, internal RESET not propagated to the NSRT pin + GPIO: standard GPIO pad functionality, only internal RESET possible + Bidirectional reset: NRST pin configured in reset input/output mode (legacy mode) + + 0x3 + + + IRHEN + Internal reset holder enable bit + 0x1E + 0x1 + RW + + Internal resets are propagated as simple pulse on NRST pin + Internal resets drives NRST pin low until it is seen as low level + + 0x1 + + + + + + PCROP Protection (Bank 1) + + + + + PCROP1_STRT + Flash Bank 1 PCROP start address + 0x0 + 0xF + RW + 0x7FFF + + + + + + + + PCROP1_END + Flash Bank 1 PCROP End address(excluded). Deactivation of PCROP can be done by enbaling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0xF + RW + 0x0 + + + PCROP_RDP + + 0x1F + 0x1 + RW + + PCROP zone is kept when RDP is decreased + PCROP zone is erased when RDP is decreased + + 0x0 + + + + + + Write Protection (Bank 1) + + + + + WRP1A_STRT + The address of the first page of the Bank 1 WRP first area + 0x0 + 0x7 + RW + 0x7F + + + WRP1A_END + The address of the last page of the Bank 1 WRP first area + 0x10 + 0x7 + RW + 0x0 + + + + + + + + WRP1B_STRT + The address of the first page of the Bank 1 WRP second area + 0x0 + 0x7 + RW + 0x7F + + + WRP1B_END + The address of the last page of the Bank 1 WRP second area + 0x10 + 0x7 + RW + 0x0 + + + + + + + + + PCROP Protection (Bank 2) + + + + + PCROP2_STRT + Flash Bank 2 PCROP start address + 0x0 + 0xF + RW + 0x7FFF + + + + + + + + PCROP2_END + Flash Bank 2 PCROP End address(excluded). Deactivation of PCROP can be done by enbaling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0xF + RW + 0x0 + + + + + + Write Protection (Bank 2) + + + + + WRP2A_STRT + The address of first page of the Bank 2 WRP first area + 0x0 + 0x7 + RW + 0x7F + + + WRP2A_END + The address of last page of the Bank 2 WRP first area + 0x10 + 0x7 + RW + 0x0 + + + + + + + + WRP2B_STRT + The address of first page of the Bank 2 WRP second area + 0x0 + 0x7 + RW + 0x7F + + + WRP2B_END + The address of last page of the Bank 2 WRP second area + 0x10 + 0x7 + RW + 0x0 + + + + + + + + + Secure Protection (Bank 1) + + + + + SEC_SIZE1 + sets the number of pages used in the bank 1 securable area + 0x0 + 0x8 + RW + 0x0 + + + BOOT_LOCK + Unique boot entry point + 0x10 + 0x1 + RW + + This bit can be reset by SW only in level0. In level 1, an RDP level regression will reset this bit, which will force a mass erase of the flash. + the boot will be done from user flash only, whatever the RDP level + + 0x0 + + + + + + Secure Protection (Bank 2) + + + + + SEC_SIZE2 + sets the number of pages used in the bank 2 securable area + 0x0 + 0x8 + RW + 0x0 + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x479.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x479.xml new file mode 100644 index 0000000..08a4483 --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x479.xml @@ -0,0 +1,479 @@ + + + + 0x479 + STMicroelectronics + MCU + Cortex-M4 + STM32G491xC/E + STM32G4 + Category 3 devices, ARM 32-bit Cortex-M4 based device + + + + + + + + + + + + + + + + Embedded SRAM + Storage + + 0xFF + RWE + + + + + Single + + + + + + + + + + Embedded Flash + Storage + The Flash memory interface manages CPU AHB I-Code and D-Code accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms + 0xFF + RWE + + + + + + + Single + 0x10 + + + + + + + + + + OTP + Storage + The Data OTP memory block. It contains the one time programmable bits. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + MirrorOptionBytes + Storage + Mirror Option Bytes contains the extra area. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + Option Bytes + Configuration + + RW + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + or any value other than 0xAA and 0xCC: Level 1, read protection + Level 2, no debug + + 0xAA + + + + + + BOR Level + + + + + BOR_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0x8 + 0x3 + RW + + BOR Level 0, reset level threshold is around 1.7 V + BOR Level 1, reset level threshold is around 2.0 V + BOR Level 2, reset level threshold is around 2.2 V + BOR Level 3, reset level threshold is around 2.5 V + BOR Level 4, reset level threshold is around 2.8 V + + 0x0 + + + + + + User Configuration + + + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Freeze IWDG counter in stop mode + IWDG counter active in stop mode + + 0x1 + + + IWDG_STDBY + + 0x12 + 0x1 + RW + + Freeze IWDG counter in standby mode + IWDG counter active in standby mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + + 0x1 + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independent watchdog + Software independent watchdog + + 0x1 + + + nRST_STOP + + 0xC + 0x1 + RW + + Reset generated when entering Stop mode + No reset generated when entering Stop mode + + 0x1 + + + nRST_STDBY + + 0xD + 0x1 + RW + + Reset generated when entering Standby mode + No reset generated when entering Standby mode + + 0x1 + + + nRST_SHDW + + 0xE + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + BFB2 + + 0x14 + 0x1 + RW + + Dual-bank boot disable + Dual-bank boot enable + + 0x0 + + + nBOOT1 + + 0x17 + 0x1 + RW + + Boot from Flash if BOOT0 = 0, otherwise Embedded SRAM1 + Boot from Flash if BOOT0 = 0, otherwise system memory + + 0x1 + + + SRAM_PE + SRAM1 and CCM SRAM parity check enable + 0x18 + 0x1 + RW + + SRAM1 and CCM SRAM parity check enable + SRAM1 and CCM SRAM parity check disable + + 0x1 + + + CCMSRAM_RST + CCM SRAM Erase when system reset + 0x19 + 0x1 + RW + + CCM SRAM erased when a system reset occurs + CCM SRAM is not erased when a system reset occurs + + 0x1 + + + nSWBOOT0 + Software BOOT0 + 0x1A + 0x1 + RW + + BOOT0 taken from the option bit nBOOT0 + BOOT0 taken from PB8/BOOT0 pin + + 0x1 + + + nBOOT0 + This option bit sets the BOOT0 value only when nSWBOOT0=0 + 0x1B + 0x1 + RW + + nBOOT0 = 0 + nBOOT0 = 1 + + 0x1 + + + NRST_MODE + + 0x1C + 0x2 + RW + + Reserved + Reset Input only: a low level on the NRST pin generates system reset, internal RESET not propagated to the NSRT pin + GPIO: standard GPIO pad functionality, only internal RESET possible + Bidirectional reset: NRST pin configured in reset input/output mode (legacy mode) + + 0x3 + + + IRHEN + Internal reset holder enable bit + 0x1E + 0x1 + RW + + Internal resets are propagated as simple pulse on NRST pin + Internal resets drives NRST pin low until it is seen as low level + + 0x1 + + + PB4_PUEN + + 0x16 + 0x1 + RW + + USB power delivery dead-battery enabled/ TDI pull-up deactivated + USB power delivery dead-battery disabled/ TDI pull-up activated + + 0x1 + + + + + + PCROP Protection + + + + + PCROP1_STRT + Flash PCROP start address + 0x0 + 0x10 + RW + + 0xFFFF + + + + + + + + PCROP1_END + Flash PCROP End address(excluded). Deactivation of PCROP can be done by enbaling PCROP_RDP and changing RDP from level 1 to level 0 + 0x0 + 0x10 + RW + + 0x0 + + + PCROP_RDP + + 0x1F + 0x1 + RW + + PCROP zone is kept when RDP is decreased + PCROP zone is erased when RDP is decreased + + 0x0 + + + + + + Write Protection + + + + + WRP1A_STRT + The address of the first page of WRP first area + 0x0 + 0x8 + RW + 0x7F + + + WRP1A_END + The address of the last page of WRP first area + 0x10 + 0x8 + RW + 0x0 + + + + + + + + WRP1B_STRT + The address of the first page of WRP second area + 0x0 + 0x8 + RW + 0x7F + + + WRP1B_END + The address of the last page of WRP second area + 0x10 + 0x8 + RW + 0x0 + + + + + + Secure Protection + + + + + SEC_SIZE1 + sets the number of pages used in the bank 1 securable area + 0x0 + 0x9 + RW + 0x0 + + + BOOT_LOCK + Unique boot entry point + 0x10 + 0x1 + RW + + This bit can be reset by SW only in level0. In level 1, an RDP level regression will reset this bit, which will force a mass erase of the flash. + the boot will be done from user flash only, whatever the RDP level + + 0x0 + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x480.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x480.xml new file mode 100644 index 0000000..169f8b9 --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x480.xml @@ -0,0 +1,1250 @@ + + + + 0x480 + STMicroelectronics + MCU + Cortex-M7 + STM32H7A/B + STM32H7 + ARM 32-bit Cortex-M7 based device + + + + + + + + + + Embedded SRAM + Storage + + 0x00 + RWE + + + + + Single + + + + + + + + + + Embedded Flash + Storage + The Flash memory interface manages AXI accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms + 0xFF + RWE + + + + + + + Dual + 0x20 + + + + + + + + + + + + + + + + Dual + 0x20 + + + + + + + + + + + + + + + OTP + Storage + The Data OTP memory block. It contains the one time programmable bits. + 0xFF + RW + + + + + Single + 0x20 + + + + + + + + + + Option Bytes + Configuration + + RW + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x8 + 0x8 + RW + + Level 0, no protection + or any value other than 0xAA and 0xCC: Level 1, read protection + Level 2, chip protection + + 0xAA + + + + + + BOR Level + + + + + BOR_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0x2 + 0x2 + RW + + reset level OFF + reset level is set to 2.1 V + reset level is set to 2.4 V + reset level is set to 2.7 V + + 0x0 + + + + + + User Configuration + + + + + IWDG1_SW + + 0x4 + 0x1 + RW + + Independent watchdog is controlled by hardware + Independent watchdog is controlled by software + + 0x1 + + + NRST_STOP + + 0x6 + 0x1 + RW + + STOP mode on Domain 1 is entering with reset + STOP mode on Domain 1 is entering without reset + + 0x1 + + + NRST_STBY + + 0x7 + 0x1 + RW + + STANDBY mode on Domain 1 is entering with reset + STANDBY mode on Domain 1 is entering without reset + + 0x1 + + + VDDMMC_HSLV + + 0x10 + 0x1 + RW + + I/O speed optimization at low-voltage disabled + VDDMMC power rail operating below 2.5 V, I/O speed optimization at low-voltage feature allowed + + 0x0 + + + IWDG_FZ_STOP + + 0x11 + 0x1 + RW + + Independent watchdog is freezed in STOP mode + Independent watchdog is running in STOP mode + + 0x1 + + + IWDG_FZ_SDBY + + 0x12 + 0x1 + RW + + Independent watchdog is freezed in STANDBY mode + Independent watchdog is running in STANDBY mode + + 0x1 + + + SECURITY + + 0x15 + 0x1 + RW + + Security feature disabled + Security feature enabled + + 0x0 + + + VDDIO_HSLV + + 0x1D + 0x1 + RW + + Product working in the full voltage range,I/O speed optimization at low-voltage disabled + VDD I/O below 2.5 V,I/O speed optimization at low-voltage feature allowed + + 0x0 + + + SWAP_BANK_OPT + + 0x1F + 0x1 + RW + + after boot loading, no swap for user sectors + after boot loading, user sectors swapped + + 0x0 + + + + + + + + PCROP Protection + + + + + PROT_AREA_START1 + Flash Bank 1 PCROP start address + 0x0 + 0xC + RW + + 0xFF + + + PROT_AREA_END1 + Flash Bank 1 PCROP End address (excluded). Deactivation of PCROP can be done by enbaling DMEP1 bit and changing RDP from level 1 to level 0 while putting end address greater than start address + 0x10 + 0xC + RW + + 0x0 + + + DMEP1 + + 0x1F + 0x1 + RW + + Flash Bank 1 PCROP zone is kept when RDP level regression (change from level 1 to 0) occurs + Flash Bank 1 PCROP zone is erased when RDP level regression (change from level 1 to 0) occurs + + 0x0 + + + + + + + + PROT_AREA_START2 + Flash Bank 2 PCROP start address + 0x0 + 0xC + RW + + 0xFF + + + PROT_AREA_END2 + Flash Bank 2 PCROP End address (excluded). Deactivation of PCROP can be done by enbaling DMEP2 bit and changing RDP from level 1 to level 0 while putting end address greater than start address + 0x10 + 0xC + RW + + 0x0 + + + DMEP2 + + 0x1F + 0x1 + RW + + Flash Bank 2 PCROP zone is kept when RDP level regression (change from level 1 to 0) occurs + Flash Bank 2 PCROP zone is erased when RDP level regression (change from level 1 to 0) occurs + + 0x0 + + + + + + Secure Protection + + + + + SEC_AREA_START1 + Flash Bank 1 secure area start address + 0x0 + 0xC + RW + + 0xFF + + + SEC_AREA_END1 + Flash Bank 1 secure area end address. If this address is equal to SEC_AREA_START1, the whole bank 1 is secure protected.If this address is lower than SEC_AREA_START1, no protection is set on bank 1. + 0x10 + 0xC + RW + + 0x0 + + + DMES1 + + 0x1F + 0x1 + RW + + Flash Bank 1 secure area is kept when RDP level regression (change from level 1 to 0) occurs + Flash Bank 1 secure area is erased when RDP level regression (change from level 1 to 0) occurs + + 0x0 + + + + + + + + SEC_AREA_START2 + Flash Bank 2 secure area start address + 0x0 + 0xC + RW + + 0xFF + + + SEC_AREA_END2 + Flash Bank 2 secure area end address. If this address is equal to SEC_AREA_START2, the whole bank 2 is secure protected.If this address is lower than SEC_AREA_START2, no protection is set on bank 2. + 0x10 + 0xC + RW + + 0x0 + + + DMES2 + + 0x1F + 0x1 + RW + + Flash Bank 2 secure area is kept when RDP level regression (change from level 1 to 0) occurs + Flash Bank 2 secure area is erased when RDP level regression (change from level 1 to 0) occurs + + 0x0 + + + + + + DTCM RAM Protection + + + + + ST_RAM_SIZE + + 0x13 + 0x2 + RW + + 2 KB + 4 KB + 8 KB + 16 KB + + 0x3 + + + + + + Write Protection + + + + + nWRP0 + + 0x0 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP1 + + 0x1 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP2 + + 0x2 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP3 + + 0x3 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP4 + + 0x4 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP5 + + 0x5 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP6 + + 0x6 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP7 + + 0x7 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP8 + + 0x8 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP9 + + 0x9 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP10 + + 0xA + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP11 + + 0xB + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP12 + + 0xC + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP13 + + 0xD + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP14 + + 0xE + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP15 + + 0xF + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP16 + + 0x10 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP17 + + 0x11 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP18 + + 0x12 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP19 + + 0x13 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP20 + + 0x14 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP21 + + 0x15 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP22 + + 0x16 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP23 + + 0x17 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP24 + + 0x18 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP25 + + 0x19 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP26 + + 0x1A + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP27 + + 0x1B + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP28 + + 0x1C + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP29 + + 0x1D + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP30 + + 0x1E + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP31 + + 0x1F + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + + + + + + nWRP32 + + 0x0 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP33 + + 0x1 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP34 + + 0x2 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP35 + + 0x3 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP36 + + 0x4 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP37 + + 0x5 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP38 + + 0x6 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP39 + + 0x7 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP40 + + 0x8 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP41 + + 0x9 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP42 + + 0xA + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP43 + + 0xB + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP44 + + 0xC + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP45 + + 0xD + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP46 + + 0xE + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP47 + + 0xF + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP48 + + 0x10 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP49 + + 0x11 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP50 + + 0x12 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP51 + + 0x13 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP52 + + 0x14 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP53 + + 0x15 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP54 + + 0x16 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP55 + + 0x17 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP56 + + 0x18 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP57 + + 0x19 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP58 + + 0x1A + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP59 + + 0x1B + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP60 + + 0x1C + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP61 + + 0x1D + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP62 + + 0x1E + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP63 + + 0x1F + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + + + + Boot address Option Bytes + + + + + BOOT_ADD0 + + 0x0 + 0x10 + RW + + 0x0800 + + + BOOT_ADD1 + + 0x10 + 0x10 + RW + + 0x1FF0 + + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x481.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x481.xml new file mode 100644 index 0000000..22bd22e --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x481.xml @@ -0,0 +1,700 @@ + + + + 0x481 + STMicroelectronics + MCU + Cortex-M33 + STM32U59x + STM32U5 + ARM 32-bit Cortex-M33 based device + + + + + + + + + + + + + + Option Bytes + Configuration + + RW + + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + Level 0.5, read protection not active, only non-secure debug access is possible. Only available when TrustZone is active (TZEN=1) + Level 1, read protection of memories + Level 2, chip protection + + 0xAA + + + + + + BOR Level + + + + + BOR_LEV + These bits contain the VDD supply level threshold that activates/releases the reset. + 0x8 + 0x3 + RW + + BOR Level 0, reset level threshold is around 1.7 V + BOR Level 1, reset level threshold is around 2.0 V + BOR Level 2, reset level threshold is around 2.2 V + BOR Level 3, reset level threshold is around 2.5 V + BOR Level 4, reset level threshold is around 2.8 V + + 0x0 + + + + + + User Configuration + + + + + TZEN + Global TrustZone security enable. disable this OB by Unchecking TZEN + RDP regression from level 1 to 0 simultaneously + 0x1F + 0x1 + RW + + Global TrustZone security disabled + Global TrustZone security enabled + + 0x0 + + + nRST_STOP + + 0xC + 0x1 + RW + + Reset generated when entering Stop mode + No reset generated when entering Stop mode + + 0x1 + + + nRST_STDBY + + 0xD + 0x1 + RW + + Reset generated when entering Standby mode + No reset generated when entering Standby mode + + 0x1 + + + nRST_SHDW + + 0xE + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + SRAM_RST + SRAM1, SRAM3 and SRAM4 and SRAM5 erase upon system reset + 0xF + 0x1 + RW + + SRAM1, SRAM3 and SRAM4 and SRAM5 erased when a system reset occurs + SRAM1, SRAM3 and SRAM4 and SRAM5 not erased when a system reset occurs + + 0x1 + + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independant watchdog + Software independant watchdog + + 0x1 + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Freeze IWDG counter in stop mode + IWDG counter active in stop mode + + 0x1 + + + IWDG_STDBY + + 0x12 + 0x1 + RW + + Freeze IWDG counter in standby mode + IWDG counter active in standby mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + 0x1 + + + SWAP_BANK + + 0x14 + 0x1 + RW + + Bank 1 and bank 2 address are not swapped + Bank 1 and bank 2 address are swapped + + 0x0 + + + DBANK + Dual-bank on 1-Mbyte and 512-Kbyte Flash memory devices + 0x15 + 0x1 + RW + + Single bank Flash with contiguous address in bank 1 + Dual-bank Flash with contiguous addresses + + 0x1 + + + BKPRAM_ECC + SRAM2 parity check enable + 0x16 + 0x1 + RW + + Backup RAM ECC check enabled + Backup RAM ECC check disabled + + 0x1 + + + SRAM3_ECC + SRAM3 ECC detection and correction enable + 0x17 + 0x1 + RW + + SRAM3 ECC check enabled + SRAM3 ECC check disabled + + 0x1 + + + SRAM2_ECC + SRAM2 ECC detection and correction enable + 0x18 + 0x1 + RW + + SRAM2 ECC check enabled + SRAM2 ECC check disabled + + 0x1 + + + SRAM2_RST + SRAM2 Erase when system reset + 0x19 + 0x1 + RW + + SRAM2 erased when a system reset occurs + SRAM2 is not erased when a system reset occurs + + 0x1 + + + nSWBOOT0 + Software BOOT0 + 0x1A + 0x1 + RW + + BOOT0 taken from the option bit nBOOT0 + BOOT0 taken from PH3/BOOT0 pin + + 0x1 + + + nBOOT0 + nBOOT0 option bit + 0x1B + 0x1 + RW + + nBOOT0 = 0 + nBOOT0 = 1 + + 0x1 + + + PA15_PUPEN + PA15 pull-up enable + 0x1C + 0x1 + RW + + USB power delivery dead-battery enabled/ TDI pull-up deactivated + USB power delivery dead-battery disabled/ TDI pull-up activated + + 0x1 + + + IO_VDD_HSLV + High-speed IO at low VDD voltage configuration bit + 0x1D + 0x1 + RW + + High-speed IO at low VDD voltage feature disabled (VDD can exceed 2.5 V) + High-speed IO at low VDD voltage feature enabled (VDD remains below 2.5 V) + + 0x0 + + + IO_VDDIO2_HSLV + High-speed IO at low VDDIO2 voltage configuration bit + 0x1E + 0x1 + RW + + High-speed IO at low VDDIO2 voltage feature disabled (VDDIO2 can exceed 2.5 V) + High-speed IO at low VDDIO2 voltage feature enabled (VDDIO2 remains below 2.5 V) + + 0x0 + + + + + + Boot Configuration + + + + + NSBOOTADD0 + Non-secure Boot base address 0 + 0x7 + 0x19 + RW + + 0x100000 + + + + + + + + NSBOOTADD1 + Non-secure Boot base address 1 + 0x7 + 0x19 + RW + + 0x17F200 + + + + + + + + SECBOOTADD0 + Secure boot base address 0 + 0x7 + 0x19 + RW + + 0x180000 + + + + + + + + BOOT_LOCK + The boot is always forced to base address value programmed in SECBOOTADD0 + 0x0 + 0x1 + RW + + Boot based on the pad/option bit configuration + Boot forced from base address memory + + 0x0 + + + + + + + + SECWM1_PSTRT + Start page of first secure area + 0x0 + 0x8 + RW + + 0x0 + + + SECWM1_PEND + End page of first secure area + 0x10 + 0x8 + RW + + 0xFF + + + + + + + + HDP1_PEND + End page of first hide protection area + 0x10 + 0x8 + RW + + 0x0 + + + HDP1EN + Hide protection first area enable + 0x1F + 0x1 + RW + + No HDP area 1 + HDP first area is enabled + + 0x0 + + + + + + Write Protection 1 + + + + + WRP1A_PSTRT + Bank 1 WPR first area "A" start page + 0x0 + 0x8 + RW + + 0xFF + + + WRP1A_PEND + Bank 1 WPR first area "A" end page + 0x10 + 0x8 + RW + + 0x0 + + + UNLOCK_1A + Bank 1 WPR first area A unlock + 0x1F + 0x1 + RW + + WRP1A start and end pages locked + WRP1A start and end pages unlocked + + 0x1 + + + + + + + + WRP1B_PSTRT + Bank 1 WPR first area "B" start page + 0x0 + 0x8 + RW + + 0xFF + + + WRP1B_PEND + Bank 1 WPR first area "B" end page + 0x10 + 0x8 + RW + + 0x0 + + + UNLOCK_1B + Bank 1 WPR first area B unlock + 0x1F + 0x1 + RW + + WRP1B start and end pages locked + WRP1B start and end pages unlocked + + 0x1 + + + + + + Secure Area 2 + + + + + SECWM2_PSTRT + Start page of second secure area + 0x0 + 0x8 + RW + + 0x0 + + + SECWM2_PEND + End page of second secure area + 0x10 + 0x8 + RW + + 0xFF + + + + + + + + HDP2_PEND + End page of second hide protection area + 0x10 + 0x8 + RW + + 0x0 + + + HDP2EN + Hide protection second area enable + 0x1F + 0x1 + RW + + No HDP area 2 + HDP second area is enabled + + 0x0 + + + + + + + + + Write Protection 2 + + + + + WRP2A_PSTRT + Bank 2 WPR first area "A" start page + 0x0 + 0x8 + RW + + 0xFF + + + WRP2A_PEND + Bank 2 WPR first area "A" end page + 0x10 + 0x8 + RW + + 0x0 + + + UNLOCK_2A + Bank 2 WPR first area A unlock + 0x1F + 0x1 + RW + + WRP2A start and end pages locked + WRP2A start and end pages unlocked + + 0x1 + + + + + + + + WRP2B_PSTRT + Bank 2 WPR first area "B" start page + 0x0 + 0x8 + RW + + 0xFF + + + WRP2B_PEND + Bank 2 WPR first area "B" end page + 0x10 + 0x8 + RW + + 0x0 + + + UNLOCK_2B + Bank 2 WPR first area B unlock + 0x1F + 0x1 + RW + + WRP2B start and end pages locked + WRP2B start and end pages unlocked + + 0x1 + + + + + + OEM Keys + + + + + OEM1KEY [0:31] + OEM1 least significant bytes key + 0x0 + 0x20 + RW + + 0x0 + + + + + + + + OEM1KEY [63:32] + OEM1 most significant bytes key + 0x0 + 0x20 + RW + + 0x0 + + + + + + + + OEM2KEY [0:31] + OEM2 least significant bytes key + 0x0 + 0x20 + RW + + 0x0 + + + + + + + + OEM2KEY [63:32] + OEM2 most significant bytes key + 0x0 + 0x20 + RW + + 0x0 + + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x482.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x482.xml new file mode 100644 index 0000000..7ba2acd --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x482.xml @@ -0,0 +1,712 @@ + + + + 0x482 + STMicroelectronics + MCU + Cortex-M33 + STM32U575/STM32U585 + STM32U5 + ARM 32-bit Cortex-M33 based device + + + + + + + + + + + + + + Option Bytes + Configuration + + RW + + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + Level 0.5, read protection not active, only non-secure debug access is possible. Only available when TrustZone is active (TZEN=1) + Level 1, read protection of memories + Level 2, chip protection + + 0xAA + + + + + + BOR Level + + + + + BOR_LEV + These bits contain the VDD supply level threshold that activates/releases the reset. + 0x8 + 0x3 + RW + + BOR Level 0, reset level threshold is around 1.7 V + BOR Level 1, reset level threshold is around 2.0 V + BOR Level 2, reset level threshold is around 2.2 V + BOR Level 3, reset level threshold is around 2.5 V + BOR Level 4, reset level threshold is around 2.8 V + + 0x0 + + + + + + User Configuration + + + + + TZEN + Global TrustZone security enable. disable this OB by Unchecking TZEN + RDP regression from level 1 to 0 simultaneously + 0x1F + 0x1 + RW + + Global TrustZone security disabled + Global TrustZone security enabled + + 0x0 + + + nRST_STOP + + 0xC + 0x1 + RW + + Reset generated when entering Stop mode + No reset generated when entering Stop mode + + 0x1 + + + nRST_STDBY + + 0xD + 0x1 + RW + + Reset generated when entering Standby mode + No reset generated when entering Standby mode + + 0x1 + + + nRST_SHDW + + 0xE + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + SRAM134_RST + SRAM1, SRAM3 and SRAM4 erase upon system reset + 0xF + 0x1 + RW + + SRAM1, SRAM3 and SRAM4 erased when a system reset occurs + SRAM1, SRAM3 and SRAM4 not erased when a system reset occurs + + 0x1 + + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independant watchdog + Software independant watchdog + + 0x1 + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Freeze IWDG counter in stop mode + IWDG counter active in stop mode + + 0x1 + + + IWDG_STDBY + + 0x12 + 0x1 + RW + + Freeze IWDG counter in standby mode + IWDG counter active in standby mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + 0x1 + + + SWAP_BANK + + 0x14 + 0x1 + RW + + Bank 1 and bank 2 address are not swapped + Bank 1 and bank 2 address are swapped + + 0x0 + + + DBANK + Dual-bank on 1-Mbyte and 512-Kbyte Flash memory devices + 0x15 + 0x1 + RW + + Single bank Flash with contiguous address in bank 1 + Dual-bank Flash with contiguous addresses + + 0x1 + + + BKPRAM_ECC + SRAM2 parity check enable + 0x16 + 0x1 + RW + + Backup RAM ECC check enabled + Backup RAM ECC check disabled + + 0x1 + + + SRAM3_ECC + SRAM3 ECC detection and correction enable + 0x17 + 0x1 + RW + + SRAM3 ECC check enabled + SRAM3 ECC check disabled + + 0x1 + + + SRAM2_ECC + SRAM2 ECC detection and correction enable + 0x18 + 0x1 + RW + + SRAM2 ECC check enabled + SRAM2 ECC check disabled + + 0x1 + + + SRAM2_RST + SRAM2 Erase when system reset + 0x19 + 0x1 + RW + + SRAM2 erased when a system reset occurs + SRAM2 is not erased when a system reset occurs + + 0x1 + + + nSWBOOT0 + Software BOOT0 + 0x1A + 0x1 + RW + + BOOT0 taken from the option bit nBOOT0 + BOOT0 taken from PH3/BOOT0 pin + + 0x1 + + + nBOOT0 + nBOOT0 option bit + 0x1B + 0x1 + RW + + nBOOT0 = 0 + nBOOT0 = 1 + + 0x1 + + + PA15_PUPEN + PA15 pull-up enable + 0x1C + 0x1 + RW + + USB power delivery dead-battery enabled/ TDI pull-up deactivated + USB power delivery dead-battery disabled/ TDI pull-up activated + + 0x1 + + + IO_VDD_HSLV + High-speed IO at low VDD voltage configuration bit + 0x1D + 0x1 + RW + + High-speed IO at low VDD voltage feature disabled (VDD can exceed 2.5 V) + High-speed IO at low VDD voltage feature enabled (VDD remains below 2.5 V) + + 0x0 + + + IO_VDDIO2_HSLV + High-speed IO at low VDDIO2 voltage configuration bit + 0x1E + 0x1 + RW + + High-speed IO at low VDDIO2 voltage feature disabled (VDDIO2 can exceed 2.5 V) + High-speed IO at low VDDIO2 voltage feature enabled (VDDIO2 remains below 2.5 V) + + 0x0 + + + + + + Boot Configuration + + + + + NSBOOTADD0 + Non-secure Boot base address 0 + 0x7 + 0x19 + RW + + 0x100000 + + + + + + + + NSBOOTADD1 + Non-secure Boot base address 1 + 0x7 + 0x19 + RW + + 0x17F200 + + + + + + + + SECBOOTADD0 + Secure boot base address 0 + 0x7 + 0x19 + RW + + 0x180000 + + + + + + + + BOOT_LOCK + The boot is always forced to base address value programmed in SECBOOTADD0 + 0x0 + 0x1 + RW + + Boot based on the pad/option bit configuration + Boot forced from base address memory + + 0x0 + + + + + + + + SECWM1_PSTRT + Start page of first secure area + 0x0 + 0x7 + RW + + 0x0 + + + SECWM1_PEND + End page of first secure area + 0x10 + 0x7 + RW + + 0x7F + + + + + + + + HDP1_PEND + End page of first hide protection area + 0x10 + 0x7 + RW + + 0x0 + + + HDP1EN + Hide protection first area enable + 0x1F + 0x1 + RW + + No HDP area 1 + HDP first area is enabled + + 0x0 + + + + + + Write Protection 1 + + + + + WRP1A_PSTRT + Bank 1 WPR first area "A" start page + 0x0 + 0x7 + RW + + 0x7F + + + WRP1A_PEND + Bank 1 WPR first area "A" end page + 0x10 + 0x7 + RW + + 0x0 + + + UNLOCK_1A + Bank 1 WPR first area A unlock + 0x1F + 0x1 + RW + + WRP1A start and end pages locked + WRP1A start and end pages unlocked + + 0x1 + + + + + + + + WRP1B_PSTRT + Bank 1 WPR first area "B" start page + 0x0 + 0x7 + RW + + 0x7F + + + WRP1B_PEND + Bank 1 WPR first area "B" end page + 0x10 + 0x7 + RW + + 0x0 + + + UNLOCK_1B + Bank 1 WPR first area B unlock + 0x1F + 0x1 + RW + + WRP1B start and end pages locked + WRP1B start and end pages unlocked + + 0x1 + + + + + + Secure Area 2 + + + + + SECWM2_PSTRT + Start page of second secure area + 0x0 + 0x7 + RW + + 0x7F + + + SECWM2_PEND + End page of second secure area + 0x10 + 0x7 + RW + + 0x0 + + + + + + + + HDP2_PEND + End page of second hide protection area + 0x10 + 0x7 + RW + + 0x0 + + + HDP2EN + Hide protection second area enable + 0x1F + 0x1 + RW + + No HDP area 2 + HDP second area is enabled + + 0x0 + + + + + + + + + Write Protection 2 + + + + + WRP2A_PSTRT + Bank 2 WPR first area "A" start page + 0x0 + 0x7 + RW + + 0x7F + + + WRP2A_PEND + Bank 2 WPR first area "A" end page + 0x10 + 0x7 + RW + + 0x0 + + + UNLOCK_2A + Bank 2 WPR first area A unlock + 0x1F + 0x1 + RW + + WRP2A start and end pages locked + WRP2A start and end pages unlocked + + 0x1 + + + + + + + + WRP2B_PSTRT + Bank 2 WPR first area "B" start page + 0x0 + 0x7 + RW + + 0x7F + + + WRP2B_PEND + Bank 2 WPR first area "B" end page + 0x10 + 0x7 + RW + + 0x0 + + + UNLOCK_2B + Bank 2 WPR first area B unlock + 0x1F + 0x1 + RW + + WRP2B start and end pages locked + WRP2B start and end pages unlocked + + 0x1 + + + + + + OEM Keys + + + + + KEYSDIVERS + 0x0 + 0x20 + RW + 0x0 + + + + + + + + OEM1KEY [0:31] + OEM1 least significant bytes key + 0x0 + 0x20 + RW + + 0x0 + + + + + + + + OEM1KEY [63:32] + OEM1 most significant bytes key + 0x0 + 0x20 + RW + + 0x0 + + + + + + + + OEM2KEY [0:31] + OEM2 least significant bytes key + 0x0 + 0x20 + RW + + 0x0 + + + + + + + + OEM2KEY [63:32] + OEM2 most significant bytes key + 0x0 + 0x20 + RW + + 0x0 + + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x483.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x483.xml new file mode 100644 index 0000000..607c8ff --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x483.xml @@ -0,0 +1,459 @@ + + + + 0x483 + STMicroelectronics + MCU + Cortex-M7 + STM32H72x/STM32H73x + STM32H7 + ARM 32-bit Cortex-M7 based device + + + + + + + + + + Embedded SRAM + Storage + + 0x00 + RWE + + + + + Single + + + + + + + + + + Embedded Flash + Storage + The Flash memory interface manages AXI accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms + 0xFF + RWE + + + + + + + Single + 0x20 + + + + + + + + + + Option Bytes + Configuration + + RW + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x8 + 0x8 + RW + + Level 0, no protection + or any value other than 0xAA and 0xCC: Level 1, read protection + Level 2, chip protection + + 0xAA + + + + + + BOR Level + + + + + BOR_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0x2 + 0x2 + RW + + reset level is set to 0.0 V + reset level is set to 2.1 V + reset level is set to 2.4 V + reset level is set to 2.7 V + + 0x0 + + + + + + User Configuration + + + + + IWDG1_SW + + 0x4 + 0x1 + RW + + Independent watchdog is controlled by hardware + Independent watchdog is controlled by software + + 0x1 + + + NRST_STOP_D1 + + 0x6 + 0x1 + RW + + STOP mode on Domain 1 is entering with reset + STOP mode on Domain 1 is entering without reset + + 0x1 + + + NRST_STBY_D1 + + 0x7 + 0x1 + RW + + STANDBY mode on Domain 1 is entering with reset + STANDBY mode on Domain 1 is entering without reset + + 0x1 + + + IO_HSLV + + 0x1D + 0x1 + RW + + Product working in the full voltage range, I/O speed optimization at low-voltage disabled + Product operating below 2.5 V, I/O speed optimization at low-voltage feature allowed + + 0x0 + + + IWDG_FZ_STOP + + 0x11 + 0x1 + RW + + Independent watchdog is freezed in STOP mode + Independent watchdog is running in STOP mode + + 0x1 + + + + IWDG_FZ_SDBY + + 0x12 + 0x1 + RW + + Independent watchdog is freezed in STANDBY mode + Independent watchdog is running in STANDBY mode + + 0x1 + + + ST_RAM_SIZE + + 0x13 + 0x2 + RW + + 2 KB reserved to ST code + 4 KB reserved to ST code + 8 KB reserved to ST code + 16 KB reserved to ST code + + 0x3 + + + SECURITY + + 0x15 + 0x1 + RW + + Security feature disabled + Security feature enabled + + 0x0 + + + + + + + + TCM_AXI_SHARED + This bitfield configures the ITCM memory size and the AXI system RAM + 0x0 + 0x2 + RW + + 64-Kbyte ITCM / 320 Kbyte system AXI + 128-Kbyte ITCM / 256-Kbyte system AXI + 192-Kbyte ITCM / 192-Kbyte system AXI + 256-Kbyte ITCM / 128-Kbyte system AXI + + 0x0 + + + CPUFREQ_BOOST + This bit configures whether the CPU frequency can be boosted or not. When it is set, the ECC on ITCM and DTCM are no more used + 0x2 + 0x1 + RW + + + + + + 0x0 + + + + + + PCROP Protection + + + + + PROT_AREA_START + Flash Bank PCROP start address + 0x0 + 0xC + RW + + 0x0FF + + + PROT_AREA_END + Flash Bank PCROP End address (excluded). Deactivation of PCROP can be done by enbaling DMEP bit and changing RDP from level 1 to level 0 while putting end address greater than start address + 0x10 + 0xC + RW + + 0x0 + + + DMEP + + 0x1F + 0x1 + RW + + Flash Bank PCROP zone is kept when RDP level regression (change from level 1 to 0) occurs + Flash Bank PCROP zone is erased when RDP level regression (change from level 1 to 0) occurs + + 0x0 + + + + + + Secure Protection + + + + + SEC_AREA_START + Flash secure area start address + 0x0 + 0xC + RW + + 0xFF + + + SEC_AREA_END + Flash secure area end address. If this address is equal to SEC_AREA_START, the whole flash memory is secure protected.If this address is lower than SEC_AREA_START, no protection is set on flash memory. + 0x10 + 0xC + RW + + 0x0 + + + DMES + + 0x1F + 0x1 + RW + + Flash secure area is kept when RDP level regression (change from level 1 to 0) occurs + Flash secure area is erased when RDP level regression (change from level 1 to 0) occurs + + 0x1 + + + + + + Write Protection + + + + + nWRP0 + + 0x0 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP1 + + 0x1 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP2 + + 0x2 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP3 + + 0x3 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP4 + + 0x4 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP5 + + 0x5 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP6 + + 0x6 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + nWRP7 + + 0x7 + 0x1 + RW + + Write protection active + Write protection not active + + 0x1 + + + + + + TCM_AXI Shared Configuration + + + + + BOOT_CM_ADD0 + + 0x0 + 0x10 + RW + + 0x0800 + + + BOOT_CM_ADD1 + + 0x10 + 0x10 + RW + + 0x1FF0 + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x495.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x495.xml new file mode 100644 index 0000000..665d7c0 --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x495.xml @@ -0,0 +1,573 @@ + + + + 0x495 + STMicroelectronics + MCU + Cortex-M0+/M4 + STM32WB5x/35xx + STM32WB + ARM 32-bit Cortex-M0+ and ARM 32-bit Cortex-M4 dual core based device + + + + + + + + + Embedded SRAM + Storage + + 0xFF + RWE + + + + + Single + + + + + + + + + + Embedded Flash + Storage + The Flash memory interface manages CPU AHB I-Code and D-Code accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms + 0xFF + RWE + + + + + + + + + Single + 0x8 + + + + + + + + + + OTP + Storage + The Data OTP memory block. It contains the one time programmable bits. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + MirrorOptionBytes + Storage + Mirror Option Bytes contains the extra area. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + Option Bytes + Configuration + + RW + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + or any value other than 0xAA and 0xCC: Level 1, read protection + Level 2, chip protection + + 0xAA + + + + + + BOR Level + + + + + BOR_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0x9 + 0x3 + RW + + BOR Level 0 reset level threshold is around 1.7 V + BOR Level 1 reset level threshold is around 2.0 V + BOR Level 2 reset level threshold is around 2.2 V + BOR Level 3 reset level threshold is around 2.5 V + BOR Level 4 reset level threshold is around 2.8 V + + 0x0 + + + + + + User Configuration + + + + + nBOOT0 + + 0x1B + 0x1 + RW + + nBOOT0=0 Boot selected based on nBOOT1 + nBOOT0=1 Boot from main Flash + + 0x1 + + + nBOOT1 + + 0x17 + 0x1 + RW + + Boot from code area if BOOT0=0 otherwise embedded SRAM + Boot from code area if BOOT0=0 otherwise system Flash + + 0x1 + + + nSWBOOT0 + + 0x1A + 0x1 + RW + + BOOT0 taken from the option bit nBOOT0 + BOOT0 taken from PH3/BOOT0 pin + + 0x1 + + + SRAM2_RST + + 0x19 + 0x1 + RW + + SRAM2 erased when a system reset occurs + SRAM2 is not erased when a system reset occurs + + 0x0 + + + SRAM2_PE + + 0x18 + 0x1 + RW + + SRAM2 parity check enable + SRAM2 parity check disable + + 0x1 + + + nRST_STOP + + 0xC + 0x1 + RW + + Reset generated when entering the Stop mode + No reset generated when entering the Stop mode + + 0x1 + + + nRST_STDBY + + 0xD + 0x1 + RW + + Reset generated when entering the Standby mode + No reset generated when entering the Standby mode + + 0x1 + + + nRST_SHDW + + 0xE + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + 0x1 + + + IWDG_STDBY + + 0x12 + 0x1 + RW + + Independent watchdog counter frozen in Standby mode + Independent watchdog counter running in Standby mode + + 0x1 + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Independent watchdog counter frozen in Stop mode + Independent watchdog counter running in Stop mode + + 0x1 + + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independent watchdog + Software independent watchdog + + 0x1 + + + + + + + + IPCCDBA + IPCC mailbox data buffer base address + 0x0 + 0xE + RW + 0x0 + + + + + + Security Configuration Option bytes - 1 + + + + + ESE + + 0x8 + 0x1 + R + + Security disabled + Security enabled + + 0x1 + + + + + + PCROP Protection + + + + + PCROP1A_STRT + Flash Area 1 PCROP start address + 0x0 + 0x9 + RW + + 0x1FF + + + + + + + + PCROP1A_END + Flash Area 1 PCROP End address. Deactivation of PCROP can be done by enabling PCROP_RDP and changing RDP. from level 1 to level 0. + 0x0 + 0x9 + RW + + 0x0 + + + PCROP_RDP + + 0x1F + 0x1 + RW + + PCROP zone is kept when RDP is decreased + PCROP zone is erased when RDP is decreased + + 0x1 + + + + + + + + PCROP1B_STRT + Flash Area 2 PCROP start address + 0x0 + 0x9 + RW + + 0x1FF + + + + + + + + PCROP1B_END + Flash Area 2 PCROP End address. Deactivation of PCROP can be done by enabling PCROP_RDP and changing RDP. from level 1 to level 0. + 0x0 + 0x9 + RW + + 0x0 + + + + + + Write Protection + + + + + WRP1A_STRT + The address of the first page of the Bank 1 WRP first area + 0x0 + 0x8 + RW + + 0xFF + + + WRP1A_END + The address of the last page of the Bank 1 WRP first area + 0x10 + 0x8 + RW + + 0x00 + + + + + + + + WRP1B_STRT + The address of the first page of the Bank 1 WRP second area + 0x0 + 0x8 + RW + + 0xFF + + + WRP1B_END + The address of the last page of the Bank 1 WRP second area + 0x10 + 0x8 + RW + + 0x0 + + + + + + + + + Security Configuration Option bytes - 2 + + + + + SFSA + Secure Flash start address + 0x0 + 0x8 + RW + + 0x0 + + + FSD + + 0x8 + 0x1 + RW + + System and Flash secure + System and Flash non-secure + + 0x0 + + + DDS + + 0xC + 0x1 + RW + + CPU2 debug access enabled + CPU2 debug access disabled + + 0x1 + + + + + + + + C2OPT + + 0x1F + 0x1 + RW + + SBRV will address SRAM2 + SBRV will address Flash + + 0x0 + + + NBRSD + If FSD=1 : SRAM2b is non-secure. If FSD=0 : + 0x1E + 0x1 + RW + + SRAM2b is secure + SRAM2b is non-secure + + 0x0 + + + SNBRSA + SNBRSA[4:0] contains the start address of the first 1K page of the secure non-backup SRAM2b area. + 0x19 + 0x5 + RW + + 0x0 + + + BRSD + If FSD=1 : SRAM2a is non-secure. If FSD=0 : + 0x17 + 0x1 + RW + + SRAM2a is secure + SRAM2a is non-secure + + 0x0 + + + SBRSA + SBRSA[4:0] contains the start address of the first 1K page of the secure backup SRAM2a area. + 0x12 + 0x5 + RW + + 0x0 + + + SBRV + Contains the word aligned CPU2 boot reset start address offset within the selected. memory area by C2OPT. + 0x0 + 0x12 + RW + + 0x0 + + + + + + + + + \ No newline at end of file diff --git a/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x497.xml b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x497.xml new file mode 100644 index 0000000..c1e116f --- /dev/null +++ b/Programmer/FastROM_Data_Base/STM32_Prog_DB_0x497.xml @@ -0,0 +1,621 @@ + + + + 0x497 + STMicroelectronics + MCU + Cortex-M0+/M4 + STM32WLxx + STM32WL + ARM 32-bit Cortex-M0+ and ARM 32-bit Cortex-M4 dual core based device + + + + + + + + + + Embedded SRAM + Storage + + 0x00 + RWE + + + + + Single + + + + + + + + + + Embedded Flash + Storage + The Flash memory interface manages CPU AHB I-Code and D-Code accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms + 0xFF + RWE + + + + + + + Single + 0x8 + + + + + + + + + + OTP + Storage + The Data OTP memory block. It contains the one time programmable bits. + 0xFF + RW + + + + + Single + 0x8 + + + + + + + + + + MirrorOptionBytes + Storage + Mirror Option Bytes contains the extra area. + 0xFF + RW + + + + + Single + 0x4 + + + + + + + + + + Option Bytes + Configuration + + RW + + + + Read Out Protection + + + + + RDP + Read protection option byte. The read protection is used to protect the software code stored in Flash memory. + 0x0 + 0x8 + RW + + Level 0, no protection + or any value other than 0xAA and 0xCC: Level 1, read protection + Level 2, chip protection + + 0xAA + + + + + + BOR Level + + + + + BOR_LEV + These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory + 0x9 + 0x3 + RW + + BOR Level 0 reset level threshold is around 1.7 V + BOR Level 1 reset level threshold is around 2.0 V + BOR Level 2 reset level threshold is around 2.2 V + BOR Level 3 reset level threshold is around 2.5 V + BOR Level 4 reset level threshold is around 2.8 V + + 0x0 + + + + + + User Configuration + + + + + nBOOT0 + + 0x1B + 0x1 + RW + + nBOOT0=0 + nBOOT0=1 + + 0x1 + + + nBOOT1 + Together with the BOOT0 pin or option bit nBOOT0, this bit selects boot mode from the user Flash memory, SRAM1 or system Flash memory . Refer to Reference Manual: Boot configuration Section. + 0x17 + 0x1 + RW + + + + + 0x1 + + + nSWBOOT0 + + 0x1A + 0x1 + RW + + BOOT0 taken from the option bit nBOOT0 + BOOT0 taken from PH3/BOOT0 pin + + 0x1 + + + SRAM_RST + + 0x19 + 0x1 + RW + + SRAM1 and SRAM2 are erased when a system reset occurs + SRAM1 and SRAM2 are not erased when a system reset occurs + + 0x1 + + + SRAM2_PE + + 0x18 + 0x1 + RW + + SRAM2 parity check enable + SRAM2 parity check disable + + 0x1 + + + nRST_STOP + + 0xC + 0x1 + RW + + Reset generated when entering the Stop mode + No reset generated when entering the Stop mode + + 0x1 + + + nRST_STDBY + + 0xD + 0x1 + RW + + Reset generated when entering the Standby mode + No reset generated when entering the Standby mode + + 0x1 + + + nRST_SHDW + + 0xE + 0x1 + RW + + Reset generated when entering the Shutdown mode + No reset generated when entering the Shutdown mode + + 0x1 + + + WWDG_SW + + 0x13 + 0x1 + RW + + Hardware window watchdog + Software window watchdog + + 0x1 + + + IWGD_STDBY + + 0x12 + 0x1 + RW + + Independent watchdog counter frozen in Standby mode + Independent watchdog counter running in Standby mode + + 0x1 + + + IWDG_STOP + + 0x11 + 0x1 + RW + + Independent watchdog counter frozen in Stop mode + Independent watchdog counter running in Stop mode + + 0x1 + + + IWDG_SW + + 0x10 + 0x1 + RW + + Hardware independent watchdog + Software independent watchdog + + 0x1 + + + BOOT_LOCK + + 0x1E + 0x1 + RW + + CPU1 CM4 Boot lock disabled + CPU1 CM4 Boot lock enabled + + 0x0 + + + C2BOOT_LOCK + + 0x1F + 0x1 + RW + + CPU2 CM0+ Boot lock disabled + CPU2 CM0+ Boot lock enabled + + 0x0 + + + + + + Security Configuration Option bytes ESE + + + + + ESE + + 0x8 + 0x1 + RW + + Security disabled + Security enabled + + 0x0 + + + + + + PCROP Protection + + + + + PCROP1A_STRT + PCROP1A_STRT[7:0] contain the first included 1kB page readout protected of the Flash area zone A + 0x0 + 0x8 + RW + + 0xFF + + + + + + + + PCROP1A_END + PCROP1A_END[7:0] contain the last included 1kB page readout protected of the Flash area zone A + 0x0 + 0x8 + RW + + 0x0 + + + PCROP_RDP + + 0x1F + 0x1 + RW + + PCROP zone is kept when RDP is decreased + PCROP zone is erased when RDP is decreased + + 0x1 + + + + + + + + + WRP1A_STRT + WRP1A_STRT[6:0] contain the first included 2kB page write protected of the Flash area zone A. + 0x0 + 0x7 + RW + + 0x7F + + + WRP1A_END + WRP1A_END[6:0] contain the last included 2kB page write protected of the Flash area zone A. + 0x10 + 0x7 + RW + + 0x0 + + + + + + + + WRP1B_STRT + WRP1B_STRT[6:0] contain the first included 2kB page write protected of the Flash area zone B. + 0x0 + 0x7 + RW + + 0x7F + + + WRP1B_END + WRP1B_END[6:0] contain the last included 2kB page write protected of the Flash area zone B. + 0x10 + 0x7 + RW + + 0x0 + + + + + + + + PCROP1B_STRT + PCROP1B_STRT[7:0] contain the first included 1kB page readout protected of the Flash area zone B + 0x0 + 0x8 + RW + + 0xFF + + + + + + + + PCROP1B_END + PCROP1B_END[7:0] contain the last included 1kB page readout protected of the Flash area zone B + 0x0 + 0x8 + RW + + 0x0 + + + + + + Write Protection + + + + + IPCCDBA + IPCC mailbox data buffer base address + 0x0 + 0xE + RW + 0x3FFF + + + + + + + + SFSA + This bit can only be accessed by software when HDPADIS = 0. When FSD=0: system and Flash secure. SFSA[6:0] contain the start address of the first 2 kB page of the secure Flash area. + 0x0 + 0x7 + RW + 0x7F + + + FSD + + 0x7 + 0x1 + RW + + System and Flash secure. This bit can only be accessed when HDPADIS = 0 + System and Flash non-secure. This bit can only be accessed when HDPADIS = 0 + + 0x1 + + + DDS + + 0xC + 0x1 + RW + + CPU2 debug access enabled (when also enabled by C2SWDBGEN) + CPU2 debug access disabled (when also enabled by C2SWDBGEN) + + 0x0 + + + HDPSA + HDPSA[6:0] contain the start address of the first 2 kB page of the User Flash hide protection area. This bit field can only be accessed by software when HDPADIS = 0. When FSD=0 and HDPAD = 0: User Flash hide protection area enabled. + 0x10 + 0x7 + RW + 0x7F + + + HDPAD + User Flash hide protection area disabled. This bit can only be accessed by software when HDPADIS = 0 + 0x17 + 0x1 + RW + + User Flash hide protection area access enabled. + User Flash hide protection area access disabled. + + 0x1 + + + + SUBGHSPISD + SPI3 security disable. This bit can only be accessed by software when HDPADIS = 0. FSD=1: SPI3 security is disabled + 0x1F + 0x1 + RW + + FSD=0 and SUBGHSPISD=0: SPI3 security enabled + FSD=0 and SUBGHSPISD=1: SPI3 security disabled + + 0x1 + + + + + + + + + C2OPT + + 0x1F + 0x1 + RW + + SBRV will address SRAM1 or SRAM2, from start address 0x2000 0000 + SBRV. + SBRV will address Flash memory, from start address 0x0800 0000 + SBRV. + + 0x1 + + + NBRSD + + 0x1E + 0x1 + RW + + SRAM1 is secure if FSD=0 and non-secure otherwise. This bit can only be accessed when HDPADIS = 0 + SRAM1 is non-secure if FSD=0 and secure otherwise. This bit can only be accessed when HDPADIS = 0 + + 0x1 + + + SNBRSA + SNBRSA[4:0] contain the start address of the first 1 kB page of the secure "non-backup" SRAM1 area. To keep the tool working you have to set a value greater or equal to 0xC + 0x19 + 0x5 + RW + 0x1F + + + BRSD + + 0x17 + 0x1 + RW + + SRAM2 is secure if FSD=0 and non-secure otherwise. This bit can only be accessed when HDPADIS = 0 + SRAM2 is non-secure if FSD=0 and secure otherwise. This bit can only be accessed when HDPADIS = 0 + + 0x1 + + + SBRSA + SBRSA[4:0] contain the start address of the first 1 kB page of the secure backup SRAM2 area. To keep the tool working you have to set a value less than 0x15 + 0x12 + 0x5 + RW + 0x1F + + + SBRV + SBRV[15:0] contain the word (4B) aligned CPU2 boot reset start address offset within the selected memory area by C2OPT. + 0x0 + 0x10 + RW + 0x8000 + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index dec3e83..7ae8057 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,21 @@ [![Logo](https://raw.githubusercontent.com/k-society/KSociety.SharpCubeProgrammer/master/docs/K-Society__Logo_vs-negative.png)](https://github.com/K-Society) + [![build status](https://img.shields.io/github/actions/workflow/status/K-Society/KSociety.SharpCubeProgrammer/build.yml?branch=develop)](https://github.com/K-Society/KSociety.SharpCubeProgrammer/actions/workflows/build.yml?query=branch%3Adevelop) [![latest version](https://img.shields.io/nuget/v/KSociety.SharpCubeProgrammer)](https://www.nuget.org/packages/KSociety.SharpCubeProgrammer) [![download count](https://img.shields.io/nuget/dt/KSociety.SharpCubeProgrammer)](https://www.nuget.org/stats/packages/KSociety.SharpCubeProgrammer?groupby=Version) + + [KSociety.SharpCubeProgrammer Home](https://github.com/K-Society/KSociety.SharpCubeProgrammer) # KSociety.SharpCubeProgrammer KSociety.SharpCubeProgrammer is a wrapper for CubeProgrammer_API v2.15.0. + +First unofficial and open source C# wrapper. + + It makes use of several 3rd party tools: - STM32 Cube Programmer @@ -30,6 +37,7 @@ STM32CubeProgrammer_API C# wrapper, the first wrapper for C#. Any suggestions ar ## Get Packages You can get KSociety.SharpCubeProgrammer by [grabbing the latest NuGet package](https://www.nuget.org/packages/KSociety.SharpCubeProgrammer/). +You need to use _PackageReference_, otherwise some contents will not be copied to the output folder and consequently it will not work. ## Currently supported features @@ -40,8 +48,15 @@ You can get KSociety.SharpCubeProgrammer by [grabbing the latest NuGet package]( - Reset ## Bootloader functions +- GetUsartList +- ConnectUsartBootloader +- SendByteUart - GetDfuDeviceList - ConnectDfuBootloader +- ConnectDfuBootloader2 +- ConnectSpiBootloader +- ConnectCanBootloader +- ConnectI2CBootloader ## General purposes functions - SetDisplayCallbacks @@ -120,7 +135,7 @@ You can get KSociety.SharpCubeProgrammer by [grabbing the latest NuGet package]( ## Get Started -Examples include the QuickStart project, is a very basic example. +Examples include the [QuickStart](https://github.com/K-Society/KSociety.SharpCubeProgrammer/tree/master/src/01/Samples/QuickStart) project, is a very basic example. - Creates a new instance of the CharpCubeProgrammer class: @@ -245,5 +260,5 @@ The project is under Microsoft Reciprocal License [(MS-RL)](http://www.opensourc List of technologies, frameworks and libraries used for implementation: -- [Microsoft.Bcl.AsyncInterfaces](https://www.nuget.org/packages/Microsoft.Bcl.AsyncInterfaces) +- [Microsoft.Bcl.AsyncInterfaces](https://www.nuget.org/packages/Microsoft.Bcl.AsyncInterfaces) for .NET Standard 2.0 only. - [Microsoft.Extensions.Logging.Abstractions](https://www.nuget.org/packages/Microsoft.Extensions.Logging.Abstractions) \ No newline at end of file diff --git a/docs/KSociety.SharpCubeProgrammer/README.md b/docs/KSociety.SharpCubeProgrammer/README.md index e806e2e..91f6d28 100644 --- a/docs/KSociety.SharpCubeProgrammer/README.md +++ b/docs/KSociety.SharpCubeProgrammer/README.md @@ -8,6 +8,10 @@ KSociety.SharpCubeProgrammer is a wrapper for CubeProgrammer_API v2.15.0. + +First unofficial and open source C# wrapper. + + It makes use of several 3rd party tools: - STM32 Cube Programmer @@ -29,6 +33,7 @@ STM32CubeProgrammer_API C# wrapper, the first wrapper for C#. Any suggestions ar ## Get Packages You can get KSociety.SharpCubeProgrammer by [grabbing the latest NuGet package](https://www.nuget.org/packages/KSociety.SharpCubeProgrammer/). +You need to use _PackageReference_, otherwise some contents will not be copied to the output folder and consequently it will not work. ## Currently supported features @@ -39,8 +44,15 @@ You can get KSociety.SharpCubeProgrammer by [grabbing the latest NuGet package]( - Reset ## Bootloader functions +- GetUsartList +- ConnectUsartBootloader +- SendByteUart - GetDfuDeviceList - ConnectDfuBootloader +- ConnectDfuBootloader2 +- ConnectSpiBootloader +- ConnectCanBootloader +- ConnectI2CBootloader ## General purposes functions - SetDisplayCallbacks @@ -118,7 +130,7 @@ You can get KSociety.SharpCubeProgrammer by [grabbing the latest NuGet package]( | MSVC v143 - VS 2022 C++ x64/x86 | ## Get Started -Examples include the QuickStart project, is a very basic example. +Examples include the [QuickStart](https://github.com/K-Society/KSociety.SharpCubeProgrammer/tree/master/src/01/Samples/QuickStart) project, is a very basic example. - Creates a new instance of the CharpCubeProgrammer class: @@ -243,5 +255,5 @@ The project is under Microsoft Reciprocal License [(MS-RL)](http://www.opensourc List of technologies, frameworks and libraries used for implementation: -- [Microsoft.Bcl.AsyncInterfaces](https://www.nuget.org/packages/Microsoft.Bcl.AsyncInterfaces) +- [Microsoft.Bcl.AsyncInterfaces](https://www.nuget.org/packages/Microsoft.Bcl.AsyncInterfaces) for .NET Standard 2.0 only. - [Microsoft.Extensions.Logging.Abstractions](https://www.nuget.org/packages/Microsoft.Extensions.Logging.Abstractions) \ No newline at end of file diff --git a/src/01/KSociety.SharpCubeProgrammer/CubeProgrammerApi.cs b/src/01/KSociety.SharpCubeProgrammer/CubeProgrammerApi.cs index a41bf3e..ab89664 100644 --- a/src/01/KSociety.SharpCubeProgrammer/CubeProgrammerApi.cs +++ b/src/01/KSociety.SharpCubeProgrammer/CubeProgrammerApi.cs @@ -187,21 +187,69 @@ public CubeProgrammerError Reset(DebugResetMode rstMode) //Bootloader module is a way to group Serial interfaces USB/UART/SPI/I2C/CAN function together. /// - public void GetUsartList() + public IEnumerable GetUsartList() { - throw new NotImplementedException(); + var listPtr = new IntPtr(); + var parametersList = new List(); + try + { + var size = Marshal.SizeOf(); + var numberOfItems = Native.ProgrammerApi.GetUsartList(ref listPtr); + if (listPtr != IntPtr.Zero) + { + for (var i = 0; i < numberOfItems; i++) + { + var currentItem = Marshal.PtrToStructure(listPtr + (i * size)); + parametersList.Add(currentItem); + Marshal.DestroyStructure(listPtr + (i * size)); + } + } + else + { + this._logger?.LogWarning("GetUsartList IntPtr: {0}!", "Zero"); + } + } + catch (Exception ex) + { + this._logger?.LogError(ex, "GetUsartList: "); + } + return parametersList; } /// - public void ConnectUsartBootloader() + public CubeProgrammerError ConnectUsartBootloader(UsartConnectParameters usartConnectParameters) { - throw new NotImplementedException(); + var output = CubeProgrammerError.CubeprogrammerErrorOther; + + try + { + var connectUsartResult = Native.ProgrammerApi.ConnectUsartBootloader(usartConnectParameters); + + output = this.CheckResult(connectUsartResult); + } + catch (Exception ex) + { + this._logger?.LogError(ex, "ConnectUsartBootloader: "); + } + + return output; } /// - public void SendByteUart() + public CubeProgrammerError SendByteUart(int bytes) { - throw new NotImplementedException(); + var output = CubeProgrammerError.CubeprogrammerErrorOther; + try + { + var connectUsartResult = Native.ProgrammerApi.SendByteUart(bytes); + + output = this.CheckResult(connectUsartResult); + } + catch (Exception ex) + { + this._logger?.LogError(ex, "SendByteUart: "); + } + return output; } /// @@ -259,27 +307,87 @@ public CubeProgrammerError ConnectDfuBootloader(string usbIndex) } /// - public void ConnectDfuBootloader2() + public CubeProgrammerError ConnectDfuBootloader2(DfuConnectParameters dfuParameters) { - throw new NotImplementedException(); + var output = CubeProgrammerError.CubeprogrammerErrorOther; + try + { + var connectDfuBootloader2Result = Native.ProgrammerApi.ConnectDfuBootloader2(dfuParameters); + if (connectDfuBootloader2Result != 0) + { + this.Disconnect(); + } + + output = this.CheckResult(connectDfuBootloader2Result); + } + catch (Exception ex) + { + this._logger?.LogError(ex, "ConnectDfuBootloader2: "); + } + return output; } /// - public void ConnectSpiBootloader() + public CubeProgrammerError ConnectSpiBootloader(SpiConnectParameters spiParameters) { - throw new NotImplementedException(); + var output = CubeProgrammerError.CubeprogrammerErrorOther; + try + { + var connectSpiBootloaderResult = Native.ProgrammerApi.ConnectSpiBootloader(spiParameters); + if (connectSpiBootloaderResult != 0) + { + this.Disconnect(); + } + + output = this.CheckResult(connectSpiBootloaderResult); + } + catch (Exception ex) + { + this._logger?.LogError(ex, "ConnectSpiBootloader: "); + } + return output; } /// - public void ConnectCanBootloader() + public CubeProgrammerError ConnectCanBootloader(CanConnectParameters canParameters) { - throw new NotImplementedException(); + var output = CubeProgrammerError.CubeprogrammerErrorOther; + try + { + var connectCanBootloaderResult = Native.ProgrammerApi.ConnectCanBootloader(canParameters); + if (connectCanBootloaderResult != 0) + { + this.Disconnect(); + } + + output = this.CheckResult(connectCanBootloaderResult); + } + catch (Exception ex) + { + this._logger?.LogError(ex, "ConnectCanBootloader: "); + } + return output; } /// - public void ConnectI2cBootloader() + public CubeProgrammerError ConnectI2CBootloader(I2CConnectParameters i2CParameters) { - throw new NotImplementedException(); + var output = CubeProgrammerError.CubeprogrammerErrorOther; + try + { + var connectI2CBootloaderResult = Native.ProgrammerApi.ConnectI2cBootloader(i2CParameters); + if (connectI2CBootloaderResult != 0) + { + this.Disconnect(); + } + + output = this.CheckResult(connectI2CBootloaderResult); + } + catch (Exception ex) + { + this._logger?.LogError(ex, "ConnectI2CBootloader: "); + } + return output; } #endregion @@ -1414,13 +1522,25 @@ protected override void Dispose(bool disposing) { if (disposing) { - this._handle?.Dispose(); - this._handle = null; + // Free any other managed objects here. } + // Free any unmanaged objects here. + this._handle?.Dispose(); + this._handle = null; + base.Dispose(disposing); } #endregion + + #region [Destructor] + + ~CubeProgrammerApi() + { + this.Dispose(false); + } + + #endregion } // CubeProgrammerApi. } diff --git a/src/01/KSociety.SharpCubeProgrammer/Interface/ICubeProgrammerApi.cs b/src/01/KSociety.SharpCubeProgrammer/Interface/ICubeProgrammerApi.cs index 3dc291e..769a9f3 100644 --- a/src/01/KSociety.SharpCubeProgrammer/Interface/ICubeProgrammerApi.cs +++ b/src/01/KSociety.SharpCubeProgrammer/Interface/ICubeProgrammerApi.cs @@ -51,17 +51,17 @@ public interface ICubeProgrammerApi : IDisposable, IAsyncDisposable /// /// This routine allows to get connected serial ports. /// - void GetUsartList(); + IEnumerable GetUsartList(); /// /// This routine allows to start connection to device through USART interface. /// - void ConnectUsartBootloader(); + CubeProgrammerError ConnectUsartBootloader(UsartConnectParameters usartConnectParameters); /// /// This routine allows to send a single byte through the USART interface. /// - void SendByteUart(); + CubeProgrammerError SendByteUart(int bytes); /// /// This routine allows to get connected DFU devices. @@ -76,22 +76,22 @@ public interface ICubeProgrammerApi : IDisposable, IAsyncDisposable /// /// This routine allows to start connection to device through USB DFU interface. /// - void ConnectDfuBootloader2(); + CubeProgrammerError ConnectDfuBootloader2(DfuConnectParameters dfuParameters); /// /// This routine allows to start connection to device through SPI interface. /// - void ConnectSpiBootloader(); + CubeProgrammerError ConnectSpiBootloader(SpiConnectParameters spiParameters); /// /// This routine allows to start connection to device through CAN interface. /// - void ConnectCanBootloader(); + CubeProgrammerError ConnectCanBootloader(CanConnectParameters canParameters); /// /// This routine allows to start connection to device through I2C interface. /// - void ConnectI2cBootloader(); + CubeProgrammerError ConnectI2CBootloader(I2CConnectParameters i2CParameters); #endregion diff --git a/src/01/KSociety.SharpCubeProgrammer/KSociety.SharpCubeProgrammer.csproj b/src/01/KSociety.SharpCubeProgrammer/KSociety.SharpCubeProgrammer.csproj index cfb9d79..9dadaf9 100644 --- a/src/01/KSociety.SharpCubeProgrammer/KSociety.SharpCubeProgrammer.csproj +++ b/src/01/KSociety.SharpCubeProgrammer/KSociety.SharpCubeProgrammer.csproj @@ -53,6 +53,9 @@ true + + true + diff --git a/src/01/KSociety.Test/KSociety.Test.csproj b/src/01/KSociety.Test/KSociety.Test.csproj index 7508892..7cdb0fb 100644 --- a/src/01/KSociety.Test/KSociety.Test.csproj +++ b/src/01/KSociety.Test/KSociety.Test.csproj @@ -9,16 +9,16 @@ - + - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all