redboot on QEMU for mini2440

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

  •    

  • -       /* 

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

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

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

  • -        */  

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

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

  • -               s->cpu->env->regs[15] = S3C_RAM_BASE | 0x03f80000; /* start address, u-boot already relocated * 

  • -       } 

  • -#if 0 && defined(LATER) 

  • -       if (mini2440_load_from_nand(s->nand, 0, S3C_SRAM_BASE_NANDBOOT, S3C_SRAM_SIZE) > 0) { 

  • -           s->cpu->env->regs[15] = S3C_SRAM_BASE_NANDBOOT;     /* start address, u-boot relocating code */  

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

  • -       }  

  • -#endif  

  • -       /* 

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

  • -        */  

  • -       {  

  • -           image_size = load_image('mini2440/u-boot.bin', qemu_get_ram_ptr(0x03f80000));  

  • -           if (image_size < 0)  

  • -                   image_size = load_image('u-boot.bin', qemu_get_ram_ptr(0x03f80000));  

  • -               if (image_size > 0) {  

  • -                       if (image_size & (512 -1))      /* round size to a NAND block size */  

  • -                               image_size = (image_size + 512) & ~(512-1);  

  • -                       mini2440_printf('loaded override u-boot (size %x)/n', image_size);  

  • -                   s->cpu->env->regs[15] = S3C_RAM_BASE | 0x03f80000;  /* start address, u-boot already reloca 

  • -               } 

  • -       } 

  • -       /* 

  • -        * if a kernel was explicitly specified, we load it too 

  • -        */  

  • -       if (s->kernel) {  

  • -               image_size = load_image(s->kernel, qemu_get_ram_ptr(0x02000000));  

  • -               if (image_size > 0) {  

  • -                       if (image_size & (512 -1))      /* round size to a NAND block size */  

  • -                               image_size = (image_size + 512) & ~(512-1);  

  • -                       mini2440_printf('loaded %s (size %x)/n', s->kernel, image_size);  

  • -           }  

  • -       }  

  • +    if (s->kernel) {  

  • +       image_size = load_image(s->kernel, qemu_get_ram_ptr(0));  

  • +       if (image_size > 0) {  

  • +           if (image_size & (512 -1))    

  • +               image_size = (image_size + 512) & ~(512-1);              

  • +           s->cpu->env->regs[15] = S3C_RAM_BASE ;  

  • +           mini2440_printf('loaded kernel %s at %p/n', s->kernel, s->cpu->env->regs[15]);  

  • +       }  

  • +    }  

  •  }  

  •    

  •  /* Typical touchscreen calibration values */  

  • @@ -353,6 +322,11 @@ static struct mini2440_board_s *mini2440_init_common(int ram_size,  

  •      return s;  

  •  }  

  •    

  •    

  •  static void mini2440_init(ram_addr_t ram_size,  

  •          const char *boot_device,  

  • @@ -371,9 +345,18 @@ static void mini2440_init(ram_addr_t ram_size,  

  •      mini = mini2440_init_common(ram_size,  

  •                      kernel_filename, cpu_model, sd);  

  •    

  •        mini->nand = nand_init(NAND_MFR_SAMSUNG, 0x76);  

  •      mini->cpu->nand->reg(mini->cpu->nand, mini->nand);  

  •    

  •      mini2440_reset(mini);  

  •  }   

  • 编译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 模块

    1. ricky@ricky-laptop:/opt/ecos/ecos-hg/packages/hal/arm/arm9$ ls  mini2440/current/  

    2. cdl  ChangeLog  include  misc  src  

    3. ricky@ricky-laptop:/opt/ecos/ecos-hg/packages/hal/arm/arm9$ ls  mini2440/current/src/  

    4. hal_diag.c  mini2440_misc.c  

    5. ricky@ricky-laptop:/opt/ecos/ecos-hg/packages/hal/arm/arm9$ ls  mini2440/current/cdl/  

    6. hal_arm_arm9_mini2440.cdl  

    7. ricky@ricky-laptop:/opt/ecos/ecos-hg/packages/hal/arm/arm9$ ls  mini2440/current/include/  

    8. hal_diag.h           hal_platform_setup.h  pkgconf   plf_stub.h  

    9. 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的跳转

    [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 02:22

    OK International超级制造厂商举措全球化至中国
    OK International 的团队将于4月20日至22日在Nepcon上海展会现场为您揭示大批焊接和生产装配技术,以及已赋予全球数以百计电子产品制造商的明显的培训、应用和生产力优势正如何在全球各地创建超级制造厂商。 展出的提供这些明显优势的创新技术中,将有最近推出的MRS-1000模组返修系统。这一高效高精度的桌面 解决方案,适用于如精细微型SMT元件拆除的需要精密控制的工艺。结合先进的返修技术,MRS-1000系统由手持式对流工具和大批喷嘴、预热器、带板支架的可调工具架及放大镜组成,适用范围极广。可处理大至12” x 12” 的PCB或使用独立BH-1000板架处理更大的PCB,这一手辅返修系统致力于处理大至
    [半导体设计/制造]
    OK Internati<font color='red'>on</font>al超级制造厂商举措全球化至中国
    日本女高中生必须用iPhone:原因竟是这样
       虽然本土也有索尼、夏普、松下等知名品牌,但在日本最受欢迎的智能手机还是苹果iPhone。   据台媒报道,日本网络小说“野草莓”网站9月公布的一份调查问卷显示,iPhone稳居日本年轻人最受欢迎手机之首,其中绝大部分是女高中生。   而且给出的原因很“奇葩”:1、不用iPhone会感到羞愧;2、不用iPhone会被同学排挤。   该调查问卷还显示,40.9%的受访者使用Android,51.4%使用iPhone。其中,女高中生使用iPhone的比例高达60.2%。   报道指出,原本以为iPhone对于学生来说是奢侈品,后来从父母抱怨孩子要求买iPhone才知道,日本孩子如果没有iPhone会感到羞愧,甚至遭到排挤。只要是i
    [手机便携]
    美高森美推出SmartFusion2先进开发工具套件
    开发工具套件带有两个 用于现成子卡的FPGA夹层卡接头,并附赠价值为2500美元的Libero 白金(Platinum)开发许可。 致力于在功率能耗、安全、可靠和性能方面提供差异化半导体技术方案的领先供应商美高森美公司(Microsemi Corporation,纽约纳斯达克交易所代号:MSCC) 宣布提供全新最高密度、最低功耗SmartFusion®2 150K LE 系统级芯片(SoC) FPGA先进开发工具套件。电路板级设计人员和系统架构师通过使用两个FPGA夹层卡(FPGA Mezzanine Card, FMC)扩展接头来连接广泛的具有新功能的现成子卡,可以快速开发系统级设计,并在创建用于通信、工业、国防和航天
    [嵌入式]
    造假分子为何将矛头指向ZESTRON
    “聪明是一种天赋,善良是一种选择”——杰夫·贝索斯 16年前,一家德国公司在上海设立了首个亚洲销售办事处,开始在大陆推广全新理念的清洗产品和工艺。今天, ZESTRON在中国电子制造行业因其全球领先的清洗技术、创新、产品及服务和客户认同成就了清洗细分市场中的重要市场地位,也因此成为了制售假货的目标。自ZESTRON发布打假事件以来,我们受到很多客户的关心,简短质朴的留言使我们感受到客户真心的关切和同情。在此答复客户关切同时回应市场,我们解构造假分子将矛头指向ZESTRON的几点原因。 1)品牌能力 2004年,ZESTRON正式进入中国市场。凭借不断创新的勃勃生机和本地化的技术支持及分析能力,ZESTRON活跃于
    [半导体设计/制造]
    造假分子为何将矛头指向ZESTR<font color='red'>ON</font>
    iPhone 8将推动苹果手机增长:国人将疯狂买单
        现在,基本上所有的用户都在静静等待iPhone 8的降临,毕竟距离9月12日还有不到两周的时间,作为苹果挤了三年牙膏潜心研发重磅新机,到底能送出怎样的成绩呢?   从之前曝光的细节看,全面屏的设计,让iPhone 8看起来外形惊艳不少,而挤压了三年的换机想法的果粉们必然会在这一代手机上出手,所以iPhone 8拉动整个iPhone销量提升,绝对是大概率事件。   市场调研机构IDC今天送出的报告显示,iPhone 8将推动苹果今年的手机出货量增长1.5%,而2018年将增长9.1%,为2015年以来的最大涨幅。   此外,华尔街分析师预计iPhone明年销量将增长13%,这绝对是iPhone 8的功劳,特别是该机将显著推动
    [手机便携]
    OMNIVISION获得多项DESIGN WINS
    2008 年 11 月 10 日 , OmniVision Technologies, Inc. 宣布 , 该公司 AutoVision™ 系列 CMOS 影像感测器获得了法雷奥集团 (Valeo) 的多项 Design Win 。法雷奥集团为欧洲多个最大型汽车制造商及他们的供应商提供先进视觉系统的领先供应商,获得法雷奥集团的 Design Win ,可以巩固 OmniVision 在汽车市场日益雄厚的实力。 OmniVision 汽车产品高级行销经理 Inayat Khajasha 表示: “OmniVision 可提供一系列强大的影像解决方案,这些解决方案具有卓越的微光性能、高度的可靠性以及先进的功能,可实现巨
    [嵌入式]
    AT&T iPhone手机激活系统超负荷引发故障
          iPhone 4S的出货量远超iPhone 4,这导致苹果和运营商的服务器接连出现问题,继苹果iCloud频频出错及软银出现销售系统的拒绝服务后,最大的iPhone运营商AT&T也出现了同样的问题,他们的iPhone激活服务器由于人数过多也出现拒绝服务的情况。公司被迫向用户发送邮件来解释这一状况,并通知他们等待完成激活。       iPhone捆绑运营商的版本均需要激活才能够开始使用,当地时间周五用户一拿到iPhone 4S开始就已经遇到了这种问题。       早在2009年iPhone 3GS发布时,苹果也曾通知用户激活服务器过于繁忙,可能需要长达2天才能激活自己的机器。
    [手机便携]
    SolderStar在Nepcon China 2007展会上推出APS自动化炉温曲线测量系统
    SolderStar公司于2007年4月24至27日在上海举行的Nepcon China 2007展会上 (展位编号 2G05),推出了全新先进的炉温曲线测量设备,名为SolderStar APS (自动化炉温曲线测量系统),利用最新回流焊数据记录器的智能内嵌功能,提供直通式炉温测量功能和实时工艺监测解决方案,可在单一硬件平台上为每块电路板提供温度曲线。 新型APS设备的核心是SolderStar创新的SmartLink连接系统和新的微型SolderStar PRO,即在展会上初次亮相名为Neptune SL USB的16通道USB数据记录器。这个最新开发的数据记录器增加了USB连接性,并在业内首次加入高温再充电能力,而且其尺寸
    [新品]
    小广播
    推荐内容
    设计资源 培训 开发板 精华推荐

    最新单片机文章
    • 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