分享

ADS下 mini2440启动文件到keil MDK的修改

 Runs丶SS11 2014-08-01

《一》切记MDK默认给的s3c24400.h和s3c2440.s启动文件是不完整的,带有中断的程序不可以使用,推荐使用光盘里自带的启动文件2440init.s,不过个人认为最好还是能看懂启动代码后自己重新编写一个,比如使用C实现,而汇编中只实现跳转到C的功能,关于2440init.s修改的地方如下

①MDK和ADS的入口编号不一致:

修改所有的Image$$RO$$Base 换成Image$$ER_ROM1$$Base,将所有 Image$$RW$$Base 换成Image$$RW_RAM1$$Base,所有 Image$$ZI$$Base 换成Image$$RW_RAM1$$Base,

修改第87行附近的    AREA    Init,CODE,READONLY为    AREA    RESET,CODE,READONLY

③声明8字节数据:

在AREA    RESET,CODE,READONLY后面加上一句PRESERVE8

④提示找不到entry:

在PRESERVE8后面加上一句  

EXPORT    __ENTRY
__ENTRY

⑤包含的头文件错误(即memory.inc声明的Tsrc在2440init.s被用成了Trc)

修改第667行附近的Trc为Tsrc

《二》如果使用nor flash启动运行程序,记得在所有程序的Main.c加入mmu.h和MMU_Init(),以便为提供必需的内存管理,用于初始化内存,实现内存映射,具体有2440slib.s来实现,而用nand的话可以无视之,不过个人不推荐加MMU,因为这段程序让人难以理解程序,看起来比较古怪,而且加MMU运行不如直接下载到nand flash运行

《三》如果需要对nandflash进行相关操作(不包括启动代码的从NAND复制到SDRAM),记得在所有程序的Main.c加入nand.h,特别注意启动代码中的从nand flash拷贝数据到SDRAM区不能省略(即2440init.s中的IMPORT  CopyProgramFromNand这一句),他是nand能启动的关键所在(当然stepping stone(SRAM)也很重要)

《三》程序的主函数不一定是Main,因为可以改成任意你想写成的名字,比如改成usercode也可以,具体可以修改bl Main这句即可

   修改好的启动代码,以后可以一直用,这个是一劳永逸的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多