Обновление платы на V2

This commit is contained in:
cfif 2026-05-28 14:13:48 +03:00
parent 2a765a4056
commit 3a79605d23
3 changed files with 40 additions and 19 deletions

View File

@ -10,7 +10,9 @@
#include "stddef.h"
bool D_bInternalFlashPage_Clear(
uint32_t pageAddress
uint32_t pageAddress,
void *wdTriggerFct,
void *wdTriggerFct_env
);
size_t D_sInternalFlashPage_Write(
@ -35,7 +37,9 @@ size_t D_sInternalFlashPage_Read(
bool D_bInternalFlashPage_ClearRange(
uint32_t firstPageAddr,
uint32_t totalSize
uint32_t totalSize,
void *wdTriggerFct,
void *wdTriggerFct_env
);
bool D_bInternalFlashPage_WriteFromRam(uint32_t beginPageAddr, void *sourceRamAddr, uint32_t size);
@ -43,7 +47,9 @@ bool D_bInternalFlashPage_WriteFromRam(uint32_t beginPageAddr, void *sourceRamAd
bool D_bInternalFlashPage_CopyRange(
uint32_t targetPageAddr,
uint32_t sourcePageAddr,
uint32_t totalCopySize
uint32_t totalCopySize,
void *wdTriggerFct,
void *wdTriggerFct_env
);
uint32_t D_iInternalFlashPage_ReadWord(uint32_t addressOnFlash);
@ -86,7 +92,9 @@ size_t P_sInternalFlashPage_Read(
bool P_bInternalFlashPage_ClearRange(
uint32_t firstPageAddr,
uint32_t totalSize
uint32_t totalSize,
void *wdTriggerFct,
void *wdTriggerFct_env
);
bool P_bInternalFlashPage_WriteFromRam(uint32_t beginPageAddr, void *sourceRamAddr, uint32_t size);
@ -94,7 +102,9 @@ bool P_bInternalFlashPage_WriteFromRam(uint32_t beginPageAddr, void *sourceRamAd
bool P_bInternalFlashPage_CopyRange(
uint32_t targetPageAddr,
uint32_t sourcePageAddr,
uint32_t totalCopySize
uint32_t totalCopySize,
void *wdTriggerFct,
void *wdTriggerFct_env
);
uint32_t P_iInternalFlashPage_ReadWord(uint32_t addressOnFlash);

View File

@ -42,12 +42,14 @@ size_t D_sInternalFlashPage_Read(
}
bool D_bInternalFlashPage_Clear(
uint32_t pageAddress
uint32_t pageAddress,
void *wdTriggerFct,
void *wdTriggerFct_env
) {
FLASHDRIVER_Init();
FLASH_DRIVER_ParamType tFlashParam = {.pData = NULL,
.wdTriggerFct = (void *) 0
FLASH_DRIVER_ParamType tFlashParam = {.pData = wdTriggerFct,
.wdTriggerFct = wdTriggerFct_env
};
tFlashParam.u32Address = pageAddress;
@ -75,7 +77,9 @@ bool D_bInternalFlashPage_Clear(
bool D_bInternalFlashPage_ClearRange(
uint32_t firstPageAddr,
uint32_t totalSize
uint32_t totalSize,
void *wdTriggerFct,
void *wdTriggerFct_env
) {
if (totalSize % FLASH_PAGE_SIZE) {
return false;
@ -83,7 +87,7 @@ bool D_bInternalFlashPage_ClearRange(
uint32_t endAddr = firstPageAddr + totalSize;
for (; firstPageAddr < endAddr; firstPageAddr += FLASH_PAGE_SIZE) {
if (!D_bInternalFlashPage_Clear(firstPageAddr)) {
if (!D_bInternalFlashPage_Clear(firstPageAddr, wdTriggerFct, wdTriggerFct_env)) {
return false;
}
}
@ -94,9 +98,11 @@ bool D_bInternalFlashPage_ClearRange(
bool D_bInternalFlashPage_CopyRange(
uint32_t targetPageAddr,
uint32_t sourcePageAddr,
uint32_t size
uint32_t size,
void *wdTriggerFct,
void *wdTriggerFct_env
) {
if (!D_bInternalFlashPage_ClearRange(targetPageAddr, size)) {
if (!D_bInternalFlashPage_ClearRange(targetPageAddr, size, wdTriggerFct, wdTriggerFct_env)) {
return false;
}
@ -172,7 +178,7 @@ size_t D_bInternalFlashPage_DumpFromRam(
) {
size_t alignedSize = ((size / FLASH_PAGE_SIZE) + (size % FLASH_PAGE_SIZE ? 1 : 0)) * FLASH_PAGE_SIZE;
if (!D_bInternalFlashPage_ClearRange(beginPageAddr, alignedSize)) {
if (!D_bInternalFlashPage_ClearRange(beginPageAddr, alignedSize,NULL, 0)) {
return 0;
}

View File

@ -76,7 +76,9 @@ bool P_bInternalFlashPage_Clear(
bool P_bInternalFlashPage_ClearRange(
uint32_t firstPageAddr,
uint32_t totalSize
uint32_t totalSize,
void *wdTriggerFct,
void *wdTriggerFct_env
) {
if (totalSize % FLASH_PAGE_SIZE) {
return false;
@ -85,8 +87,9 @@ bool P_bInternalFlashPage_ClearRange(
FLASHDRIVER_Init();
FLASH_DRIVER_ParamType tFlashParam = {
.pData = NULL,
.wdTriggerFct = (void *)0,
.pData = 0,
.wdTriggerFct = wdTriggerFct,
.wdTriggerFct_env = wdTriggerFct_env,
.u32Address = firstPageAddr,
.u32Length = totalSize
};
@ -115,9 +118,11 @@ bool P_bInternalFlashPage_ClearRange(
bool P_bInternalFlashPage_CopyRange(
uint32_t targetPageAddr,
uint32_t sourcePageAddr,
uint32_t size
uint32_t size,
void *wdTriggerFct,
void *wdTriggerFct_env
) {
if (!P_bInternalFlashPage_ClearRange(targetPageAddr, size)) {
if (!P_bInternalFlashPage_ClearRange(targetPageAddr, size, wdTriggerFct, wdTriggerFct_env)) {
return false;
}
@ -193,7 +198,7 @@ size_t P_bInternalFlashPage_DumpFromRam(
) {
size_t alignedSize = ((size / FLASH_PAGE_SIZE) + (size % FLASH_PAGE_SIZE ? 1 : 0)) * FLASH_PAGE_SIZE;
if (!P_bInternalFlashPage_ClearRange(beginPageAddr, alignedSize)) {
if (!P_bInternalFlashPage_ClearRange(beginPageAddr, alignedSize, NULL, 0)) {
return 0;
}