我现在使用HPM6750双核同时运行,仅间隔固定时间翻转一下IO口,具体操作如下:
在双核程序中,配置IO口A为核0的GPIO输出,配置IO口B为核1的GPIO输出,使用自编写delay_us函数,在核0和核1的主程序while循环中,每间隔500us翻转一次各自IO口输出电平。程序中除了必须的board_init函数外,其余没有配置任何外设。程序运行发现问题如下:
1、仅核0运行时,用示波器查看IO口A电平,发现翻转间隔时间很准;
2、双核同时运行时,用示波器查看IO口A电平和IO口B电平,发现A和B的电平翻转时间间隔大部分时间是准的,不定时会出现翻转不准现象。
请教一下这是什么原因造成的?是由于双核运行时,还有其他潜藏的程序运行吗?
delay_us函数如下:
void delay_us(unsigned int us)
{
while(us--)
{
for(int i=0;i<161;i++);
}
}