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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2233|回复: 3

有谁用过s3c2104么,我想请教几个问题?

[复制链接]
发表于 2006-12-27 22:46:36 | 显示全部楼层 |阅读模式

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

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

x
0地址开始的是nandflash,0x30000000开始的是sdram,RO是0x3000000, RW是 0x33000000

1,2410  用ads1.2 调试的时候,其 .axf 文件是加载到目标板的哪部分的.是否一经load,其文件就加载到 sdram 中了.

2,如果之前nandflash 中已经烧写进去了 wince 的操作系统,那么在上电以后,nandflash 中的程序已经拷贝到 SDRAM中去了,那么我再用 ads1.2 调试的,比如调试串口或者一个简单的IO口吧,那么这个时候 .axf 文件是如何加载的,是否也是直接加载到
SDRAM中.

3,目前我遇到一个问题,直接下的ZLG的串口实验,但是在执行调试的时候,老是要 DataAbort,而且从运行的过程来看,好象只要"全速"运行就会出问题 DataAbort,如果"单步"执行,则在访问特殊功能寄存器的时候也会 DataAbort.
void  TargetResetInit(void)
{
   int  i;   
   volatile uint32  *cp1, *cp2;
   cp1 = cp2 = NULL;   // 防止编译报警
   rWTCON = 0x0000;   // 关闭WDT          ------这里,访问WDT的控制寄存器,也马上就DataAbort
   rINTMSK = 0xFFFFFFFF;  // 禁止所有中断 (中断控制器)
   rINTSUBMSK = 0x07FF; j1
   rSRCPND = 0xFFFFFFFF;  // 清除中断(源)标志  
发表于 2006-12-28 20:19:18 | 显示全部楼层
水平有限,只能回答第一个问题,你在ADS中配置的RO是0x3000000, RW是 0x33000000,那么在load的时候,就是加载到 sdram 中了。第二个不大清楚,但就Linux而言,这种情况通常在flash加载内核前,Bootloader(如VIVI或UBoot)会让用户选择是否进入可调试其他程序的状态。
 楼主| 发表于 2006-12-30 13:23:07 | 显示全部楼层
谢谢jolin,

如果是加载到了sdram中,那么在加载之前,是不是应该初始化一下sdram,就是说在程序运行之前就应该将sdram的初始化程序运行,但是没有加载,又不能运行初始化程序.好象是矛盾的,这里我有点想不同,盼望指点.
发表于 2006-12-30 19:38:32 | 显示全部楼层
并不矛盾,2410内部存在一个4K大小的ram(称为BootRAM),芯片资料memory那章有讲到(采用Flash启动时,其起始地址为0x0)。在上电后,Flash会自动把程序起始部分4K的内容拷贝到该存储空间运行(通常是在一些测试代码中,叫startup.s或2410init.s的那部分内容),SDRAM的初始化也就包含在此。之后程序才被拷贝到SDRAM中正常执行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-26 22:07 , Processed in 0.034489 second(s), 10 queries , Gzip On, Redis On.

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