Part Number:TMS320F28335
有搜寻了以前的文章,有看到说
(想确定一段代码的运行时间(绝对值),最准确也是最简单直接的方法是在前后加GPIO翻转,通过示波器量测。如果是想知道对应CPU时钟,则可以反汇编计算对应的指令周期数。)
请问具体代码该如何写?
Green Deng:
你指的应该是这篇FAQ了:https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/200001/faq-ccs/652278?tisearch=e2e-sitesearch&keymatch=%2522%25E8%25BF%2590%25E8%25A1%258C%25E6%2597%25B6%25E9%2597%25B4%2522#652278
机器周期主要针对汇编语言而言,在汇编语言下,程序的每一条语句执行的时间都是机器周期的整数倍,而且语句占用的时间是可以计算出来的,而c语言语句占用时间是不可计算的。反汇编的话CCS上可以直接在view – disassembly中查看反汇编代码
,
Jack:
您好,是这篇文章没错,想请教第二种方法,具体如何实现
2、 CCS里面的功能不是很准确,如果只是想确定一段代码的运行时间(绝对值),最准确也是最简单直接的方法是在前后加GPIO翻转,通过示波器量测
,
Green Deng:
这个其实说起来很简单,就是在进入程序段之前加一个GPIO翻转,在出程序段之后再加一个GPIO翻转。然后用示波器测量这两个翻转信号之间的时间
,
Jack:
我在中断子程序开始跟结束分别加了这两行GPIO翻转的程序
GpioDataRegs.GPATOGGLE.bit.GPIO2 = 0;
GpioDataRegs.GPATOGGLE.bit.GPIO2 = 1;
在示波器量测.GPIO2的脚位,得到这张图,请问得到的波形是正确的吗?
,
Green Deng:
额,你这个波形为什么会有负值?而且负值比正值大?GPIO有后端电路吗?
,
Jack:
我不知道为什么有负值,整个dsp f28335都没有接任何线路
GPIO没有后端电路
跟gpio有没有开脚位有关系吗?
,
Green Deng:
没关系。。。因为芯片不可能输出负电压。
是不是你的示波器设置或者测试方式有问题?有测过其他信号是否正常吗?