65 #define LEVELS_NUMBER 5
71 #define IS_VALID_FREQ(SYS_FREQ) ((SYS_FREQ) <= 100000000)
99 const uint32_t Levels[
LEVELS_NUMBER] = {15000000, 30000000, 48000000, 60000000, 80000000};
103 if (Levels[Index] < SysClkFreq)
113 NT_BOOTFLASH->T_ACC = Tacc;
114 NT_BOOTFLASH->T_PROG = (uint32_t)(SysClkFreq * 0.00003F);
115 NT_BOOTFLASH->T_ERASE = (uint32_t)(SysClkFreq * 0.03F);
116 NT_BOOTFLASH->T_ME = (uint32_t)(SysClkFreq * 0.03F);
131 NT_BOOTFLASH->FCIC = BOOTFLASH_FCIC_CLR_OPCMLT_Msk | BOOTFLASH_FCIC_CLR_OPERROR_Msk;
136 Status = (
BOOTFLASH_Status_TypeDef)(NT_BOOTFLASH->FCIS & (BOOTFLASH_FCIS_OP_CMLT_Msk | BOOTFLASH_FCIS_OP_ERROR_Msk));
160 NT_BOOTFLASH->FCIC = BOOTFLASH_FCIC_CLR_OPCMLT_Msk | BOOTFLASH_FCIC_CLR_OPERROR_Msk;
161 NT_BOOTFLASH->FMA = Address;
162 NT_BOOTFLASH->FMD0 = Data0;
163 NT_BOOTFLASH->FMD1 = Data1;
164 NT_BOOTFLASH->FMD2 = Data2;
165 NT_BOOTFLASH->FMD3 = Data3;
170 Status = (
BOOTFLASH_Status_TypeDef)(NT_BOOTFLASH->FCIS & (BOOTFLASH_FCIS_OP_CMLT_Msk | BOOTFLASH_FCIS_OP_ERROR_Msk));
191 NT_BOOTFLASH->FCIC = BOOTFLASH_FCIC_CLR_OPCMLT_Msk | BOOTFLASH_FCIC_CLR_OPERROR_Msk;
197 Status = (
BOOTFLASH_Status_TypeDef)(NT_BOOTFLASH->FCIS & (BOOTFLASH_FCIS_OP_CMLT_Msk | BOOTFLASH_FCIS_OP_ERROR_Msk));
221 NT_BOOTFLASH->FCIC = BOOTFLASH_FCIC_CLR_OPCMLT_Msk | BOOTFLASH_FCIC_CLR_OPERROR_Msk;
222 NT_BOOTFLASH->FMA = Address;
223 NT_BOOTFLASH->FMD0 = Data0;
224 NT_BOOTFLASH->FMD1 = Data1;
225 NT_BOOTFLASH->FMD2 = Data2;
226 NT_BOOTFLASH->FMD3 = Data3;
231 Status = (
BOOTFLASH_Status_TypeDef)(NT_BOOTFLASH->FCIS & (BOOTFLASH_FCIS_OP_CMLT_Msk | BOOTFLASH_FCIS_OP_ERROR_Msk));
252 NT_BOOTFLASH->FCIC = BOOTFLASH_FCIC_CLR_OPCMLT_Msk | BOOTFLASH_FCIC_CLR_OPERROR_Msk;
258 Status = (
BOOTFLASH_Status_TypeDef)(NT_BOOTFLASH->FCIS & (BOOTFLASH_FCIS_OP_CMLT_Msk | BOOTFLASH_FCIS_OP_ERROR_Msk));
275 NT_BOOTFLASH->FCIM_bit.MASK_OPCMLT = (uint32_t)State;
#define IS_BOOTFLASH_INFO_PAGE_NUM(PAGE_NUM)
Макрос проверки номера страницы информационной области загрузочной флеш на попадание в допустимый диа...
#define IS_VALID_FREQ(SYS_FREQ)
Макрос проверки допустимости значения системной частоты.
BOOTFLASH_Status_TypeDef
Статус работы контроллера загрузочной флеш-памяти.
__RAMFUNC BOOTFLASH_Status_TypeDef BOOTFLASH_Write(uint32_t Address, uint32_t Data0, uint32_t Data1, uint32_t Data2, uint32_t Data3)
Запись 128 бит информации в основную область загрузочной флеш, начиная с указанного адреса...
__RAMFUNC BOOTFLASH_Status_TypeDef BOOTFLASH_FullErase(void)
Полная очистка основной области загрузочной флеш.
__RAMFUNC BOOTFLASH_Status_TypeDef BOOTFLASH_Info_PageErase(uint32_t PageNum)
Стирание указнной страницы информационной области загрузочной флеш.
Файл содержит все прототипы функций для загрузочной флеш.
__RAMFUNC BOOTFLASH_Status_TypeDef BOOTFLASH_Info_Write(uint32_t Address, uint32_t Data0, uint32_t Data1, uint32_t Data2, uint32_t Data3)
Запись 128 бит информации в информационную область загрузочной флеш, начиная с указанного адреса...
#define IS_BOOTFLASH_PAGE_NUM(PAGE_NUM)
Макрос проверки номера страницы основной области загрузочной флеш на попадание в допустимый диапазон...
FunctionalState
Описывает логическое состояние периферии. Используется для операций включения/выключения периферийных...
void BOOTFLASH_ITCmd(FunctionalState State)
Включение прерывания по завершению чтении/записи/стирания.
#define IS_FUNCTIONAL_STATE(STATE)
Макрос проверки аргументов типа FunctionalState.
void BOOTFLASH_Init(uint32_t SysClkFreq)
Инициализирует тайминги доступа для контроллера загрузочной флеш.
#define LEVELS_NUMBER
Количество уровней системной частоты (Таблица 7.3).
__RAMFUNC BOOTFLASH_Status_TypeDef BOOTFLASH_PageErase(uint32_t PageNum)
Стирание указнной страницы основной области загрузочной флеш.
#define BOOTFLASH_MAGIC_KEY
Ключ для проведения операций с контроллером загрузочной флеш.
#define BOOTFLASH_PAGE_SIZE_BYTES