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

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

 

1.     搭建编译环境

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

 

(1)  工程文件

采用OSDesigns\iMX51-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.\r\n");

#else

#ifdef IMGRAM128
    KITLOutputDebugString("Splash screen is not supported for 128M ram.\r\n");
#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:\WINCE600\PLATFORM\iMX51-EVK\SRC\DRIVERS\IPUV3\DISPLAY\.\dvi.cpp line 463:I2CReadNBytes:I2C Write to DVI fail! - ERRORCode:-7

ERROR:F:\WINCE600\PLATFORM\iMX51-EVK\SRC\DRIVERS\IPUV3\DISPLAY\.\dvi.cpp line 463:I2CReadNBytes:I2C Write to DVI fail! - ERRORCode:-7

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

 

3

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

posted @ 2015-02-03 11:19  LoongEmbedded  阅读(836)  评论(0)    收藏  举报