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 |
635E684B79701B039C64EA45C3F84D30=C8B026EBE17C208F17FB66CE4235156C |
||||
66BE74F758C12D739921AEA421D593D3=1 |
66BE74F758C12D739921AEA421D593D3=1 |
||||
8DF89ED150041C4CBC7CB9A9CAA90856=31CD5EEFA9F35C65D8E334D24F421EB1 |
|
||||
DC22A860405A8BF2F2C095E5B6529F12=31CD5EEFA9F35C65D8E334D24F421EB1 |
|
||||
|
8DF89ED150041C4CBC7CB9A9CAA90856=E20EF8A1CFA8D2AA5E7713614514A9E1 |
||||
|
DC22A860405A8BF2F2C095E5B6529F12=EC6C4D369FD4F7EABFE17B3222B5F3A0 |
||||
eclipse.preferences.version=1 |
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