整理:黄工
素材来源:最后一个Bug
程序的运行时间,对一个系统比较重要。有的地方要求精确延时Nus,有的地方要求程序运行时间不能超过Nus。
所以,今天给大家分享一些常见测量程序(任务)运行时间的方法。
比如说我们真实世界与数字世界的窗口-AD采样芯片,我们都需要通过感知外界的一些反馈来对我们的系统做出正确的决策,那么AD芯片的转化速度就成了决定该反馈的速度,进而影响着我们的系统。
再比如,我们要运行一段算法,我们都期待越快越好,但这段算法会牵涉传感器的采集处理。那么这其中要综合考虑传感器采集的最大速率等问题。
所以,我们在项目研发初期就要考虑一些地方程序运行的时间问题。下面为大家总结日常的测量方法,供大家学习参考。
TEST_IO_LOW();
//被测量代码start
//······
//被测量代码end
TEST_IO_HIGH();
3、内部定时器法
该方法与上面的捕获IO方法是类似的,在嵌入式系统中经常会遇到时间戳的使用,同时还能获得CPU的利用率,其实方法都是一样的,系统中会开启一个核心定时器,该定时器一般不会受到外部的干扰等,通过该定时器在任务的开头和结尾分别安插标志,从而获得这段时间内的定时器计数,从而计算出程序运行时间。
该方法在我们的小型或者资源不足的芯片上使用得不多,因为我们很少有多余的定时器来进行额外的处理,同时由于定时器处理需要一定的时间,以及一些额外的计算等都会导致测量时间上的误差,如果该误差在能够接受的范围还是可以采用该方法的。
4.仿真器法
目前许多芯片的调试仿真器都会具备测量仿真程序的多方面性能的功能,比如说KEIL或者CCS集成开发环境也都基本支持测量程序运行时间的,一般都是测量断点之间的程序所运行时间,用户需要在开发环境中进行芯片当前的晶振、主频等等方面参数的设置以后基本能够获得一个运行时间结果。
声明:本文来源最后一个Bug,仅代表作者观点,不代表本公众号对该观点赞同或支持,版权归原作者所有。
猜你喜欢
先涨薪后付费 | 只为结果付费的人工智能高薪培养计划
翻到几年前的代码,我惊了。
几款优秀的 Windows 虚拟串口模拟器