困惑:同样代码ARM9比M3执行更慢?

2019-12-14 12:43发布

本帖最后由 prince2010 于 2018-12-11 09:25 编辑

代码——

static void delay(u32 n)
{
    volatile u32 i = n;

    while(i--);
}


N32926调用——

void SpeedTest(void)
{
    gpio_setportdir(GPIO_PORTG, 0x01 << 9, 0x01 << 9);
    gpio_configure(GPIO_PORTG, 9);
    gpio_setportval(GPIO_PORTG, 0x01 << 9, 0x00 << 9);//输出低电平

    while(1)
    {
        delay(5000);//实测约8ms        

        gpio_setportval(GPIO_PORTG, 0x01 << 9, 0x00 << 9);//输出低电平

        delay(5000);

        gpio_setportval(GPIO_PORTG, 0x01 << 9, 0x01 << 9);//输出高电平
    }
}

STM32F103调用——

void SpeedTest(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;//POWER
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOC, &GPIO_InitStructure);

    while(1)
    {
        delay(5000);//实测600us        

        GPIO_ResetBits(GPIOC, GPIO_Pin_13);
        
        delay(5000);

        GPIO_SetBits(GPIOC, GPIO_Pin_13);
    }
}


疑问:高系统时钟的ARM9反而比低系统时钟的M3慢?


补充:N32926:162MHz;STM32:72MHz


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。