TI中文支持网
TI专业的中文技术问题搜集分享网站

AM1808主频问题

你好!我想问一下AM1808主频,目前根据starterware配置的是300MHz,然后在测试语句运行时间时,发现一条语句时间很长,我是直接对地址进行操作的,没有通过函数,一条语句时间大概为0.1uS,只有10MHz,请问是不是汇编运行耗时太多导致,如何优化?在线等,谢谢!

gaoyang9992006:

我之前回复过,一直没有审核通过。 通过 那个你说的长函数配置的是运行正常吗?如果正常就用那个长语句配置的,实际上有时候长的语句并不一定就效率低,因C语言都是通过相关的宏替换,实际上去操作那些寄存器,这也是为何C是作为底层的高级语言的原因。或许你用地址操作的内容跟之前语句操作的内容不一样,配置的时钟也不同吧。

Yingjie Shen:

回复 gaoyang9992006:

感谢你的答复。我做了一个测试,就是操作一个IO口输出高低电平

while(1)

{

         GPIOPinWrite(SOC_GPIO_0_REGS,65,1);

         GPIOPinWrite(SOC_GPIO_0_REGS,65,0);

}

GPIOPinWrite是starterWare里面的函数,控制GPIO4[0]输出高低电平,这个输出频率大概只有三四百赫兹;后来我将程序改成下面这样

while(1)

{

         HWREG(0x01E2606C)=1;

         HWREG(0x01E26068)=1;

}

这也是根据GPIOPinWrite函数优化过来的,直接针对该IO口赋值,减少中间的计算,这个输出频率大概为3MHz,整体来说速度是不是也太慢了。

上面是主频300MHz测试的,后来我将主频升为375MHz,速度提升了一点。

我还测试for语句,执行一次需要将近400ns。

请问,怎么才能提高执行速率?谢谢!

Yingjie Shen:

回复 Yingjie Shen:

TI 的大牛们,怎么都不见你们答复啊。。。。

gaoyang9992006:

回复 Yingjie Shen:

楼主你好,我没用过这个芯片,但是我有个问题,就是该芯片是不是对GPIO有专门的时钟配置呢?因为我用STM32的时候,是有专门的GPIO时钟的, 每次使用IO都要初始化IO的时钟,你查看一下这个芯片有没有类似的设置寄存器。还有该芯片官方提供了例程吗,例程里一般会有关于IO的操作例程的

Yingjie Shen:

回复 gaoyang9992006:

感谢你的回复。这个芯片是有专门针对GPIO的时钟配置,然后这个分频时钟是芯片内部固定的分频比,自己无法再进行配置去提高IO口的频率;我这个芯片每次使用IO好像都不需要初始化时钟,都是一开始就把时钟配置好,后续不需再进行时钟配置;官方提供了例程,只是有GPIO的操作,但是没有涉及到速率,所以很头疼,现在都不知道问题出在哪里,按道理IO口操作的速率不应该这么慢的。

gaoyang9992006:

回复 Yingjie Shen:

如果内部固定了分频比,只需要调用那些分频就行了。默认的应该是速度比较慢的分频比。确实不应该那么慢,可惜我手上没有那个芯片,回头找找,我试试。这个芯片有官方提供相关GPIO的库函数没,看看里面有没有关于时钟的操作函数。

Yingjie Shen:

回复 gaoyang9992006:

谢谢回复!分频比我都调到最快了,但还是很慢;官方提供了GPIO的库函数,没有看到关于时钟的操作函数,目前不单单是GPIO口操作慢,感觉每一条语句都需要耗时很长。

user1369122:

回复 Yingjie Shen:

哥们你发错论坛了 AM1808属于Sitara系列,是处理器,不算MCU了

Yingjie Shen:

回复 user1369122:

yishan wang

哥们你发错论坛了 AM1808属于Sitara系列,是处理器,不算MCU了

gaoyang9992006:

回复 Yingjie Shen:

楼主这个问题解决了没,问题是出在哪儿?是IO的时钟吗?

赞(0)
未经允许不得转载:TI中文支持网 » AM1808主频问题
分享到: 更多 (0)