通过测试代码:
int main(void)
{
uint32_t i = 0;
uint32_t mcnt2,mcnt3;
gd_eval_led_init(LED1);
systick_config();
/* config the USART */
gd_eval_com_init(EVAL_COM0);
//-------------------------------------------------------
//test time1
printf("Test time 1:\n");
mcnt2 = mcnt;
for(i=0;i<60000*3;i++)
{
}
mcnt3 = mcnt;
printf("init=%1d,end t=%1d, %1d.\n",mcnt2,mcnt3, mcnt3-mcnt2 );
test_time2();
}
//Code area之外,
#pragma arm section code=".ARM.__at_0x08080000"
void test_time2(void)
{
uint32_t i = 0;
uint32_t mcnt2,mcnt3;
//test time1
printf("Test time 2:\n");
mcnt2 = mcnt;
for(i=0;i<60000*3;i++)
{
}
mcnt3 = mcnt;
printf("init=%1d,end t=%1d, %1d.\n",mcnt2,mcnt3, mcnt3-mcnt2 );
}
#pragma arm section
运行结果:
Test time 1:
init=1,end t=6, 5.
Test time 2:
init=9,end t=14, 5.
可见,在两个位置,执行结果是一样的,也就是说后一个512K 也是无延时。 |