这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 万分火急:arm9端口控制和指令周期的奇怪问题

共8条 1/1 1 跳转至

万分火急:arm9端口控制和指令周期的奇怪问题

菜鸟
2004-08-26 18:51:17     打赏
int main()
{
file://AT91F_DBGU_Printk("\n\rBasicBoot Successfull: Enter main()\n\r");
file://wait_for_time(2);
__asm
{
MOV R0,#0x00020000
MOV R1,#0xfffff400
MOV R2,#0x0
MOV R3,#0xFFFFF434
STR R0,[R1],#0x10
STR R0,[R1],#0x20

loop:
STR R0,[R1] file://将PIOA17置高电平
MOV R4,#0x1
STR R0,[R3] file://将PIOA17置低电平
B loop
}
while (1);
}
上面是一段很简单的程序,周期改变PIOA17端口的电平状态,生成一个脉冲信号.采用ATMEL的ARM9芯片,参数设定芯片内部频率为180MHZ.但是实验时我们在PIOA17脚测得的高电平持续时间为240ns,将语句MOV R4,#0X01移去后测得高电平持续时间为120ns.难道180MHZ的速度一条指令要用时120ns? 请大家帮忙出出主意,问题可能出在哪里呢? [em11]



关键词: 万分     火急     端口     控制     指令     周期     奇怪     问题    

菜鸟
2004-08-26 19:33:00     打赏
2楼
顶阿

菜鸟
2004-08-26 20:14:00     打赏
3楼
aa

菜鸟
2004-08-26 13:32:00     打赏
4楼
我们在高低电平转换之前加了最简单add指令(只要一个机器周期的),结果实际测试出来每条add指令也耗时120多ns,感觉就好像cpu才跑在10Mhz左右。 我们的pll参数设定为: PMC_PCSR :00022004 CKGR_MOR: 0000FF01 CKGR_MCFR:00012327 CKGR_PLLAR:2026BE04 CKGR_PLLBR:10483E0E PMC_MCKR : 00000202

菜鸟
2004-08-26 13:38:00     打赏
5楼
根据实际示波器检测的结果计算出来,CPU的速度比我们预想的慢了大概17倍。一句加内部寄存器的ADD指令或STR指令需要这么多机器周期吗?想不通阿 我们把PMC_MCKR:修改成00000201,也就是主时钟信号不过PLL直接进芯片。我们的主晶振是18.432MHZ,结果输出频率比我们预想的结果同样是慢了17倍左右。难道这17倍的误差是芯片解码执行指令引起的?

菜鸟
2004-08-26 13:40:00     打赏
6楼
为什么我们的流水线连接不起来呢?什么样的指令才能使流水线流起来呢?多谢拉!

菜鸟
2004-08-27 10:39:00     打赏
7楼
模仿UC/OS—II的方法试试,如何!ARM9比ARM7是要厉害一些!

菜鸟
2004-08-30 14:11:00     打赏
8楼
ICACHE如何打开啊?请laobiao指点一下,谢谢! 我也是同样的问题,测试arm9的速度,时钟频率180MHz,结果发现非常慢,好像工作在10MHz。

共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]