结束语:黄弓资料来源:最后一个bug程序的运行时间对于系统而言更为重要。
有些地方要求精确延迟Nus,而有些地方则要求程序运行时间不能超过Nus。
因此,今天我将与您分享一些用于衡量程序(任务)运行时间的常用方法。
0.为什么需要确定程序的运行时间?软件的及时性决定了系统的速度。
这句话的前提是忽略硬件的限制。
但是对于我们的大多数项目来说,真正限制系统响应速度的是硬件资源。
例如,在我们的现实世界和数字世界的窗口-AD采样芯片中,我们都需要通过感知外界的反馈来对系统做出正确的决定,然后AD芯片的转换速度就变成了确定反馈。
然后影响我们的系统。
再举一个例子,如果我们想运行一种算法,我们都希望越早越好,但是这种算法将涉及传感器的采集和处理。
然后,必须综合考虑传感器的最大收集率。
因此,我们必须在项目开发的早期阶段考虑一些本地项目的时间安排。
以下是供大家学习的每日测量方法的摘要。
1. IO翻转示波器的测量方法这种方法简单方便。
在测量开始时,将IO设置为一种状态(低);否则,将IO设置为一种状态(低)。
在测量结束时,将IO设置为另一种状态(高电平)。
TEST_IO_LOW(); //测得的代码开始//·······//测得的代码结束TEST_IO_HIGH();这种测量方法应考虑到添加的IO语句将花费一定的时间(具体与您的处理器容量有关),例如IO翻转72M STM32F1,应为数十ns。
2. Capture IO测量方法该方法实际上类似于示波器方法,两者均属于外部测量方法。
但是,该方法的优点是可以弥补由于任务运行时间变化较大而使示波器测量显示难以确定最长时间的问题。
通常,我们可以将IO翻转信号作为脉冲宽度进行测量。
我们只需要使用另一个高端或更高频率的芯片,通过捕获功能和计时器来记录时间。
这样,我们不仅可以获取程序的运行时间,还可以通过编程的思想,长时间进行脉冲宽度的最大值和平均值,以更好地表征运行状态该程序。
该方法的缺点该方法的精度由外部芯片决定,但对于大多数应用而言,它是令人满意的。
3.内部计时器方法。
此方法类似于上面的捕获IO方法。
在嵌入式系统中,经常使用时间戳记,并且可以获得CPU利用率。
实际上,方法是相同的。
核心计时器将启动。
此计时器通常不受外部干扰。
计时器用于在任务的开始和结束处放置标志,以在此时间段内获取计时器计数,以计算程序运行时间。
。
在我们的小型或资源不足的芯片上,这种方法很少使用,因为我们很少有多余的计时器来进行其他处理。
同时,计时器处理需要一定的时间以及一些其他的计算。
如果测量时间的误差在可接受的范围内,则仍然可以使用此方法。
4.仿真器方法目前,许多芯片调试仿真器将具有测量仿真程序性能的功能。
例如,KEIL或CCS集成开发环境还基本上支持测量程序的运行时间,通常在断点之间进行测量。
对于程序的运行时间,用户需要在开发环境中设置当前的晶体振荡器,主频率和芯片的其他参数,才能基本获得运行时间的结果。
免责声明:本文来源中的最后一个错误仅代表作者的观点,并不表示此官方帐户同意或支持此观点。
版权属于原始作者。
-结尾-