最近一个项目,
对程序执行时间有严格要求, 用的是28035的MCU。
我测试一段电机控制的运算程序。大概2K左右。 在FLASH里执行的时间大概90US左右.
尝试将这部分代码移植到RAM中运行。 发现执行时间还是跟在FLASH差不多,87US左右,少的不明显。
实际运行,用IO翻转测试运行时间。
用JTAG的仿真器查看,该部分移植的代码地址已经在RAM地址区间。
RAM地址区间是0X009000–0X009800 2K字
因为之前有用过2808系列的DSP,将代码从FLASH移动到RAM去运行节省20%左右的执行时间,但是现在28035的这种操作似乎没有效果。
想知道造成这种的原因,是因为主频差异的原因吗? 28035主频60M 2808主频100M
期待回复!!感谢!
A recent project,
There are strict requirements for program execution time, using the MCU 28035.
I test a calculation program for motor control. About 2K. The execution time in FLASH is about 90US.
Try to port this code to RAM and run it. It is found that the execution time is still about the same as FLASH, about 87US, and the less is not obvious.
Actual running, use IO to flip test running time.
Using a JTAG emulator to view, the code address ported in this part is already in the RAM address range.
RAM address range is 0X009000–0X009800 2K words
Because the 2808 series DSP was used before, moving code from FLASH to RAM to save execution time by about 20%, but now this operation of 28035 seems to have no effect.
Want to know the cause of this, is it due to the difference in main frequency? 28035 frequency 60M 2808 frequency 100M
We are expecting a reply! !! thank!
Green Deng:一般我们建议将实时性要求比较高的代码,和FLASH初始化相关的代码,比如中断程序,放在RAM上运行。
关于速度对比,你可以参考一下这个帖子:e2echina.ti.com/…/106887
最近一个项目,
对程序执行时间有严格要求, 用的是28035的MCU。
我测试一段电机控制的运算程序。大概2K左右。 在FLASH里执行的时间大概90US左右.
尝试将这部分代码移植到RAM中运行。 发现执行时间还是跟在FLASH差不多,87US左右,少的不明显。
实际运行,用IO翻转测试运行时间。
用JTAG的仿真器查看,该部分移植的代码地址已经在RAM地址区间。
RAM地址区间是0X009000–0X009800 2K字
因为之前有用过2808系列的DSP,将代码从FLASH移动到RAM去运行节省20%左右的执行时间,但是现在28035的这种操作似乎没有效果。
想知道造成这种的原因,是因为主频差异的原因吗? 28035主频60M 2808主频100M
期待回复!!感谢!
A recent project,
There are strict requirements for program execution time, using the MCU 28035.
I test a calculation program for motor control. About 2K. The execution time in FLASH is about 90US.
Try to port this code to RAM and run it. It is found that the execution time is still about the same as FLASH, about 87US, and the less is not obvious.
Actual running, use IO to flip test running time.
Using a JTAG emulator to view, the code address ported in this part is already in the RAM address range.
RAM address range is 0X009000–0X009800 2K words
Because the 2808 series DSP was used before, moving code from FLASH to RAM to save execution time by about 20%, but now this operation of 28035 seems to have no effect.
Want to know the cause of this, is it due to the difference in main frequency? 28035 frequency 60M 2808 frequency 100M
We are expecting a reply! !! thank!
user759616:
回复 Green Deng:
感谢回复,我移动的就是中断程序,因为目前中断程序执行时间过长,需要移动到RAM去减少运行时间.你的这个帖子我看过,不知道RAM的运行速度可以到150M 是不是针对主频是28335的150M的主频而言。所以, 那是不是28035的主频60M的时候FLASH跟RAM的运行时间没什么区别呢?有没有相关文件介绍FLASH跟RAM的运行区别的。
最近一个项目,
对程序执行时间有严格要求, 用的是28035的MCU。
我测试一段电机控制的运算程序。大概2K左右。 在FLASH里执行的时间大概90US左右.
尝试将这部分代码移植到RAM中运行。 发现执行时间还是跟在FLASH差不多,87US左右,少的不明显。
实际运行,用IO翻转测试运行时间。
用JTAG的仿真器查看,该部分移植的代码地址已经在RAM地址区间。
RAM地址区间是0X009000–0X009800 2K字
因为之前有用过2808系列的DSP,将代码从FLASH移动到RAM去运行节省20%左右的执行时间,但是现在28035的这种操作似乎没有效果。
想知道造成这种的原因,是因为主频差异的原因吗? 28035主频60M 2808主频100M
期待回复!!感谢!
A recent project,
There are strict requirements for program execution time, using the MCU 28035.
I test a calculation program for motor control. About 2K. The execution time in FLASH is about 90US.
Try to port this code to RAM and run it. It is found that the execution time is still about the same as FLASH, about 87US, and the less is not obvious.
Actual running, use IO to flip test running time.
Using a JTAG emulator to view, the code address ported in this part is already in the RAM address range.
RAM address range is 0X009000–0X009800 2K words
Because the 2808 series DSP was used before, moving code from FLASH to RAM to save execution time by about 20%, but now this operation of 28035 seems to have no effect.
Want to know the cause of this, is it due to the difference in main frequency? 28035 frequency 60M 2808 frequency 100M
We are expecting a reply! !! thank!
Green Deng:
回复 user759616:
中断程序中是不是执行了很多运算?
RAM的运行速度可以到150M 是针对主频是28335的150M的主频而言,即片上RAM几乎是0等待周期的。
介绍FLASH跟RAM的运行区别的文档似乎没有,不过datasheet中有介绍flash运行等待周期的,你可以参考5.14 Flash Timing
www.ti.com/…/tms320f28035.pdf
同时也可以参考这个贴子的介绍:e2e.ti.com/…/3202012
最近一个项目,
对程序执行时间有严格要求, 用的是28035的MCU。
我测试一段电机控制的运算程序。大概2K左右。 在FLASH里执行的时间大概90US左右.
尝试将这部分代码移植到RAM中运行。 发现执行时间还是跟在FLASH差不多,87US左右,少的不明显。
实际运行,用IO翻转测试运行时间。
用JTAG的仿真器查看,该部分移植的代码地址已经在RAM地址区间。
RAM地址区间是0X009000–0X009800 2K字
因为之前有用过2808系列的DSP,将代码从FLASH移动到RAM去运行节省20%左右的执行时间,但是现在28035的这种操作似乎没有效果。
想知道造成这种的原因,是因为主频差异的原因吗? 28035主频60M 2808主频100M
期待回复!!感谢!
A recent project,
There are strict requirements for program execution time, using the MCU 28035.
I test a calculation program for motor control. About 2K. The execution time in FLASH is about 90US.
Try to port this code to RAM and run it. It is found that the execution time is still about the same as FLASH, about 87US, and the less is not obvious.
Actual running, use IO to flip test running time.
Using a JTAG emulator to view, the code address ported in this part is already in the RAM address range.
RAM address range is 0X009000–0X009800 2K words
Because the 2808 series DSP was used before, moving code from FLASH to RAM to save execution time by about 20%, but now this operation of 28035 seems to have no effect.
Want to know the cause of this, is it due to the difference in main frequency? 28035 frequency 60M 2808 frequency 100M
We are expecting a reply! !! thank!
mangui zhang:是效率问题,预计flash中运行时ram钟的80%左右
最简单的是LED闪烁程序,看看两种闪烁的频率
可以将flash程序搬移到ram中运行提高效率