Browse Source

update

master
zhaohe 1 year ago
parent
commit
2aaabe366a
  1. 5
      .settings/stm32cubeide.project.prefs
  2. 2
      STM32F407VETX_FLASH.ld
  3. 2
      a8000_subboard.launch
  4. 2
      sdk
  5. 50
      usrc/configs/device_id_mgr.cpp
  6. 29
      usrc/configs/device_id_mgr.hpp
  7. 18
      usrc/main.cpp
  8. 27
      usrc/project_configs.h

5
.settings/stm32cubeide.project.prefs

@ -1,5 +1,6 @@
2F62501ED4689FB349E356AB974DBE57=E20EF8A1CFA8D2AA5E7713614514A9E1
635E684B79701B039C64EA45C3F84D30=C8B026EBE17C208F17FB66CE4235156C
66BE74F758C12D739921AEA421D593D3=1
8DF89ED150041C4CBC7CB9A9CAA90856=31CD5EEFA9F35C65D8E334D24F421EB1
DC22A860405A8BF2F2C095E5B6529F12=31CD5EEFA9F35C65D8E334D24F421EB1
8DF89ED150041C4CBC7CB9A9CAA90856=E20EF8A1CFA8D2AA5E7713614514A9E1
DC22A860405A8BF2F2C095E5B6529F12=EC6C4D369FD4F7EABFE17B3222B5F3A0
eclipse.preferences.version=1

2
STM32F407VETX_FLASH.ld

@ -47,7 +47,7 @@ MEMORY
{
CCMRAM (xrw) : ORIGIN = 0x10000000, LENGTH = 64K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 512K
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 384K
}
/* Sections */

2
a8000_subboard.launch

@ -24,7 +24,7 @@
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_trace_hclk" value="144000000"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.useRemoteTarget" value="true"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.vector_table" value=""/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.verify_flash_download" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.verify_flash_download" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.openocd.CTI_ALLOW_HALT" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.openocd.CTI_SIGNAL_HALT" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.openocd.DBG_DEVICE_SHAREABLE_ALLOWED" value="false"/>

2
sdk

@ -1 +1 @@
Subproject commit 6f30b6d5d989f02e831655ec5439042b8b8126cf
Subproject commit fd424aeed7fd56ee83369b2e1a92ef7f913914f0

50
usrc/configs/device_id_mgr.cpp

@ -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, &sector_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;
}

29
usrc/configs/device_id_mgr.hpp

@ -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();

18
usrc/main.cpp

@ -3,6 +3,7 @@
#include "board.h"
//
#include "configs/device_id_mgr.hpp"
#include "sdk/chip/chip.hpp"
#include "sdk/os/zos.hpp"
@ -14,6 +15,7 @@ extern "C" {
void StartDefaultTask(void const* argument) { umain(); }
}
void umain() {
zos_cfg_t zoscfg = {0};
chip_cfg_t chipcfg = {};
chipcfg.us_dleay_tim = &PC_SYS_DELAY_US_TIMER;
chipcfg.tim_irq_scheduler_tim = &PC_SYS_TIM_IRQ_SCHEDULER_TIMER;
@ -21,9 +23,21 @@ void umain() {
chipcfg.debuglight = PC_DEBUG_LIGHT_GPIO;
chip_init(&chipcfg);
zos_cfg_t zoscfg;
zos_init(&zoscfg);
zdevice_id_mgr_init();
int32_t id = zdevice_id_mgr_get_device_id();
ZEARLY_LOGI("SYS", "chip init ok");
ZEARLY_LOGI("SYS", "= manufacturer : %s", PC_MANUFACTURER);
ZEARLY_LOGI("SYS", "= project name : %s", PC_PROJECT_NAME);
ZEARLY_LOGI("SYS", "= version : %s", PC_VERSION);
ZEARLY_LOGI("SYS", "= freq : %d", HAL_RCC_GetSysClockFreq());
ZEARLY_LOGI("SYS", "= build time : %s", __DATE__ " " __TIME__);
ZEARLY_LOGI("SYS", "= device id : %d", id);
ZLOGI(TAG, "zaf_flash_flush ok");
while (true) {
zos_delay(1);

27
usrc/project_configs.h

@ -15,5 +15,28 @@
#define PC_IRQ_PREEMPTPRIORITY_DEFAULT 5
#define PC_NVS_ENABLE 1
#define PC_NVS_CONFIG_FLASH_SECTOR 8
// #define PC_NVS_ENABLE 0
/***********************************************************************************************************************
* SN *
***********************************************************************************************************************/
/**
* @brief
* STM32F407VETx 1M
*
* 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
*/
#define SN_FLASH_ADD 0x080E0000 // ʹÓÃÉÈÇø11´æ´¢SN±àÂë
#define SN_FLASH_EARSE_SECTOR FLASH_SECTOR_7
Loading…
Cancel
Save