Files
fdskey/FdsKey/Core/Inc/servicemenu.h
Alexey 'Cluster' Avdyukhin d2eb9babbb Minor fixes
2023-07-30 15:04:39 +04:00

65 lines
1.6 KiB
C

#ifndef INC_SERVICEMENU_H_
#define INC_SERVICEMENU_H_
#include <stdint.h>
#include "main.h"
#include "oled.h"
#define SERVICE_SETTINGS_SIGNATURE "SFDSKEY"
#define SERVICE_SETTINGS_FLASH_OFFSET (0x08080000 - FLASH_PAGE_SIZE * 3)
#define HARDWARE_VERSION_FLASH_OFFSET (0x08080000 - FLASH_PAGE_SIZE * 4)
#define SERVICE_SETTINGS_ITEM_COUNT 20
#define DISK_LABEL "FDSKey"
typedef enum
{
SERVICE_SETTING_OLED_CONTROLLER = 0,
SERVICE_SETTING_VERSION,
SERVICE_SETTING_COMMIT,
SERVICE_SETTING_BUILD_DATE,
SERVICE_SETTING_BUILD_TIME,
SERVICE_SETTING_BL_COMMIT,
SERVICE_SETTING_SD_CAPACITY,
SERVICE_SETTING_FAT_SIZE,
SERVICE_SETTING_FAT_FREE,
SERVICE_SETTING_FILE_SYSTEM,
SERVICE_SETTING_SD_SPI_SPEED,
SERVICE_SETTING_SD_MANUFACTURER_ID,
SERVICE_SETTING_SD_OEM_ID,
SERVICE_SETTING_SD_PROD_NAME,
SERVICE_SETTING_SD_PROD_REV,
SERVICE_SETTING_SD_PROD_SN,
SERVICE_SETTING_SD_PROD_MANUFACT_YEAR,
SERVICE_SETTING_SD_PROD_MANUFACT_MONTH,
SERVICE_SETTING_SD_FORMAT,
SERVICE_SETTING_BL_UPDATE
} SERVICE_SETTING_ID;
typedef struct __attribute__((packed))
{
char sig[sizeof(SERVICE_SETTINGS_SIGNATURE) + 1];
OLED_CONTROLLER oled_controller;
} FDSKEY_SERVICE_SETTINGS;
extern FDSKEY_SERVICE_SETTINGS fdskey_service_settings;
typedef struct __attribute__((packed))
{
uint16_t major;
uint8_t minor;
char suffix;
char bootloader_commit[28];
} FDSKEY_HARDWARE_VERSION;
extern FDSKEY_HARDWARE_VERSION fdskey_hw_version;
void service_settings_load();
HAL_StatusTypeDef service_settings_save();
void service_menu();
uint8_t sd_format();
#endif /* INC_SERVICEMENU_H_ */