NIIETCM4 PD  v0.7.0
Драйвер периферии для микроконтроллеров на базе ядра ARM Cortex-M4
niietcm4_bootflash.c
См. документацию.
1 
30 /* Includes ------------------------------------------------------------------*/
31 #include "niietcm4_bootflash.h"
32 
75 void BOOTFLASH_Init(uint32_t SysClkFreq)
76 {
77  NT_BOOTFLASH->T_PROG = SysClkFreq*(3e-5);
78  NT_BOOTFLASH->T_ERASE = SysClkFreq*(3e-2);
79  NT_BOOTFLASH->T_ME = SysClkFreq*(3e-2);
80 }
81 
89 {
91 
92  Status = (BOOTFLASH_Status_TypeDef)(NT_BOOTFLASH->FCIS & (FCIS_OP_CMLT_Msk|FCIS_OP_ERROR_Msk));
93 
94  return Status;
95 }
96 
103 {
104  NT_BOOTFLASH->FCIC = FCIC_CLR_OPCMLT_Msk|FCIC_CLR_OPERROR_Msk;
105 }
106 
113 {
114  NT_BOOTFLASH->FMC = BOOTFLASH_MAGIC_KEY | FMC_FULL_ERASE_Msk;
115 }
116 
128 void BOOTFLASH_Write(uint32_t Address, uint32_t Data0, uint32_t Data1, uint32_t Data2, uint32_t Data3)
129 {
130  NT_BOOTFLASH->FMA = Address;
131  NT_BOOTFLASH->FMD1 = Data0;
132  NT_BOOTFLASH->FMD2 = Data1;
133  NT_BOOTFLASH->FMD3 = Data2;
134  NT_BOOTFLASH->FMD4 = Data3;
135  NT_BOOTFLASH->FMC = BOOTFLASH_MAGIC_KEY | FMC_WRITE_Msk;
136 }
137 
144 void BOOTFLASH_PageErase(uint32_t PageNum)
145 {
146  assert_param(IS_BOOTFLASH_PAGE_NUM(PageNum));
147 
148  NT_BOOTFLASH->FMA = PageNum * BOOTFLASH_PAGE_SIZE_BYTES;
149  NT_BOOTFLASH->FMC = BOOTFLASH_MAGIC_KEY | FMC_PAGE_ERASE_Msk;
150 }
151 
163 void BOOTFLASH_Info_Write(uint32_t Address, uint32_t Data0, uint32_t Data1, uint32_t Data2, uint32_t Data3)
164 {
165  NT_BOOTFLASH->FMA = Address;
166  NT_BOOTFLASH->FMD1 = Data0;
167  NT_BOOTFLASH->FMD2 = Data1;
168  NT_BOOTFLASH->FMD3 = Data2;
169  NT_BOOTFLASH->FMD4 = Data3;
170  NT_BOOTFLASH->FMC = BOOTFLASH_MAGIC_KEY | FMC_WRITE_IFB_Msk;
171 }
172 
179 void BOOTFLASH_Info_PageErase(uint32_t PageNum)
180 {
181  assert_param(IS_BOOTFLASH_INFO_PAGE_NUM(PageNum));
182 
183  NT_BOOTFLASH->FMA = PageNum * BOOTFLASH_PAGE_SIZE_BYTES;
184  NT_BOOTFLASH->FMC = BOOTFLASH_MAGIC_KEY | FMC_PAGEERASE_IFB_Msk;
185 }
186 
195 {
196  assert_param(IS_FUNCTIONAL_STATE(State));
197 
198  NT_BOOTFLASH->FCIM_bit.MASK_OPCMLT = (uint32_t)State;
199 }
200 
217 /******************* (C) COPYRIGHT 2015 NIIET *****END OF FILE****/
void BOOTFLASH_Init(uint32_t SysClkFreq)
Инициализирует тайминги доступа для контроллера загрузочной флеш.
FunctionalState
Описывает логическое состояние периферии. Используется для операций включения/выключения периферийных...
Definition: niietcm4.h:157
BOOTFLASH_Status_TypeDef
Статус работы контроллера загрузочной флеш-памяти.
void BOOTFLASH_OperationStatusClear()
Очищает статус работы контроллера загрузочной флэш.
void BOOTFLASH_PageErase(uint32_t PageNum)
Стирание указнной страницы основной области загрузочной флеш.
void BOOTFLASH_Info_PageErase(uint32_t PageNum)
Стирание указнной страницы информационной области загрузочной флеш.
void BOOTFLASH_Write(uint32_t Address, uint32_t Data0, uint32_t Data1, uint32_t Data2, uint32_t Data3)
Запись 128 бит информации в основную область загрузочной флеш, начиная с указанного адреса...
void BOOTFLASH_FullErase()
Полная очистка основной области загрузочной флеш.
#define IS_BOOTFLASH_PAGE_NUM(PAGE_NUM)
Макрос проверки номера страницы основной области загрузочной флеш на попадание в допустимый диапазон...
void BOOTFLASH_Info_Write(uint32_t Address, uint32_t Data0, uint32_t Data1, uint32_t Data2, uint32_t Data3)
Запись 128 бит информации в информационную область загрузочной флеш, начиная с указанного адреса...
void BOOTFLASH_ITCmd(FunctionalState State)
Включение прерывания по завершению чтении/записи/стирания.
Файл содержит все прототипы функций для загрузочной флеш.
#define IS_FUNCTIONAL_STATE(STATE)
Макрос проверки аргументов типа FunctionalState.
Definition: niietcm4.h:167
#define BOOTFLASH_MAGIC_KEY
Ключ для проведения операций с контроллером загрузочной флеш.
BOOTFLASH_Status_TypeDef BOOTFLASH_OperationStatus()
Статус работы контроллера загрузочной флэш.
#define IS_BOOTFLASH_INFO_PAGE_NUM(PAGE_NUM)
Макрос проверки номера страницы информационной области загрузочной флеш на попадание в допустимый диа...
#define BOOTFLASH_PAGE_SIZE_BYTES