为梦想痴狂的守夜人 发表于 2017-2-2 09:42:44

关于stm8库函数影响程序运行速度的问题!

IAR 和 STVD在使用固件库的时候会影响到程序的运行。大概会延迟2us左右,我用示波器试过的!
在不用库函数的情况下是时间是对的,(我试的是STVD,IAR不知道是不是)。

有大神知道的话帮忙解答一下为什么!

为梦想痴狂的守夜人 发表于 2017-2-2 09:44:29

这是一个简单的延时,for中如果是1不使用库函数的情况下 大约在 440ns左右,如果用库函数的话大约在2.4us左右。

为梦想痴狂的守夜人 发表于 2017-2-2 10:14:05

在IAR的release 模式也不行,时间更长了

aizhixi106 发表于 2017-2-4 15:13:05

其实很简单,进函数,出函数都需要时间。
void GPIO_Write(GPIO_TypeDef* GPIOx, u8 PortVal)
{
    GPIOx->ODR = PortVal;
}
操作寄存器肯定快点,这个毋庸置疑。

为梦想痴狂的守夜人 发表于 2017-2-6 22:18:48

aizhixi106 发表于 2017-2-4 15:13
其实很简单,进函数,出函数都需要时间。
void GPIO_Write(GPIO_TypeDef* GPIOx, u8 PortVal)
{


这个确实是,我就是说用库函数的话会影响程序运行速度,感觉库函数不咋滴,虽然他能减少编程的负担,但是还是不喜欢用。。。:lol

davg1 发表于 2017-2-8 13:30:05

方便是有代价的

Aaron-354694 发表于 2017-2-10 22:15:04

库函数主要用于初始化阶段,影响不大。而且,学的东西越来越多,都看寄存器得不偿失
页: [1]
查看完整版本: 关于stm8库函数影响程序运行速度的问题!