Board logo

标题: 关于用ADS编译S3C44B0X开发板BOOTLOADER的问题 [打印本页]

作者: zjfjoe    时间: 2006-10-30 22:51     标题: 关于用ADS编译S3C44B0X开发板BOOTLOADER的问题

手头有块三星S3C44B0X开发板,硬件配置是网上最常见的那种,nGcs0接SST39VF1601,nGcs6接HY57V641620。

这两天在看BOOTLOADER,发现一个问题,百思不得其解。

问题描述:

同一个BOOTLOADER程序,在ADS1.2中设置ARM Linker参数为以下两种情况:

情况1:RO BASE 设 0x0000000   RW BASE 设 0xc100000  Image entry point 设 0x0000000

情况2:RO BASE 设 0xc000000   RW BASE 设 0xc100000  Image entry point 设 0xc000000

以上2种情况都能通过编译,将hex文件烧写到Flash中后发现程序运行速度差异很大,情况1很慢,情况2很快。

尤其是执行延迟循环时更加明显,从超级终端看,情况1时CPU执行循环的时间相对于情况2而言长了很多,害我当初以为情况1时是程序跑飞了,后来将循环次数减少,发现程序可以正常运行。

请高手帮我看看这是什么原因造成的?也许这只是一个小问题,可我还不是很清楚,望高手赐教,在此谢过!


作者: linuxarm    时间: 2006-10-31 13:54

入口地址是0xc...意思是程序在SDRAM中跑,当然比flash ROM中快了.
作者: zjfjoe    时间: 2006-10-31 16:14

QUOTE:
以下是引用linuxarm在2006-10-31 13:54:00的发言:
入口地址是0xc...意思是程序在SDRAM中跑,当然比flash ROM中快了.

这个我知道,可是44B0X复位后是从0x0地址开始运行,而且程序也是烧写在flash内,BOOTLOADER只是将RW与ZI数据段拷贝到SDRAM中,RO段数据应该还在flash内啊,程序怎么能在SDRAM中跑呢?
作者: linuxarm    时间: 2006-11-1 12:32

你肯定bootloader没有copy RO段到SDRAM中?
作者: zjfjoe    时间: 2006-11-1 16:28

没有,BOOTLOADER程序我仔细看过了

况且44B0X也不支持mmu啊






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0