Обновление
This commit is contained in:
parent
21f9f63a91
commit
1d4459df9d
|
|
@ -165,12 +165,6 @@ static void Bsp_PCC_Init(void) {
|
||||||
bSP_PCC_Config.eDivider = PCC_CLK_UNINVOLVED;
|
bSP_PCC_Config.eDivider = PCC_CLK_UNINVOLVED;
|
||||||
|
|
||||||
PCC_SetPcc(&bSP_PCC_Config);
|
PCC_SetPcc(&bSP_PCC_Config);
|
||||||
|
|
||||||
bSP_PCC_Config.eClockName = PCC_CLK_WKU0;
|
|
||||||
bSP_PCC_Config.bEn = true;
|
|
||||||
bSP_PCC_Config.eClkSrc = PCC_CLKGATE_UNINVOLVED;
|
|
||||||
bSP_PCC_Config.eDivider = PCC_CLK_UNINVOLVED;
|
|
||||||
PCC_SetPcc(&bSP_PCC_Config);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Bsp_Systick_Init(void)
|
void Bsp_Systick_Init(void)
|
||||||
|
|
|
||||||
41
APP/main.c
41
APP/main.c
|
|
@ -10,11 +10,14 @@
|
||||||
#include "CmsisRtosThreadUtils.h"
|
#include "CmsisRtosThreadUtils.h"
|
||||||
#include "SystemDelayInterface.h"
|
#include "SystemDelayInterface.h"
|
||||||
#include "DeviceStorage.h"
|
#include "DeviceStorage.h"
|
||||||
|
#include "BootJump.h"
|
||||||
|
|
||||||
|
#define BOOT_AREA_LENGTH (256 * 1024)
|
||||||
|
#define FIRMWARE_MAIN_ADDR (0x01000000 + BOOT_AREA_LENGTH)
|
||||||
|
#define FIRMWARE_MAIN_RECOVERY_ADDR (FIRMWARE_MAIN_ADDR + FIRMWARE_MAIN_AREA_LENGTH)
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
tRtcs *rtcs;
|
|
||||||
tLoggerToSerialPort slog;
|
tLoggerToSerialPort slog;
|
||||||
tStorageOnFlash *flash;
|
|
||||||
tDeviceStorage storage;
|
tDeviceStorage storage;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
|
@ -49,21 +52,29 @@ void vApplicationStackOverflowHook(TaskHandle_t xTask, const char *pcTaskName) {
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const DMA_InitType dmaInitCfg =
|
||||||
|
{
|
||||||
|
.eArbitrationAlgorithm = DMA_ARBITRATION_ALGORITHM_FIXED_PRIORITY,
|
||||||
|
.bHaltOnError = false
|
||||||
|
};
|
||||||
|
|
||||||
static _Noreturn void MainTransmitter_Thread(tBootMma *env) {
|
static _Noreturn void MainTransmitter_Thread(tBootMma *env) {
|
||||||
|
|
||||||
// Настройка таймера реального времени
|
DMA_Init(DMA_INSTANCE_0, &dmaInitCfg);
|
||||||
time_t set_timestamp = 1768553105;
|
StorageOnFlash_Init();
|
||||||
RtcSet(&env->rtcs->rtcI0, &set_timestamp);
|
Rtcs_Init();
|
||||||
|
|
||||||
SerialPorts_Init();
|
SerialPorts_Init();
|
||||||
|
|
||||||
|
// Настройка таймера реального времени
|
||||||
|
time_t set_timestamp = 0;
|
||||||
|
RtcSet(&RTCS.rtcI0, &set_timestamp);
|
||||||
|
|
||||||
LoggerToSerialPort_Init(
|
LoggerToSerialPort_Init(
|
||||||
&env->slog,
|
&env->slog,
|
||||||
3,
|
0,
|
||||||
&SERIAL_PORTS.cliVirtualPortOut_Io,
|
&SERIAL_PORTS.cliVirtualPortOut_Io,
|
||||||
&SERIAL_PORTS.SerialPortLog_IO,
|
&SERIAL_PORTS.SerialPortLog_IO,
|
||||||
&env->rtcs->rtcI0,
|
&RTCS.rtcI0,
|
||||||
SERIAL_LOGGER_SHOW_TIME | SERIAL_LOGGER_SHOW_AUTHOR | SERIAL_LOGGER_SHOW_LOG_LEVEL,
|
SERIAL_LOGGER_SHOW_TIME | SERIAL_LOGGER_SHOW_AUTHOR | SERIAL_LOGGER_SHOW_LOG_LEVEL,
|
||||||
1000
|
1000
|
||||||
);
|
);
|
||||||
|
|
@ -72,11 +83,12 @@ static _Noreturn void MainTransmitter_Thread(tBootMma *env) {
|
||||||
|
|
||||||
LoggerInfoStatic(&env->slog.logger, LOG_SIGN, "Initialization of subsystems")
|
LoggerInfoStatic(&env->slog.logger, LOG_SIGN, "Initialization of subsystems")
|
||||||
|
|
||||||
bool result = DeviceStorage_Init(&env->storage, true, &env->flash->interface_calib, &env->flash->interface_param,
|
NVM_STORAGE.nf_storage_param.logger = &env->slog.logger;
|
||||||
|
NVM_STORAGE.nf_storage_calib.logger = &env->slog.logger;
|
||||||
|
bool result = DeviceStorage_Init(&env->storage, true, &NVM_STORAGE.interface_calib, &NVM_STORAGE.interface_param,
|
||||||
&env->slog.logger);
|
&env->slog.logger);
|
||||||
|
|
||||||
env->flash->nf_storage_param.logger = &env->slog.logger;
|
BootJumpToAddress(FIRMWARE_MAIN_ADDR);
|
||||||
env->flash->nf_storage_calib.logger = &env->slog.logger;
|
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
SystemDelayMs(1000);
|
SystemDelayMs(1000);
|
||||||
|
|
@ -95,11 +107,16 @@ int main(void) {
|
||||||
|
|
||||||
NVIC_SetPriorityGrouping(NVIC_PRIORITY_GROUP_4);
|
NVIC_SetPriorityGrouping(NVIC_PRIORITY_GROUP_4);
|
||||||
|
|
||||||
|
osKernelInitialize();
|
||||||
|
|
||||||
tBootMma *env = &MAIN_BOOT_ENV;
|
tBootMma *env = &MAIN_BOOT_ENV;
|
||||||
|
|
||||||
InitThreadAtrStatic(&env->thread.attr, "LogTransmitter", env->thread.controlBlock, env->thread.stack,
|
InitThreadAtrStatic(&env->thread.attr, "BootMma", env->thread.controlBlock, env->thread.stack,
|
||||||
osPriorityNormal);
|
osPriorityNormal);
|
||||||
|
|
||||||
MainTransmitter_StartThread(env);
|
MainTransmitter_StartThread(env);
|
||||||
|
|
||||||
|
osKernelStart();
|
||||||
|
|
||||||
|
STOP
|
||||||
}
|
}
|
||||||
12
modular.json
12
modular.json
|
|
@ -134,6 +134,12 @@
|
||||||
"repo": "HVAC_M7_StorageOnFlash"
|
"repo": "HVAC_M7_StorageOnFlash"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "HVAC_M7",
|
||||||
|
"repo": "HVAC_M7_Rtcs"
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"provider": "HVAC_M7",
|
"provider": "HVAC_M7",
|
||||||
|
|
@ -146,6 +152,12 @@
|
||||||
"repo": "HVAC_BOOT_M7_SerialPorts"
|
"repo": "HVAC_BOOT_M7_SerialPorts"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "HVAC_M7",
|
||||||
|
"repo": "BootJump_Flagchip_FC7240"
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"type": "local",
|
"type": "local",
|
||||||
"dir": "APP"
|
"dir": "APP"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue