完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
TQ2440 norflash启动 下载到0地址 连接到0x30000000 主要想实现copy norflash到SDRAM并在SDRAM上运行(虽然nor上可以直接运行,只是想试一下) 问题: (1)为什么当把以下屏蔽的两行(// ldr pc,=on_sdram //on_sdram:)屏蔽时,灯正常亮 不屏蔽灯不亮(虽然这里跳不跳转都一样执行),google了下 觉得有可能是什么连接地址出错 on_sdram标号储存的位置不对没读到 不懂 请大侠们指教 (2)为什么 以下的memsetup函数(就是sdram控制器设置)写成以上的依次赋值后点灯正常,但写成指针只赋头指针地址(韦东山老大的代码是这样写的,上面说位置无关代码,可copy过来不行,换成for形式的就可以)为什么会这样,贴出head.s, init.c中的memsetup,和反汇编,希望大神给解决一下,谢谢了 (3)有的copy到SDRAM的函数是copy到0x30004000这个地址,然后连接地址是0x30000000,会出错吗? .extern main .text .global _start _start: Reset: ldr sp, =0x4096 @ 设置栈指针,以下都是C函数,调用前需要设好栈 bl disable_watch_dog @ 关闭WATCHDOG,否则CPU会不断重启 bl memsetup @ 设置存储控制器以使用SDRAM bl copy_steppingstone_to_sdram @ 复制代码到SDRAM中 // ldr pc,=on_sdram @ 跳到SDRAM中继续执行 //on_sdram: ldr sp, =0x34000000 @ 设置栈指针 ldr lr, =halt_loop @ 设置返回地址 bl |
|
相关推荐
1个回答
|
|
没看到你贴的 ‘head.s, init.c中的memsetup,和反汇编’;
你的问题比较难全部回答,因为没有你说的那个开发板,下载对应的资料分析的话,需要很多精力。建议你弄个JTAG调试器跟踪调试,这样比较好找到问题; 你的第三个问题,如果0X30000000开始的这个地址下面只有16K字节的RAM的话,你说的那个情况就不会出错,而且copy到0X30000000+0x4000*n的范围内都不会出错,(n的范围保证寻址不会超出0X30000000存储器的片选寻址范围) |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard ELF 1板卡-CAN编程示例之开发板测试
769 浏览 0 评论
该问题是用APP给芯海科技的CST92F25芯片发指令是出现的
2583 浏览 1 评论
849 浏览 0 评论
1641 浏览 1 评论
2551 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 12:12 , Processed in 0.607659 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号