8 changed files with 126 additions and 9 deletions
-
5.settings/stm32cubeide.project.prefs
-
2STM32F407VETX_FLASH.ld
-
2a8000_subboard.launch
-
2sdk
-
50usrc/configs/device_id_mgr.cpp
-
29usrc/configs/device_id_mgr.hpp
-
18usrc/main.cpp
-
27usrc/project_configs.h
@ -1,5 +1,6 @@ |
|||
2F62501ED4689FB349E356AB974DBE57=E20EF8A1CFA8D2AA5E7713614514A9E1 |
|||
635E684B79701B039C64EA45C3F84D30=C8B026EBE17C208F17FB66CE4235156C |
|||
66BE74F758C12D739921AEA421D593D3=1 |
|||
8DF89ED150041C4CBC7CB9A9CAA90856=31CD5EEFA9F35C65D8E334D24F421EB1 |
|||
DC22A860405A8BF2F2C095E5B6529F12=31CD5EEFA9F35C65D8E334D24F421EB1 |
|||
8DF89ED150041C4CBC7CB9A9CAA90856=E20EF8A1CFA8D2AA5E7713614514A9E1 |
|||
DC22A860405A8BF2F2C095E5B6529F12=EC6C4D369FD4F7EABFE17B3222B5F3A0 |
|||
eclipse.preferences.version=1 |
@ -1 +1 @@ |
|||
Subproject commit 6f30b6d5d989f02e831655ec5439042b8b8126cf |
|||
Subproject commit fd424aeed7fd56ee83369b2e1a92ef7f913914f0 |
@ -0,0 +1,50 @@ |
|||
#include "device_id_mgr.hpp"
|
|||
|
|||
#include "main.h"
|
|||
#include "sdk/os/zos.hpp"
|
|||
|
|||
void zdevice_id_mgr_init() {} |
|||
void zdevice_id_mgr_recfg_device_id(int32_t id) { |
|||
HAL_StatusTypeDef status; |
|||
uint32_t sector_error_point; |
|||
FLASH_EraseInitTypeDef flash_erase_structer = { |
|||
//
|
|||
.TypeErase = FLASH_TYPEERASE_SECTORS, //
|
|||
.Sector = SN_FLASH_EARSE_SECTOR, //
|
|||
.NbSectors = 1, //
|
|||
.VoltageRange = FLASH_VOLTAGE_RANGE_3 //
|
|||
}; |
|||
|
|||
HAL_FLASH_Unlock(); |
|||
|
|||
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR); |
|||
status = HAL_FLASHEx_Erase(&flash_erase_structer, §or_error_point); |
|||
if (status != HAL_OK) { |
|||
ZLOGE("flash", "erase error"); |
|||
HAL_FLASH_Lock(); |
|||
return; |
|||
} |
|||
ZLOGI("flash", "erase ok"); |
|||
|
|||
HAL_FLASH_Lock(); |
|||
|
|||
HAL_FLASH_Unlock(); |
|||
|
|||
status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, SN_FLASH_ADD, id); |
|||
if (status != HAL_OK) { |
|||
ZLOGE("flash", "write error"); |
|||
HAL_FLASH_Lock(); |
|||
return; |
|||
} |
|||
|
|||
HAL_FLASH_Lock(); |
|||
ZLOGI("flash", "write id %d to flash ok", id); |
|||
return; |
|||
} |
|||
int32_t zdevice_id_mgr_get_device_id() { |
|||
int32_t *deviceId = (int32_t *)SN_FLASH_ADD; |
|||
if (*deviceId <= 0) { |
|||
return 0; |
|||
} |
|||
return *deviceId; |
|||
} |
@ -0,0 +1,29 @@ |
|||
#pragma once
|
|||
#include <stdbool.h>
|
|||
#include <stdint.h>
|
|||
|
|||
#include "project_configs.h"
|
|||
|
|||
/**
|
|||
* @brief |
|||
* STM32F407VETx 512k |
|||
* |
|||
* index startAdd size |
|||
* 0 0x08000000 16k |
|||
* 1 0x08004000 16k |
|||
* 2 0x08008000 16k |
|||
* 3 0x0800C000 16k |
|||
* 4 0x08010000 64k |
|||
* 5 0x08020000 128k |
|||
* 6 0x08040000 128k |
|||
* 7 0x08060000 128k |
|||
* 8 0x08080000 128k |
|||
* 9 0x080A0000 128k |
|||
* 10 0x080C0000 128k |
|||
* 11 0x080E0000 128k |
|||
* |
|||
*/ |
|||
|
|||
void zdevice_id_mgr_init(); |
|||
void zdevice_id_mgr_recfg_device_id(int32_t id); |
|||
int32_t zdevice_id_mgr_get_device_id(); |
Write
Preview
Loading…
Cancel
Save
Reference in new issue