Переход в новую организацию

This commit is contained in:
cfif 2025-03-11 12:05:56 +03:00
commit e89bb3c822
3 changed files with 70 additions and 0 deletions

12
Inc/BootJump.h Executable file
View File

@ -0,0 +1,12 @@
//
// Created by xemon on 02.11.22.
//
#ifndef UVEOS_ON_ARTERY_BOOTLOADER_JUMP_H
#define UVEOS_ON_ARTERY_BOOTLOADER_JUMP_H
#include "stdint.h"
void BootJumpToAddress(const uint32_t address);
#endif //UVEOS_ON_ARTERY_BOOTLOADER_JUMP_H

48
Src/BootJump.c Executable file
View File

@ -0,0 +1,48 @@
//
// Created by xemon on 02.11.22.
//
#include CMSIS_device_header
typedef void (*pFunction)(void);
void BootJumpToAddress(const uint32_t address) {
uint32_t appStack;
pFunction appEntry;
// get the application stack pointer (1st entry in the app vector table)
appStack = (uint32_t) *((__IO
uint32_t *) address);
// Get the app entry point (2nd entry in the app vector table
appEntry = (pFunction) *(__IO
uint32_t *) (address + 4);
// HAL_RCC_DeInit();
// HAL_DeInit();
SysTick->CTRL = 0;
SysTick->LOAD = 0;
SysTick->VAL = 0;
uint32_t i = SCB->VTOR;
i++;
// Reconfigure vector table offset to match the app location
//#if (SET_VECTOR_TABLE)
// SCB->VTOR = address;
//#endif
//
//// __disable_irq(); // disable interrupt
//// __enable_irq();
//// __set_PRIMASK(1);
//// __set_MSP(appStack); // Set app stack pointer
__disable_irq();
__set_MSP(appStack);
SCB->VTOR = address;
__enable_irq();
appEntry(); // Start the app
while (1); // never reached
}

10
modular.json Executable file
View File

@ -0,0 +1,10 @@
{
"cmake": {
"inc_dirs": [
"Inc"
],
"srcs": [
"Src/**.c"
]
}
}