ARM7寄存器应用的问题?请帮忙 谢谢

[复制链接]
 楼主| Atmel51 发表于 2007-9-14 10:35 | 显示全部楼层 |阅读模式
我的代码:<br />//************************************************************<br />//&nbsp;&nbsp;&nbsp;&nbsp;程序说明:LED1,LDE2,LDE3依次亮灭<br />//************************************************************<br /><br />void&nbsp;delay(unsigned&nbsp;long&nbsp;int&nbsp;i)<br />{<br />&nbsp;&nbsp;for(;i&gt0;i--)<br />&nbsp;&nbsp;;<br />}<br /><br />int&nbsp;main(void)<br />{<br />13&nbsp;&nbsp;PIO_PER=0x0000000F;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//PIOA0-2作为I/O使用<br />14&nbsp;&nbsp;PIO_OER=0x0000000F;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//PIOA0-2输出使能<br />&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;{<br />17&nbsp;&nbsp;&nbsp;&nbsp;PIO_CODR=0x00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//PIOA0输出低电平<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(1000000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />20&nbsp;&nbsp;&nbsp;&nbsp;PIO_SODR=0x00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//PIOA0输出高电平<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(1000000);<br />&nbsp;&nbsp;&nbsp;&nbsp;PIO_CODR=0x00000002;<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(1000000);<br />&nbsp;&nbsp;&nbsp;&nbsp;PIO_SODR=0x00000002;<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(6000000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;PIO_CODR=0x00000004;<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(1000000);<br />&nbsp;&nbsp;&nbsp;&nbsp;PIO_SODR=0x00000004;<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(1000000);<br />&nbsp;&nbsp;&nbsp;}<br />}<br />编译时出错:如下:<br />Error:C2456E:&nbsp;undeclared&nbsp;name&nbsp;inventing&nbsp;'extern&nbsp;int&nbsp;PIO_PER'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line&nbsp;13&nbsp;14&nbsp;17&nbsp;20<br />在ARM中寄存器不能直接用吗?<br /><br />
dld2 发表于 2007-9-14 10:40 | 显示全部楼层

这个不是arm的寄存器。是芯片厂家在arm核外围扩展的特殊功能寄存器。<br />arm编译器认不得。
 楼主| Atmel51 发表于 2007-9-14 11:26 | 显示全部楼层

是这样啊!那我再看看书,看是怎么做的!

  
soso 发表于 2007-9-14 11:41 | 显示全部楼层

关键是头文件里没有给这个寄存器名下定义。

可以查一下头文件的情况。找到这些寄存器,看他们的物理地址有无定义。
 楼主| Atmel51 发表于 2007-9-14 15:02 | 显示全部楼层

这个地址映射 把我搞的头晕!

看了半天都没有搞明白!比较复杂!
fcw 发表于 2007-9-14 15:34 | 显示全部楼层

我也是

有沒有arm高手指點一下,不勝感謝!
Ice_River 发表于 2007-9-14 16:46 | 显示全部楼层

地址映射

把物理寄存器的位置指定到一个地址上,访问那个地址等于直接访问寄存器
bald 发表于 2007-9-14 16:56 | 显示全部楼层

用的谁的芯片?

厂家应该提供Include文件。如果没有,在手册上查一下地址自己定义。<br />
 楼主| Atmel51 发表于 2007-9-15 07:22 | 显示全部楼层

用 的是AT91SAM7S64 ,头文件没有 找到

这个头文件&nbsp;在ADS中没有!那位知道在哪能有,我也下个看看!
ljolove 发表于 2007-9-15 08:41 | 显示全部楼层

芯片手册里应该就有定义

要是找不到就自己写吧,就是有点麻烦呵呵
 楼主| Atmel51 发表于 2007-9-15 10:09 | 显示全部楼层

告诉各位 在IAR里面我找到了

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

20

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

4

主题

20

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部