一个精简的printf支持,剪裁后只占用几KB ROM

This commit is contained in:
zhangzheng
2024-01-21 16:15:58 +08:00
parent 5aab5811da
commit f0811b0395
23 changed files with 23027 additions and 25 deletions

View File

@@ -1,12 +1,11 @@
#include "stm32f10x_conf.h"
void _memset(void *data, int val, int size)
void memset(void *data, int val, int size)
{
unsigned int *_d = data;
for (int i = 0; i < size; i++)
{
_d += i;
_d[0] = 0;
}
}
@@ -21,9 +20,9 @@ void FSMC_SRAM_Init(void)
FSMC_NORSRAMTimingInitTypeDef readWriteTiming;
GPIO_InitTypeDef GPIO_InitStructure;
_memset(&FSMC_NORSRAMInitStructure, 0, sizeof(FSMC_NORSRAMInitStructure));
_memset(&readWriteTiming, 0, sizeof(readWriteTiming));
_memset(&GPIO_InitStructure, 0, sizeof(GPIO_InitStructure));
memset(&FSMC_NORSRAMInitStructure, 0, sizeof(FSMC_NORSRAMInitStructure));
memset(&readWriteTiming, 0, sizeof(readWriteTiming));
memset(&GPIO_InitStructure, 0, sizeof(GPIO_InitStructure));
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);

View File

@@ -13,7 +13,7 @@ void sram_init(void)
void jump2kernel(void)
{
sram_init();
// sram_test();
sram_test();
if (((*(__IO uint32_t *)KERNEL_IMG_START_ADDR) & 0x2FFE0000) == 0x20000000) // 检查栈顶地址是否合法,即检查此段Flash中是否已有APP程序
{
__set_PRIMASK(1);