【发布时间】:2014-10-14 12:31:19
【问题描述】:
据我所知,SYSTICK Timer 是一个 24 位递减计数器。现在,我需要知道 memcpy 函数的精确消耗时间。假设我设置 SysTick->RELOAD = 511,会出现以下两种情况。
定义: 1. 一个循环意味着 511 到 0 必须完成。 2. 两个或多个循环表示 511 到 0, 511 到 0, ... , 511 到 0, 511 到 i, i in [0, 511]。
案例1:偏移量小或正常,所以memcpy会在一个周期内完成。
案例 2:偏移量很大,例如16K。所以 memcpy 将在两个或更多周期内完成。
如何获得“循环”?
【问题讨论】:
-
要么使用更大的重载,要么启用中断并增加其中的其他变量(不会那么精确,但是通过足够高的重载,你不会注意到差异......或者你可以估计由新的柜台)