搜索
bottom↓
回复: 2

TQ2440

[复制链接]

出0入4汤圆

发表于 2011-9-3 10:41:24 | 显示全部楼层 |阅读模式
通过硬件引脚设置从NORFLASH启动,
那么上电首先从0x0000 0000 (NORFLASH 共2M)运行启动代码,把FLASH的代码段和数据段全部复制到0x3000 0000(外部RAM,共64M),然后跳到RAM(跳到main)去运行,此时RAM的也有一份启动代码(该启动代码在main函数前面),那么这段启动代码是不是相当永远都不会运行啊?


但是我们使用仿真器时,却在运行RAM的启动代码,但是本来自代码就是就在RAM运行,此时又从NOR里拷贝数据到RAM,这样在RAM运行的代码不出问题?

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2011-9-3 12:31:29 | 显示全部楼层
肯定 不会执行 两次了,,,启动代码有的。。

出0入4汤圆

 楼主| 发表于 2011-9-3 14:05:32 | 显示全部楼层
谢谢maxbiger

仔细看了启动代码,是有这样描述


copy_proc_beg_yes_or_no                        ;若是在板从norflash启动,先把用来’拷贝装载域RO段到运行域的程序‘拷贝到SDRAM中,并在SDRAM中执行此程序,以便快速完成装载域RO段程序到运行域的拷贝
                                                                ;若是处于调试状态,或者nandfalsh启动模式的拷贝代码已经完成,则不执行’拷贝装载域RO段到运行域‘的拷贝操作,直接跳到初始化ZI段的子程序处执行
                                                               
        adr        r0, ResetEntry                        ;若是norflash启动模式,r0指向的是装载域RO段起始地址,否则r0指向的是运行域的RO段起始地址
        ldr        r1, BaseOfROM                        ;r1指向运行域RO段起始地址
        cmp        r0, r1                                        ;判断两者是否相等
        ldreq        r2, BaseOfZero                ;两者相等,说明是’处于调试状态‘或者是’nandflash启动模式并且程序已经拷贝到SDRAM中‘而且’已经在SDRAM中运行‘,让r2指向运行域ZI段的开始地址
                                                                ;注意此时运行域已经存在了RW段,所要做的仅仅是初始化ZI段
        beq        init_zi_beg                                ;直接跳转到初始化ZI段子程序
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 10:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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