Flash status register (FLASH_SR)
Регистр состояния flash-памяти
Смещение (Address offset): 0x0C
Reset value: 0x0000'0000
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
Reserved | |||||||
--- | --- | --- | --- | --- | --- | --- | --- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
Reserved | |||||||
--- | --- | --- | --- | --- | --- | --- | --- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
Reserved | |||||||
--- | --- | --- | --- | --- | --- | --- | --- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Reserved | EOP | WRPRTERR | Reserved | PGERR | Reserved | BSY | |
--- | --- | r | rw | -- | rw | --- | r |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Устанавливается аппаратно по завершении операции перепрошивки (программирование или стирание). Сбрасывается программно записью "1".
Устанавливается в конце каждой успешной операции.
Устанавливается аппаратно при попытке записи по адресу флэш-памяти, защищенного от записи. Сбрасывается программно записью "1".
Устанавливается аппаратно, если адрес, который необходимо запрограммировать, содержит значение, отличное от '0xFFFF' перед программированием. Сбрасывается программно записью "1".
Бит STRT в регистре FLASH_CR должен быть сброшен перед началом операции программирования.
Указывает, что выполняется операция перепрошивки. Устанавливается аппаратно в начале операции перепрошивки и сбрасывается аппаратно по завершении операции или при возникновении ошибки.
//- stm32F10x.h
/****************** Bit definition for FLASH_SR register *******************/
#define FLASH_SR_BSY ((uint8_t)0x01) /* Busy */
#define FLASH_SR_PGERR ((uint8_t)0x04) /* Programming Error */
#define FLASH_SR_WRPRTERR ((uint8_t)0x10) /* Write Protection Error */
#define FLASH_SR_EOP ((uint8_t)0x20) /* End of operation */
//- stm32f10x_flash.h
typedef enum
{
FLASH_BUSY = 1,
FLASH_ERROR_PG,
FLASH_ERROR_WRP,
FLASH_COMPLETE,
FLASH_TIMEOUT
}FLASH_Status;
#define FLASH_FLAG_BSY ((uint32_t)0x00000001) /* FLASH Busy flag */
#define FLASH_FLAG_PGERR ((uint32_t)0x00000004) /* FLASH Program error flag */
#define FLASH_FLAG_WRPRTERR ((uint32_t)0x00000010) /* FLASH Write protected error flag */
#define FLASH_FLAG_EOP ((uint32_t)0x00000020) /* FLASH End of Operation flag */