在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2638|回复: 4

[求助] 请教版主大人:RAM访问空间地址访问

[复制链接]
发表于 2013-3-21 20:44:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

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 )
发表于 2013-3-21 23:32:03 | 显示全部楼层
你的sp设的是0x103fffff, 本身就不是ram区。程序执行没问题。
 楼主| 发表于 2013-3-22 08:42:42 | 显示全部楼层
回复 2# free-arm
嗯,是的,后面发现问题了。还有就是我ADS编译出来的指令是EAFF_FFFE,转换出rom.bin却变成EA00_0000了。。。
 楼主| 发表于 2013-3-22 09:55:43 | 显示全部楼层
后面初步发现问题:
好像C运行环境有问题。程序访问了非法的地址空间,而我给出的数据时0,此时就杯具了,导致程序跑飞。
ADS1.2没有控制好MEMORY MAP,还是改用KEIL吧。
发表于 2013-6-13 20:05:16 | 显示全部楼层
顶!!!!!!!!!!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-5 13:27 , Processed in 0.017855 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表