mini2440 qemu 用u-boot 加载 RTEMS

遇到这个问题已经很久了,一直没有解决,今天已经很晚了刚好想到一些,又看了看其他网友的文档,解决了这个问题。

 

 

还是涉及到image本身的问题

 

1. 运行步骤

首先我们要把elf转换成bin文件

 

arm-rtems4.9-objcopy -Obinary ticker.exe ticker.bin

 

然后配置好mini2440 qemu的网络tun功能

 

需要把程序下载到程序的entry运行就可以了。

 

tftp 0x3000100 ticker.bin

go 0x3000100

 

2.探究原因

 

(关于这部分更深入的研究请参考雪松的帖子:http://blog.csdn.net/coolbacon/archive/2011/03/20/6262776.aspx)

原来转换成bin文件以后,entry前面的伪指令是没有的,

想想也对,不烧到那里不就预留了吗?:-)

 

 

 

3.测试一下我们的结论

 

以上还只是推测,那么我们测试一下用u-boot load redboot.bin就知道了,之前也是一直失败的。

redboot.bin的ram entry是0x30008000

 

下面是执行结果,^_^,今天让我明白了一个一直混淆的问题。

"多谢关注realboard,请访问慧至科技官方网站www.hugacy.com" 感谢大家关注realboard,再三感谢,尤其是众多发email过来询问的网友。 鉴于有网友怀疑realboad速度比qemu慢,事实胜于雄辩,提供测试方法如下: 测试方法: 分别运行两个batch程序,用秒表或PC时钟计时(大概1分钟左右结束) 计时方法: 程序启动开始计时; 出现UI画面结束计时. 测试代码(rt-thread 0.4.0 relese): 如果对测试代码有疑问,请联系rt-thread咨询 bsp/mini2440/sdcard.c rt_uint8_t sd_init(void) { //-- SD controller & card initialize int i; sd_delay(1000000); //此处增加一行对ARM仿真性能进行压力测试 /* Important notice for MMC test condition */ /* Cmd & Data lines must be enabled by pull up resister */ SDIPRE = PCLK/(INICLK)-1; SDICON = (0<<4) | 1; // Type A, clk enable SDIFSTA = SDIFSTA | (1<<16); SDIBSIZE = 0x200; /* 512byte per one block */ SDIDTIMER=0x7fffff; /* timeout count */ /* Wait 74SDCLK for MMC card */ for(i=0; i<0x1000; i++); sd_cmd0(); 参考配置: Pentium(R) Dual-Core CPU E5400 @ 2.70GHz 2.69GHz, 3.46GB of RAM 参考结果: qemu为47秒, realboard为28秒 realboard之所有没有达到23秒以内,是因为Timer处理和外设IO还有专门优化。 早期曾经对realboard核心指令集模拟器做过多媒体解码测试,综合性能是qemu的2倍。 详情请参考我的CSDN blog realboard -- 继续挑战ARM高性能软件仿真极限 <** 任何个人或团体学习者,教育培训机构,自由项目开发组织,在非商业赢利前提下,均可以无偿体验和使用realboard,商业使用请联系作者获得授权, email : lxzhg@hotmail.com **> 测试包中所含其它资源为自由软件开发组织所有,请参考各自许可协议。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值