RM0016 Contents
Doc ID 14587 Rev 8 3/449
4.5.3 Enabling write access to option bytes . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.6 Memory programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.6.1 Read-while-write (RWW) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.6.2 Byte programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.6.3 Word programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.6.4 Block programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.6.5 Option byte programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.7 ICP and IAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.8 Flash registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.8.1 Flash control register 1 (FLASH_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.8.2 Flash control register 2 (FLASH_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.8.3 Flash complementary control register 2 (FLASH_NCR2) . . . . . . . . . . . 53
4.8.4 Flash protection register (FLASH_FPR) . . . . . . . . . . . . . . . . . . . . . . . . 54
4.8.5 Flash protection register (FLASH_NFPR) . . . . . . . . . . . . . . . . . . . . . . . 54
4.8.6 Flash program memory unprotecting key register (FLASH_PUKR) . . . 54
4.8.7 Data EEPROM unprotection key register (FLASH_DUKR) . . . . . . . . . . 55
4.8.8 Flash status register (FLASH_IAPSR) . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.8.9 Flash register map and reset values . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5 Single wire interface module (SWIM) and debug module (DM) . . . . . 57
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2 Main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3 SWIM modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6 Interrupt controller (ITC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.1 ITC introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.2 Interrupt masking and processing flow . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.2.1 Servicing pending interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.2.2 Interrupt sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.3 Interrupts and low power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.4 Activation level/low power mode control . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.5 Concurrent and nested interrupt management . . . . . . . . . . . . . . . . . . . . 63
6.5.1 Concurrent interrupt management mode . . . . . . . . . . . . . . . . . . . . . . . . 63
6.5.2 Nested interrupt management mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.6 External interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.7 Interrupt instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65