FL-528 GUI: View, ViewDispather. Dolphin: first start. (#276)
* GUI: view. Flooper-blooper fix compilation error. * GUI: view and viewdispatcher bones * GUI: view implementation, view models, view dispatcher * GUI: view navigation, model refinement. Power: use view, view dispatcher. * HAL Flash: proper page write. Dolphin: views. Power: views * Dolphin: transition idle scree to Views * Dolphin: input events on stats view. Format sources. * HAL: flash erase. Dolphin: permanent state storage. * Dolphin: first start welcome. HAL: flash operation status, errata 2.2.9 crutch.
This commit is contained in:
		| @@ -2,14 +2,28 @@ | ||||
| #include <api-hal-bt.h> | ||||
| #include <stm32wbxx.h> | ||||
|  | ||||
| void api_hal_flash_write_dword(size_t address, uint64_t data) { | ||||
| bool api_hal_flash_erase(uint8_t page, uint8_t count) { | ||||
|     api_hal_bt_lock_flash(); | ||||
|     HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, address, data); | ||||
|     FLASH_EraseInitTypeDef erase; | ||||
|     erase.TypeErase = FLASH_TYPEERASE_PAGES; | ||||
|     erase.Page = page; | ||||
|     erase.NbPages = count; | ||||
|     uint32_t error; | ||||
|     HAL_StatusTypeDef status = HAL_FLASHEx_Erase(&erase, &error); | ||||
|     api_hal_bt_unlock_flash(); | ||||
|     return status == HAL_OK; | ||||
| } | ||||
|  | ||||
| void api_hal_flash_write_row(size_t address, size_t source_address) { | ||||
| bool api_hal_flash_write_dword(size_t address, uint64_t data) { | ||||
|     api_hal_bt_lock_flash(); | ||||
|     HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, address, source_address); | ||||
|     HAL_StatusTypeDef status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, address, data); | ||||
|     api_hal_bt_unlock_flash(); | ||||
|     return status == HAL_OK; | ||||
| } | ||||
|  | ||||
| bool api_hal_flash_write_row(size_t address, size_t source_address) { | ||||
|     api_hal_bt_lock_flash(); | ||||
|     HAL_StatusTypeDef status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_FAST, address, source_address); | ||||
|     api_hal_bt_unlock_flash(); | ||||
|     return status == HAL_OK; | ||||
| } | ||||
|   | ||||
| @@ -1,15 +1,24 @@ | ||||
| #pragma once | ||||
|  | ||||
| #include <stdbool.h> | ||||
| #include <stdint.h> | ||||
| #include <stddef.h> | ||||
|  | ||||
| /* | ||||
|  * Erase Flash | ||||
|  * Locking operation, uses HSEM to manage shared access. | ||||
|  * @param page, page number | ||||
|  * @param count, page count to erase | ||||
|  */ | ||||
| bool api_hal_flash_erase(uint8_t page, uint8_t count); | ||||
|  | ||||
| /* | ||||
|  * Write double word (64 bits) | ||||
|  * Locking operation, uses HSEM to manage shared access. | ||||
|  * @param address - destination address, must be double word aligned. | ||||
|  * @param data - data to write | ||||
|  */ | ||||
| void api_hal_flash_write_dword(size_t address, uint64_t data); | ||||
| bool api_hal_flash_write_dword(size_t address, uint64_t data); | ||||
|  | ||||
| /* | ||||
|  * Write page (4096 bytes or 64 rows of double words). | ||||
| @@ -17,4 +26,4 @@ void api_hal_flash_write_dword(size_t address, uint64_t data); | ||||
|  * @param address - destination address, must be page aligned | ||||
|  * @param source_address - source address | ||||
|  */ | ||||
| void api_hal_flash_write_page(size_t address, size_t source_address); | ||||
| bool api_hal_flash_write_page(size_t address, size_t source_address); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user