使用QEMU建立Mini2440的模拟环境(6)
391. - } 392. - } 393. + if (s->kernel) { 394. + image_size = load_image(s->kernel, qemu_get_ram_ptr(0)); 395. + if (image_size > 0) { 396. + if (image_size & (512 -1)) 397. + image_size = (image_size + 512) & ~(512-1); 398. + s->cpu->env->regs[15] = S3C_RAM_BASE ; 399. + mini2440_printf(\, s->kernel, s->cpu->env->regs[15]); 400. + } 401. + } 402. } 403. 404. /* Typical touchscreen calibration values */ 405. @@ -353,6 +322,11 @@ static struct mini2440_board_s *mini2440_init_common(int ram_size, 406. return s; 407. } 408. 409. 410. static void mini2440_init(ram_addr_t ram_size, 411. const char *boot_device, 412. @@ -371,9 +345,18 @@ static void mini2440_init(ram_addr_t ram_size, 413. mini = mini2440_init_common(ram_size, 414. kernel_filename, cpu_model, sd); 415. 416. mini->nand = nand_init(NAND_MFR_SAMSUNG, 0x76); 417. mini->cpu->nand->reg(mini->cpu->nand, mini->nand); 418. 419. mini2440_reset(mini); 420. } 编译qemu for mini2440
./configure --target-list=arm-softmmu --disable-linux-user;make
安装,或者直接copy arm-softmmu里面的可执行文件也可以。
2. 让ecos增加对mini2440的支持
http://code.google.com/p/redboot-mini2440/ 这个project里面有全部的代码,不过可能用于各种原因并没有完善。
我们获得他的源代码基于ecos 3.0,然后我们根据smdk2410重新创建mini2440的hal 模块
[css] view plaincopy
1. 2. 3. 4. 5. 6. 7. 8. 9. ricky@ricky-laptop:/opt/ecos/ecos-hg/packages/hal/arm/arm9$ ls mini2440/current/ cdl ChangeLog include misc src ricky@ricky-laptop:/opt/ecos/ecos-hg/packages/hal/arm/arm9$ ls mini2440/current/src/ hal_diag.c mini2440_misc.c ricky@ricky-laptop:/opt/ecos/ecos-hg/packages/hal/arm/arm9$ ls mini2440/current/cdl/ hal_arm_arm9_mini2440.cdl ricky@ricky-laptop:/opt/ecos/ecos-hg/packages/hal/arm/arm9$ ls mini2440/current/include/ hal_diag.h hal_platform_setup.h pkgconf plf_stub.h hal_platform_ints.h memcfg.h plf_io.h s3c2440x.h 10. ricky@ricky-laptop:/opt/ecos/ecos-hg/packages/hal/arm/arm9$ ls mini2440/current/misc/ 11. mini2440_redboot_RAM.ecm mini2440_redboot_ROMRAM.ecm 12. ricky@ricky-laptop:/opt/ecos/ecos-hg/packages/hal/arm/arm9$
3. 针对QEMU的修改
为了能让redboot顺利的运行在qemu上面,我们需要让程序直接跑在sdram上面,但是需要对硬件做必要的初始化。
所以,目前的RAM,ROM,ROMRAM都不太合适,我们加入一个新的启动方式QEMU,相当于ROMRAM方式下面禁用mmu的跳转 [c-sharp] view plaincopy 1. 2. 3. 4. 5. 6. 7. 8. 9. Revision: 3047 Branch: default Author: Ricky Wu
23. CYG_HAL_STARTUP == \ ? \ : / 24. - \ } 25. + CYG_HAL_STARTUP == \ ? \ : / 26. + \ } 27. 28. cdl_option CYGHWR_MEMORY_LAYOUT_LDI { 29. display \ 30. @@ -337,7 +338,8 @@ 31. define -file system.h CYGHWR_MEMORY_LAYOUT_LDI 32. calculated {CYG_HAL_STARTUP == \ ? \>\ : / 33. CYG_HAL_STARTUP == \ ? \>\ : / 34. - \ldi>\ } 35. + CYG_HAL_STARTUP == \ ? \am.ldi>\ : / 36. + \i>\ } 37. } 38. 39. cdl_option CYGHWR_MEMORY_LAYOUT_H { 40. @@ -347,7 +349,8 @@ 41. define -file system.h CYGHWR_MEMORY_LAYOUT_H 42. calculated { CYG_HAL_STARTUP == \ ? \\ : / 43. CYG_HAL_STARTUP == \ ? \\ : / 44. - \.h>\ } 45. + CYG_HAL_STARTUP == \ ? \ram.h>\ : / 46. + \>\ } 47. } 48. } 49. 50. @@ -356,7 +359,7 @@ 51. flavor bool 52. default_value 0 53. parent CYGPKG_HAL_ROM_MONITOR 54. - requires { (CYG_HAL_STARTUP == \) || (CYG_HAL_STARTUP == \) } 55. + requires { (CYG_HAL_STARTUP == \) || (CYG_HAL_STARTUP == \) || (CYG_HAL_STARTUP == \) }
56. description \ 57. Enable this option if this program is to be used as a ROM monitor, 58. i.e. applications will be loaded into RAM on the board, and this 59. ----- packages/hal/arm/arm9/mini2440/current/include/hal_platform_setup.h ----- 60. @@ -91,7 +91,7 @@ 61. #endif 62. 63. 64. -#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM) 65. +#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM) || defined(CYG_HAL_STARTUP_QEMU) 66. #define PLATFORM_SETUP1 _platform_setup1 67. #define CYGHWR_HAL_ARM_HAS_MMU 68. #define CYGSEM_HAL_ROM_RESET_USES_JUMP 69. @@ -160,7 +160,7 @@ …… 此处隐藏:4679字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




