查看: 1815|回复: 0

[资料] 飞凌分享:启动代码分析(Third Chapters)

[复制链接]
  • TA的每日心情

    2014-4-10 13:56
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2014-1-24 08:39:56 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 forlinx2013 于 2014-1-24 09:02 编辑

    欢迎大家来到飞凌爱板网专区,对嵌入式技术感兴趣的朋友不妨多多关注一下,我们提供了公司所有开发板的所有资料,也会更新大量技术文章,欢迎大家一块学习提高!!!

    FL2440启动代码分析(Third Chapters

    接上篇,代码如下:
    IMPORT  |Image$$RO$$Base|    ; Base of ROM code; ROM code(也就是代码)的开始地址
    IMPORT  |Image$$RO$$Limit|     ; ROM code的结束地址(=ROM data的开始地址)
    IMPORT  |Image$$RW$$Base|     ; Base of RAM to initialise; RAM 的起始地址
    IMPORT  |Image$$ZI$$Base|       ; Base and limit of area       0初始化的起始地址
    IMPORT  |Image$$ZI$$Limit|       ; to zero initialise               0初始化的结束地址
    ; 在这里用IMPORT伪指令(和c语言的extren关键字一样)引入|Image$$RO$$Base|,
    Image$$RO$$Limit|,|Image$$RW$$Base|, |Image$$ZI$$Base|,|Image$$ZI$$Limit|等比较古怪的变量是编译器生成的。
    ;其中RO, RW, ZI这三个段都保存在Flash中(加载时),但RW,ZI在Flash中的地址肯定不是程序运行时变量所存储的位置,因此我们的程序在初始化时应该把Flash中的RW,ZI拷贝到RAM的对应位置。这些变量是通过ADS的工程设置里面设定的RO Base和RW Base设定的, 最终由编译脚本和连接程序导入程序. 实际上RW,ZI在Flash中的位置就紧接着RO存储。我们知道Image$$RO$$Base,Image$$RO$$Limit,那么Image$$RO$$Limit就是RW (ROM data)的开始。
    IMPORT   MMU_SetAsyncBusMode
    IMPORT   MMU_SetFastBusMode
    ;在这里用IMPORT伪指令(和c语言的extren一样)引入外部变量MMU的快速总线模式和异步总线模式两个变量.
    IMPORT  Main     ; The main entry of mon program
    ;在这里引入一些在其它文件中实现在函数,包括为我们所熟知的main函数
    IMPORT  RdNF2SDRAM   ; Copy Image from Nand Flash to SDRAM
    ;在这里引入一些在其他文件中实现的函数,包括复制代码到SDRAM
    注意最后一句我想强调的是:
    NAND启动时,当里面程序小于4K,不用写什么搬移程序,启动后S3C2440会通过硬件机制将NAND的小于4K的内容,拷贝到其零地址处自带的BootSRAM,然后再运行里面的程序(从0地址处)   
                            当里面程序大于4K,此时系统只将NAND的前4K内容硬件机制方式的搬移到BootSRAM
    中, 还有部分程序保存在NAND中,而NAND是无法运行程序的,需要将所有程序搬移到SDRAM并在其中运行,所以程序的启动代码要包含这块有关程序拷贝的 代码,并在所有程序完成拷贝后在SDRAM中运行。更简单的说,在大于4K条件下,NAND有两个过程,一过程是将NAND4K内容搬移到 BootSRAM中,目的是使系统能够启动(硬件机制,无须程序员干预);二过程是使得程序所有程序搬运到SDRAM中,目的是使程序在SDRAM中运行(需要程序员编程实现)。
    NOR启动时,没有额外要考虑的问题,因为NOR特点是芯片内执行,系统上电或复位,0地址处的启动代码就会被执行



    回复

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-5-17 07:18 , Processed in 0.102930 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.