redboot on QEMU for mini2440

发布者:EnchantedHeart最新更新时间:2024-06-27 来源: elecfans关键字:redboot  QEMU  for  mini2440 手机看文章 扫描二维码
随时随地手机看文章

这段时间一直在研究ecos,所以有了把ecos移植到mini2440的qemu平台的想法。经过几天的折腾,终于可以在qemu的上面看到redboot的命令了。

先看看成果,然后进入枯燥的coding历程 

现在开始看代码,:-) 

1. 获得代码 

git clone git://repo.or.cz/qemu/mini2440.git  qemu 

修改启动部分为ram的最小地址直接启动

  1. ricky@ricky-laptop:~/ecos/projects/mini2440-qemu/mini2440$ git diff  

  2. diff --git a/hw/mini2440.c b/hw/mini2440.c  

  3. index 5decf4b..7a70aae 100644  

  4. --- a/hw/mini2440.c  

  5. +++ b/hw/mini2440.c  

  6. @@ -258,46 +258,15 @@ static void mini2440_reset(void *opaque)  

  7.      struct mini2440_board_s *s = (struct mini2440_board_s *) opaque;  

  8.      uint32_t image_size;  

  9.    

  10. -       /* 

  11. -        * Normally we would load 4 KB of nand to SRAM and jump there, but 

  12. -        * it is not working perfectly as expected, so we cheat and load 

  13. -        * it from nand directly relocated to 0x33f80000 and jump there 

  14. -        */  

  15. -       if (mini2440_load_from_nand(s->nand, 0, S3C_RAM_BASE | 0x03f80000, 256*1  

  16. -               mini2440_printf('loaded default u-boot from NAND/n');  

  17. -               s->cpu->env->regs[15] = S3C_RAM_BASE | 0x03f80000; /* start addr 

  18. -       } 

  19. -#if 0 && defined(LATER) 

  20. -       if (mini2440_load_from_nand(s->nand, 0, S3C_SRAM_BASE_NANDBOOT, S3C_SRAM 

  21. -           s->cpu->env->regs[15] = S3C_SRAM_BASE_NANDBOOT;     /* start address 

  22. -           mini2440_printf('4KB SteppingStone loaded from NAND/n'); 

  23. -       } 

  24. -#endif 

  25. diff --git a/hw/mini2440.c b/hw/mini2440.c 

  26. index 5decf4b..7a70aae 100644 

  27. --- a/hw/mini2440.c 

  28. +++ b/hw/mini2440.c 

  29. @@ -258,46 +258,15 @@ static void mini2440_reset(void *opaque) 

  30.      struct mini2440_board_s *s = (struct mini2440_board_s *) opaque; 

  31.      uint32_t image_size; 

  32.   

  33. -       /* 

  34. -        * Normally we would load 4 KB of nand to SRAM and jump there, but 

  35. -        * it is not working perfectly as expected, so we cheat and load 

  36. -        * it from nand directly relocated to 0x33f80000 and jump there 

  37. -        */  

  38. -       if (mini2440_load_from_nand(s->nand, 0, S3C_RAM_BASE | 0x03f80000, 256*10  

  39. -               mini2440_printf('loaded default u-boot from NAND/n');  

  40. -               s->cpu->env->regs[15] = S3C_RAM_BASE | 0x03f80000; /* start addre 

  41. -       } 

  42. -#if 0 && defined(LATER) 

  43. -       if (mini2440_load_from_nand(s->nand, 0, S3C_SRAM_BASE_NANDBOOT, S3C_SRAM_ 

  44. -           s->cpu->env->regs[15] = S3C_SRAM_BASE_NANDBOOT;     /* start address, 

  45. -           mini2440_printf('4KB SteppingStone loaded from NAND/n'); 

  46. -       } 

  47. -#endif 

  48. -       /* 

  49. diff --git a/hw/mini2440.c b/hw/mini2440.c 

  50. index 5decf4b..7a70aae 100644 

  51. --- a/hw/mini2440.c 

  52. +++ b/hw/mini2440.c 

  53. @@ -258,46 +258,15 @@ static void mini2440_reset(void *opaque) 

  54.      struct mini2440_board_s *s = (struct mini2440_board_s *) opaque; 

  55.      uint32_t image_size; 

  56.   

  57. -       /* 

  58. -        * Normally we would load 4 KB of nand to SRAM and jump there, but 

  59. -        * it is not working perfectly as expected, so we cheat and load 

  60. -        * it from nand directly relocated to 0x33f80000 and jump there 

  61. -        */  

  62. -       if (mini2440_load_from_nand(s->nand, 0, S3C_RAM_BASE | 0x03f80000, 256*102  

  63. -               mini2440_printf('loaded default u-boot from NAND/n');  

  64. -               s->cpu->env->regs[15] = S3C_RAM_BASE | 0x03f80000; /* start addres 

  65. -       } 

  66. -#if 0 && defined(LATER) 

  67. -       if (mini2440_load_from_nand(s->nand, 0, S3C_SRAM_BASE_NANDBOOT, S3C_SRAM_S 

  68. -           s->cpu->env->regs[15] = S3C_SRAM_BASE_NANDBOOT;     /* start address,  

  69. -           mini2440_printf('4KB SteppingStone loaded from NAND/n'); 

  70. -       } 

  71. -#endif 

  72. -       /* 

  73. -        * if a u--boot is available as a file, we always use it 

  74. diff --git a/hw/mini2440.c b/hw/mini2440.c 

  75. index 5decf4b..7a70aae 100644 

  76. --- a/hw/mini2440.c 

  77. +++ b/hw/mini2440.c 

  78. @@ -258,46 +258,15 @@ static void mini2440_reset(void *opaque) 

  79.      struct mini2440_board_s *s = (struct mini2440_board_s *) opaque; 

  80.      uint32_t image_size; 

  81.   

  82. -       /* 

  83. -        * Normally we would load 4 KB of nand to SRAM and jump there, but 

  84. -        * it is not working perfectly as expected, so we cheat and load 

  85. -        * it from nand directly relocated to 0x33f80000 and jump there 

  86. -        */  

  87. -       if (mini2440_load_from_nand(s->nand, 0, S3C_RAM_BASE | 0x03f80000, 256*1024)>  

  88. -               mini2440_printf('loaded default u-boot from NAND/n');  

  89. -               s->cpu->env->regs[15] = S3C_RAM_BASE | 0x03f80000; /* start address,  

  90. -       } 

  91. -#if 0 && defined(LATER) 

  92. -       if (mini2440_load_from_nand(s->nand, 0, S3C_SRAM_BASE_NANDBOOT, S3C_SRAM_SIZE 

  93. -           s->cpu->env->regs[15] = S3C_SRAM_BASE_NANDBOOT;     /* start address, u-b 

  94. -           mini2440_printf('4KB SteppingStone loaded from NAND/n'); 

  95. -       } 

  96. -#endif 

  97. -       /* 

[1] [2] [3] [4] [5] [6] [7]
关键字:redboot  QEMU  for  mini2440 引用地址:redboot on QEMU for mini2440

上一篇:ecos on QEMU for mini2440 编译方法
下一篇:minigui1.6移植到mini2440

推荐阅读最新更新时间:2024-11-17 00:14

华硕Zenfone 6原型机曝光:三摄、屏下摄像头都有
        Slashleaks曝光了一张华硕Zenfone 6原型设备的上手图。现在据外媒PhoneArena援引自YouTube频道C4ETech的消息,更多Zenfone 6的原型设备又遭到了曝光。   其中一款手机上具备了屏下摄像头设计。该机在左上角的位置开了一个小孔,用于放置前置摄像头。这为手机额头部位带来了较为窄小的边框,以及更大的可显示面积。该机背部配备了垂直排列的双摄像头,底部也保留了3.5mm耳机插孔。   第二款设备则显得不是很惊艳,该机采用了类似美人尖的前置摄像头设计,但是摄像头开孔较小,并且坐落于右上角。手机采用后置指纹识别和双摄像头设计。   最后的一款设备上,华硕采用了类似于当前
[手机便携]
TE Connectivity推出48V汇流条连接器和电缆组件
TE Connectivity (TE)近日宣布推出新型48V汇流条连接器和电缆组件,满足包括开放计算项目(OCP)开放式机架标准V2.0在内的下一代48V应用设计需求。 这些汇流条连接器和电缆组件允许在机架中使用单个垂直汇流条,从而简化系统设计并降低成本。48V解决方案较12V解决方案能耗更低,同款连接器和电缆组件可用于包括电源、电池备用单元(BBU)和鸽笼式机架在内的各种数据中心应用,用户只需购买少数的产品类型即可实现多种功能应用,从而简化库存管理。 TE数据与终端设备事业部首席技术官Phil Gilchrist表示:“48V配电解决方案降低了符合OCP设计的产品的耗电量,进而提升了产品效率。我们相信48V电源设计是下
[半导体设计/制造]
iPhone 12系列保护壳解密:这外形你爱吗?
10年过去了,iPhone 4正在以另外一种方式重新跟大家见面,你可以理解苹果要复刻它,但是不会原汁原味的这么干。   现在,有配件厂商提前发布了今年iPhone 12系列保护壳,而这次曝光的保护套有三种不同的尺寸。iPhone 12 Pro可能会与iPhone 12 Plus、Max 共享相同的尺寸。两种型号都将配备6.1英寸的AMOLED屏幕。   今年的 iPhone 阵容包括四种不同的型号,即iPhone 12,iPhone 12 Plus / Max,iPhone 12 Pro 和 iPhone 12 Pro Max。入门的iPhone 12将配备 5.4 英寸显示屏,而高端机型将配备 6.7 英寸屏幕。
[手机便携]
协助FBI解锁iPhone 日本公司Sun股价大涨
    据外媒报道,Sun Corp是一家日本弹珠类游戏机制造商,自从有报道称Sun旗下以色列公司协助美国政府解锁恐怖袭击案嫌犯的iPhone后,Sun股价出现飙升。 协助FBI解锁iPhone 日本公司Sun股价大涨(图片来自Bloomberg)   Sun 公司股价自3月21日以来已经累计上涨了逾40%。美国政府在3月21日称,“第三方”演示了一种或许能够获取涉案iPhone数据的方法。知情人士称, 这个第三方就是Cellebrite Mobile Synchronization Ltd,该公司已被Sun收购近10年。   尽管Sun、Celebrate以及美国联邦调查局(FBI)没有证实他们之间的联系,但是Sun股价自
[手机便携]
iPhone X上市日期令人失望 苹果股价遭遇下跌
凤凰科技讯 据CNBC网站北京时间9月13日报道,苹果公司备受期待的iPhone X手机直到10月份才会开始接受预订,这令市场感到失望,拖累苹果股价下跌。 截至周二收盘,苹果股价下跌0.68美元,报收于160.82美元,跌幅为0.42%。在发布会举行期间,苹果股价一度上涨逾1%,但在临近结束时下跌。 市场还对苹果的最新面部识别技术感到担心,因为苹果在发布会上演示这项技术时遭遇失败。新的Face ID功能应该能够允许用户在盯着手机时解锁。 苹果还在周二的发布会上推出了两款新iPhone 8机型和一款新Apple Watch智能手表。“最重要的一款手机直到10月份才开始接受预订,”瑞银场内交易总监阿特·卡辛(Art Cas
[手机便携]
一加新入门机OnePlus Clover跑分曝光:搭骁龙460芯片
上周,有消息称一加将发布一款名为 OnePlus Clover 的新手机。在 OnePlus Nord 推出之后,一加希望以更低的价格推出一款廉价手机来抢占更多的市场。 根据 MySmartPrice 报道,这款名为 OnePlus Clover 手机的 Geekbench 结果已出现在跑分网站上。从信息可以看到,该设备搭载高通骁龙 460 芯片和 4GB RAM,型号为「OnePlus BE2012」,该手机运行主频为 1.80GHz 的 8 核 CPU,该 OnePlus 设备在单核测试中获得 245 分,在多核测试中获得 1174 分。 据报道,OnePlus Clover 将配备 6.52 英寸的显示屏,具有 HD
[手机便携]
一加新入门机<font color='red'>On</font>ePlus Clover跑分曝光:搭骁龙460芯片
三箭齐发!苹果准备新一代iPhone:要支持5G功能
目前5G标准制定和相应网络搭建工作都在如火如荼的进行当中,按照这个节奏来看,正式商用会在2020年全面开始。 面对5G网络这个巨大的风口,各家终端厂商都在忙着相应终端的测试工作,当然苹果也不例外。据台湾产业链送出的消息称,明年苹果推出的三款新iPhone中,将有一款手机支持预5G(pre-5G)网络。 至于是哪款机型、用了哪家的基带等细节,我们目前还不得而知,而这三款新iPhone却是都在准备当中了,而iPhone X今年第四季度的出货量将在3000-3500万部。 值得一提的是,明年发布的三款iPhone中,苹果将会调整相应的售价,除了iPhone X的常规更新外,还会有更廉价的版本出现,比如之前传闻的配备6.1英寸
[手机便携]
为何安卓要3GB RAM,iPhone只用1GB就够了?
    iPhone只需1GB RAM就可以跑得很顺,而Android手机却得搭配2、3GB RAM才够,究竟原因是为什么呢?(图/blog.thinkapps.com) 时常关注科技相关新闻的朋友,肯定对于Andorid手机厂间常上演的规格大战感到不陌生!但你会不会纳闷,为什么iPhone都不需要这么大的RAM,跑起来依旧很顺呢?外国科技网站终于为我们解答了这个深埋心中许久的疑问,来看看个中原因为何! 《PhoneArena》网站报导,Android系统是透过JAVA语法写成,当用户要关闭应用程式时,就必须启动JAVA garbage collection(垃圾收集机制)的历程。这个意思是指,若是使用者关闭一个应用程式,该
[手机便携]
小广播
推荐内容
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved