天嵌 ARM开发社区

 找回密码
 注册
查看: 2691|回复: 4

关于程序从Steppingstone到SDRAM的执行过程的问题

[复制链接]
jxhui23 发表于 2012-12-17 12:40:47 | 显示全部楼层 |阅读模式
我用ADS1.2调试的时候,R0 base设置为0x3000 0000   Image entry Point设置为:0x3000 0000  ;
从NANDFlash启动,烧写到NANDFLASH,  代码从片内SRAM搬运到SDRAM后,怎么PC指针还是在片内SRAM中,而没有跳转到SDRAM中执行程序。求解

PS:包中name.txt文件为SDRAM初始化序列:

本帖子中包含更多资源

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

×
亚瑟王 发表于 2012-12-17 15:06:46 | 显示全部楼层
你的程序根本都不会在SDRAM中运行,你的程序只在SRAM中运行,所以PC的指针是在SRAM中的。
回复

使用道具 举报

 楼主| jxhui23 发表于 2012-12-17 21:37:09 | 显示全部楼层

        IMPORT main ; 声明C函数符号
        AREA    Init, CODE, READONLY
        CODE32
        ENTRY
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       
        BL DISABLE_WATCH_DOG
        BL MEMSETUP
        BL COPY_STEPPINGSTONE_TO_SDRAM
        LDR pc,=on_sdram
on_sdram
        LDR sp,=0x34000000
        bl main
               
halt_loop
        b halt_loop   
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

执行了 LDR pc,=on_sdram 就应该跳转到SDRAM中运行啊       
回复

使用道具 举报

亚瑟王 发表于 2012-12-17 22:00:18 | 显示全部楼层
jxhui23 发表于 2012-12-17 21:37
IMPORT main ; 声明C函数符号
        AREA    Init, CODE, READONLY
        CODE32

根据我的理解,你的main函数还在sram中,应该调用的还是sram中的main。
回复

使用道具 举报

 楼主| jxhui23 发表于 2012-12-17 22:10:56 | 显示全部楼层
COPY_STEPPINGSTONE_TO_SDRAM
这个函数已经把全部代码(包括main函数)复制到0x3000 0000开始的SDRAM地址了啊
ADS中 R0 base设置为0x3000 0000   Image entry Point设置为:0x3000 0000  ;
执行LDR pc,=on_sdram后PC跳转到了0x3000 0010的位置,然后从这里开始跑程序吧
回复

使用道具 举报

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

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-10-29 08:19 , Processed in 2.050769 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表