• 飞思卡尔IMX515评估板系统烧录和启动


    飞思卡尔IMX515评估板系统烧录和启动

     

    1.     搭建编译环境

    下载WCE600_11.04.02_ER.msi安装,生成WINCE600文件夹,此文件下包含有OSDesignsPLATFORMSUPPORT

     

    (1)  工程文件

    采用OSDesignsiMX51-EVK-Mobilit下的工程文件,去掉环境变量BSP_NOTOUCH=1Bsp_ar6102_sdio=1

     

    (2)  BSP修改

    iMX51-EVK.bat文件下增加

    set IMGRAM256=1//因为我们去掉EVK板的256MB,只剩下256MB

    set IMGSDMMC=1//因为我们要从SDMMC卡启动

     

     

    2.     启动模式

    参考《evk_imx51_Hardware_UG.pdf》和我之前写的一篇文章:

     

    1

     

    3.     烧录镜像

    我们采用EVK板的SDMMC启动,怎么烧录系统呢?看我之前写的博文:

    http://blog.csdn.net/loongembedded/article/details/24795863

     

    4.     烧录系统后启动

    刚开始无法正常启动,需要做下面的配置:

     

    2

    可是在启动过程中, eboot阶段显示的花屏,经过查找eboot阶段在OEMPreDownload()函数初始化显示屏,代码如下:

     

    #ifdef IMGRAM256
    
        KITLOutputDebugString("Splash screen is not supported for 256M ram.
    ");
    
    #else
    
    #ifdef IMGRAM128
        KITLOutputDebugString("Splash screen is not supported for 128M ram.
    ");
    #else
        //Initialize panel display on eboot
        EbootDisplayInit();
    #endif
    #endif
    

     

    可见只在内存为512MB的之后才初始化显示器,但我们的EVK板是只有256MB的,所以改为不管内存多大都调用

     

    EbootDisplayInit()

     

    改完后启动直接卡死在EbootDisplayInit(),为什么呢?原来是用于显存的起始地址位于第2256MBRAM,见imag_cfg.h的定义:

     

    #define IMAGE_BOOT_PICTURE_RAM_OFFSET      (0x10000000)
    #define CSP_BASE_MEM_PA_CSD0                    (0x90000000)
    #define IMAGE_BOOT_RAMDEV_RAM_PA_START      CSP_BASE_MEM_PA_CSD0  
    #define IMAGE_BOOT_PICTURE_RAM_START (IMAGE_BOOT_RAMDEV_RAM_PA_START+IMAGE_BOOT_PICTURE_RAM_OFFSET)
    

     

    这部分可以结合CPU手册来理解,那怎么修改offset的值呢?先来看config.bib文件相关部分:

     

     

    ; Obsolete region, free them for more Program Memory
    
    ;                   VPU         87700000    00080000    RESERVED
    
    ;                   IPU         87780000    00880000    RESERVED
    
    #if "$(IMGRAM256)" == "1"
    
                        FEC         8FFFC000    00004000    RESERVED
    
    #else
    
    #if "$(IMGRAM128)" == "1"
    
                        FEC         87FFC000    00004000    RESERVED
    
    #else
    
                        FEC         9BFFC000    00004000    RESERVED
    
    #endif
    
    #endif
    

     

     

    根据这个,我决定在8FFFC000之前预留2MB的用于显示开机画面,所以相应的修改如下:

     

     

     

     

     

    #ifdef IMGRAM256
    #define IMAGE_BOOT_PICTURE_RAM_OFFSET      (0x0FDFC000)  
    #else
    #ifdef IMGRAM128
    #define IMAGE_BOOT_PICTURE_RAM_OFFSET      (0x07DFC000)  
    #else
    #define IMAGE_BOOT_PICTURE_RAM_OFFSET      (0x10000000)  
    #endif
    #endif
    


     

     

     

     

    同时对eboot.bib做相应的修改

    ; SCREEN BUFFER

    ;PIC    90000000      00200000     RESERVED

    PIC     8FDFC000      00200000     RESERVED     ;kandiadd at 2015.02.02

    修改之后测试,在启动进入系统的时候直接黑屏,串口提示信息如下:

    ERROR:F:WINCE600PLATFORMiMX51-EVKSRCDRIVERSIPUV3DISPLAY.dvi.cpp line 463:I2CReadNBytes:I2C Write to DVI fail! - ERRORCode:-7

    ERROR:F:WINCE600PLATFORMiMX51-EVKSRCDRIVERSIPUV3DISPLAY.dvi.cpp line 463:I2CReadNBytes:I2C Write to DVI fail! - ERRORCode:-7

    提示往DVI写寄存器出错,但因为EVK评估板上暂时用不上DVI,所以去掉:

     

    3

    到此系统可以正常启动和显示了。

  • 相关阅读:
    .JS replace方法替换所有字符
    .net framework 4.0,结果还是失败,出现HRESULT 0xc8000222错误代码
    用PowerDesigner15自动将数据库里的表生成ER图
    C#对JSON数据格式的处理
    Type of conditional expression cannot be determined because there is no implicit conversion between 'Common.EnumType.EnumGender' and '<null>'
    如何在string.Format方法中输出大括号({})
    网架构学习笔记
    c#实现javascript中函数escape解码
    Solon 开发,八、注入依赖与初始化
    Solon 开发,七、自定义注解开发汇总
  • 原文地址:https://www.cnblogs.com/LoongEmbedded/p/5298297.html
Copyright © 2020-2023  润新知