SysTick在startup.s里配置过一次了,所以先跑的startup.s里的配置。如下:
RAMCODE
; reset Vector table address.
LDR R0, =0xE000ED08
STR R2, [R0]
LDR R0, =SystemInit//
BLX R0
LDR R0, =__main
BX R0
ENDP
void SystemInit(void)
{
stc_clk_systickcfg_t stcCfg;
// TODO load trim from flash
//hcr 4MHz manual trim.
Clk_SetRCHFreq(ClkFreq4Mhz);
Clk_Enable(ClkRCH, TRUE);
SystemCoreClockUpdate();
DDL_ZERO_STRUCT(stcCfg);
stcCfg.bNoRef = TRUE;
stcCfg.u32LoadVal = 4000;//0xFFFFFF;
Clk_SysTickConfig(&stcCfg);
}
这里reload value配置为0xffffff所所以第一次比较久,想要第一次就块一些,要修改这里,后面自己配置的load value要在这里发生后再生效。