我对ARM来说还很陌生,正在尝试获取用C语言为Cortex-M4处理器编写的函数的计时结果。你们中的任何人都能告诉我我需要采取什么步骤来获得计时结果吗?
我一直在Keil uVision上运行代码,但是在实际环境调试期间无法使用程序的Performance Analyzer。根据我所阅读的内容,如果使用的是Keil的专有连接器,则Performance Analyzer似乎只能在模拟调试会话之外运行。
答案 0 :(得分:0)
在您希望计时的功能开始时将引脚设置为高电平,在结束时将其设置为低电平,然后使用示波器测量脉冲宽度。
在您使用的哪个Cortex M4上可能有一个周期计数寄存器DWT->CYCCNT
,但是其中的包含是由供应商定义的。详细信息可以在Cortex M4 Technical Reference Manual中找到。如果需要,您的处理器数据表,参考手册和编程手册应提供更多信息。
或者,如果您有一个快速计时器,例如从处理器时钟运行的SysTick,则可以将计数初始化为0x00FFFFFF,在功能开始时将其递减计数,并在功能结束时将其停止,然后就可以工作得出的时间为(0x00FFFFFF-SysTick-> CVR)*(1 / SysTick频率)。