|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 chen.terry 于 2013-3-22 08:45 编辑
我准备用arm6.v这个核搭建一个小型系统。。。
我的规划如下:
我的ROM空间时1MB,地址范围是0x0000_0000~0x000F_FFFF
我的RAM空间时4MB,地址范围是0x8000_0000~0x803F_FFFF
其他外设,比如IIC、GPS、UART等等的空间。
我用ADS1.2编译的程序,RO_BASE设置为0x0000_0000,RW_BASE,设置为0x8000_0000,然后我编译生成bin文件,加载让处理器执行。
我发现,处理器给出的RAM地址不是从0x8000_0000开始,这是怎么回事,是不是我哪儿设置有问题?哪位高手帮帮忙吧
另外:附上我的start.s最简单的汇编程序:
AREA INIT,CODE,READONLY
IMPORT __main
ENTRY
CODE32
START LDR SP, =0x103FFFFF ;更正一下,这里应该是0x803FFFFF
B __main
END
C程序中只有一个主函数,主函数中只有一个while(1);
我复位两个时钟周期,在复位期间,取出的是0处的指令,这个正确。然后我设置一下SP寄存器的值,指向最大的RAM地址处。然后跳转到C函数执行。
我发现加载的第二条指令是EA000000,要从ROM中取出立即数0x103FFFFF。后面跳转到C函数执行。后面有的地方ram_wen有效,地址却是ROM的地址范围。。。
ROM是不可写的啊。。。
我的Verilog程序在附件里面,版主有没有空帮看看啊。。。感激不尽!!!
sim.rar
(15.73 KB, 下载次数: 3 )
|
|