4578|17

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求助各位高手!关于EBOOT和OAL衔接问题!依然没搞定!急请paul_chao大侠帮忙看看!谢谢啦! [复制链接]

1、config.bib中我已经加了
ELSE ;IMGFLASH

    #define    NKSTART      9CA80000(flash的虚拟起始地址(0x9ca00000)+ EBOOT_OFFSET(0x80000))
    #define    NKLEN        01B00000   
    #define    RAMSTART     81F00000
    #define    RAMLEN       02100000   
IF IMGFLASH
    ROMSTART = 9CA80000              
    ROMSIZE  = 01B00000
    ROMWIDTH = 32
ELSE
    AUTOSIZE = ON
ENDIF

2、在EBOOT的USBDOWN中我通过lpdwToc & 0x90000000) == 0x90000000 来判断是否当前在FLASH中执行
if( ((DWORD)lpdwToc & 0x90000000) == 0x90000000 )
   {
      EdbgOutputDebugString("\r\n1111--------------!\r\n");
      memcpy((LPVOID)&RomHdr, (LPVOID)(RAMSTART + ((DWORD)lpdwToc - FLASH_IMG_START)), sizeof(ROMHDR));
    }  
   else
   {
      EdbgOutputDebugString("\r\n2222---------------!\r\n");
      memcpy((LPVOID)&RomHdr, (LPVOID)lpdwToc, sizeof(ROMHDR));
    }     
   if( ((DWORD)lpdwToc & 0x90000000) == 0x90000000 )
    {
      EdbgOutputDebugString("xxxxxxxxxxxxyyyyyyyyyyyyy!\r\n");
      if (FlashWrite( RAMSTART, dwPhysLen))
       {
         EdbgOutputDebugString("Flash programming Error.  System halted!\r\n");
         while (1);
       }
       EdbgOutputDebugString("Will goto launch!\r\n");   //step10
       OEMLaunch (pImgStart, dwPhysLen, FLASH_IMG_START, (const ROMHDR *)lpdwToc);
                                                             //其中FLASH_IMG_START = 0x9CA80000
    }
   else
   {       
     EdbgOutputDebugString("launch2!\r\n");   //step10
     OEMLaunch (pImgStart, Bufflen, pImgStart, (const ROMHDR *)lpdwToc);
    }
3、blcommon中的void BootloaderMain (void)中
   switch (dwAction = OEMPreDownload ())
    {
    case BL_DOWNLOAD:
     if ( !OEMReadData(7,(LPBYTE)&dwImageLength) )
        {
            EdbgOutputDebugString("USB client download image failed\r\n" );
            EdbgOutputDebugString("Eboot has halted.\r\n");
            while (1);
        }
     dwImageStart = 0x80100000;         
     OEMLaunch (dwImageStart, dwImageLength, dwLaunchAddr, (const ROMHDR *)dwpToc);
                                                                //其中dwLaunchAddr = 0x9CA80000
       case BL_JUMP:
       OEMLaunch (dwImageStart, dwImageLength, dwLaunchAddr, (const ROMHDR *)dwpToc);
                                                                  //其中dwLaunchAddr = 0x9CA80000
4、OAL中的startup
      ALIGN
    LEAF_ENTRY StartUp   
    bl PreInit
    bl EnterShow    //打印信息‘123’
    ; Compute the OEMAddressTable's physical address and
    ; load it into r0. KernelStart expects r0 to contain
    ; the physical address of this table. The MMU isn't
    ; turned on until well into KernelStart.  
    add     r0, pc, #g_oalAddressTable - (. + 8)
    ;bl EnterShow   //可以打印‘123’
    mov     r11, r0
    ;bl EnterShow    //可以打印‘123’
    b       KernelStart
    nop
正常情况下
5、KernelStart应该是在C:\WINCE500\PRIVATE\WINCEOS\COREOS\NK\KERNEL\ARM\armtrap.s中
   (只找到这一个KernelStart原函数)
6、进入KernelStart后会调用C:\WINCE500\PRIVATE\WINCEOS\COREOS\NK\KERNEL\ARM\mdarm.c中的armInit
7、ArmInit中的OEMWriteDebugString((PWSTR)NKSignon);会打印出“Windows CE Kernel for ARM”....
   然后调用OEMInit进入我的BSP中执行
可是现在:
只可以在OAL的startup中b       KernelStart之前的任何一处打印出‘123”,进入KernelStart之后就没有信息出现了
难道我需要追踪WINCE的private中的代码吗???
请问各位高手这种现象可能是什么造成的呢??



   

最新回复

Platform Builder 重装了 ! 现在我重新看EBOOT的startup 又从头开始了 --!  详情 回复 发表于 2009-6-10 23:40
点赞 关注

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
自己顶!
 
 

回复

93

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
1. 可否请 LZ 将 eboot 的 message post 上来.

2. KernelStart 在 call OEMInitDebugSerial 之前, 通常是做 MMU enable, 故只要 OEMAddressTable 与 config.bib 没弄错, 应不需要追.

3. LZ 的 eboot 没问题, NK 却无法执行是相当奇怪, eboot & NK 是用同一套 code 吗??

Paul, Chao @ Techware

 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

4
 
1、Microsoft Windows CE Ethernet Bootloader Common Library Version 1.1 Built Jun  8 2009 23:47:52
Microsoft Windows CE Ethernet Bootloader 1.7 for the Intel MainstoneII Development Platform Built Jun  8 2009

OEMLcdScreen is not finish yet!and will be done later!

Starting auto RUNNING! Selection = -1
main :STEP 7 !!!.
System ready!
Preparing for download...
INFO: Using device name: ''
OEMPreDownload g_DownloadImage = 0!
OEMLaunch is running!!!!!!!!!!!!
Download successful!  Jumping to image at 0x9CA80000
(physical 0x80000)...
start the last launch !



321
2、.......
3、eboot & NK 是用同一套 code



 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

5
 
咦, 为什麽

      EdbgOutputDebugString("\r\n1111--------------!\r\n");
      EdbgOutputDebugString("\r\n2222---------------!\r\n");
      EdbgOutputDebugString("xxxxxxxxxxxxyyyyyyyyyyyyy!\r\n");
        EdbgOutputDebugString("Flash programming Error.  System halted!\r\n");
      EdbgOutputDebugString("Will goto launch!\r\n");  //step10
    EdbgOutputDebugString("launch2!\r\n");  //step10

这些 message 都没看到呢??

Paul, Chao @ Techware
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

6
 
sorry!这个是我家里的版本...
以下贴出来
可以正常跳到ArmInit中的和不能正常跳到ArmInit中的打印信息:
可以正常跳到ArmInit中的信息如下:
Microsoft Windows CE Ethernet Bootloader Common Library Version 1.1 Built Jun  2 2009 15:34:06
                                                            
Microsoft Windows CE Ethernet Bootloader 1.7 for the Intel MainstoneII Development Platform Built Jun  2 2009
                                                             //让人兴奋的BOOTLOADER的标志性信息OEMLcdScreen is not finish yet!and will be done later!         //我想在BOOT中初始化一下屏,当然现在还没做

Press [ENTER] to download now or [SPACE] to cancel.

Initiating image download in 3 seconds.
Starting auto download Selection = 0

LockID is running

XLLP_CLKEN_USBCLIENT is running
OEM_USBConfigureDevice is running!                       //当我在PB中用命令行输入usbd然后回车时,USB才初始化Waiting for USB Connecting...  USB Connected !           //然后USB连接上

OEM_USBConfigureDevice is successful !
main :STEP 7 !!!.
System ready!
Preparing for download...
INFO: Using device name: 'MAINSTN0'
OEMPreDownload g_DownloadImage = 1!                       //g_DownloadImage,在predown函数中返回一个
                                                                    // BL_DOWNLOADER命令
Bufflen is 4IMAGE Len : 28311552
..............                                             //开始下载NK.nb0
USB download completed!                                    //完成   

1111--------------!                  //通过if( ((DWORD)lpdwToc & 0x90000000) == 0x90000000 )判断
                                          //是在FLASH中启动
xxxxxxxxxxxxyyyyyyyyyyyyy!


FlashWrite in ! ...                //调用FlashWrite函数,在FlashWrite函数中调用FlashErase函数
dwPhysLen = 28311552
num_blocks = 216
BBBBBBBBBBBB
........i = 128

Erasing Flash BCA80000 to BE57FFFF: Please wait ... //开始擦除FLASH
........................................................................................................................................................................................................................
Flash erasing complete.


Now programming Flash ...                        //写入
........................................................................................................................................................................................................................
Comparing Flash vs RAM image ...                 //校验

Flash programmed successfully!                   //成功
Will goto launch!                                //调用OEMlaunch函数
OEMLaunch is running!!!!!!!!!!!!
Download successful!  Jumping to image at 0x9CA80000 (physical 0x80000)...  
                                      // 传给OEMlaunch的第三个参数地址为:0x9CA80000,对应物理地址为x80000
321                                    //进入OAL的startup.s之后就打印321
Windows CE Kernel for ARM (Thumb Enabled) Built on Jun  3 2009 at 10:47:01
                               //又是一个另人兴奋的标志,从此进入了ARMINIT,(应该是从kernelStart跳到了这里)
ProcessorType=0411  Revision=7
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 9ca89378 //这个值是否有用?
+OEMInit
-OEMInit                                           //这里是在armInit中调用的BSP下的OEMInit函数
Error Reporting Memory Reserved, dump size = 00020000     //开辟了size = 00020000的Error Reporting区
                                                                   //刚开始还以为是错误呢

Booting Windows CE version 5.00 for (ARM)

Old or invalid version stamp in kernel structures - starting clean!
Configuring: Primary pages: 9121, Secondary pages: 0, Filesystem pages = 4560

Booting kernel with clean memory configuration:
Memory Sections:
[0] : start: 8193c000, extension: 00003000, length: 023a1000
Sp=ffffc7cc
RTC:Read time from PCF8563.......sucessed                   //又调用了BSP下的驱动
OEMIoControl: Unsupported Code 0x101008c - device 0x0101 func 35
Initialize NAND Flash Controller.                //NAND FLASH没找到,BSP下没有,public、common下也没有,估计是
                                                        // 以库的形式给出的

NAND_Init:return 0x1
Initialize NAND Flash Controller Successfully.   //没有这个设备居然也能成功!
没了,估计死在这里

以上是比较好的情况
现在贴上没进入到ArmInit的打印信息:
Microsoft Windows CE Ethernet Bootloader Common Library Version 1.1 Built Jun  2 2009 15:34:06
                                                            
Microsoft Windows CE Ethernet Bootloader 1.7 for the Intel MainstoneII Development Platform Built Jun  2 2009
                                                             //让人兴奋的BOOTLOADER的标志性信息OEMLcdScreen is not finish yet!and will be done later!         //我想在BOOT中初始化一下屏,当然现在还没做

Press [ENTER] to download now or [SPACE] to cancel.

Initiating image download in 3 seconds.
Starting auto download Selection = 0

LockID is running

XLLP_CLKEN_USBCLIENT is running
OEM_USBConfigureDevice is running!                       //当我在PB中用命令行输入usbd然后回车时,USB才初始化Waiting for USB Connecting...  USB Connected !           //然后USB连接上

OEM_USBConfigureDevice is successful !
main :STEP 7 !!!.
System ready!
Preparing for download...
INFO: Using device name: 'MAINSTN0'
OEMPreDownload g_DownloadImage = 1!                       //g_DownloadImage,在predown函数中返回一个
                                                                    // BL_DOWNLOADER命令
Bufflen is 4IMAGE Len : 28311552
..............                                             //开始下载NK.nb0
USB download completed!                                    //完成   

1111--------------!                  //通过if( ((DWORD)lpdwToc & 0x90000000) == 0x90000000 )判断
                                          //是在FLASH中启动
xxxxxxxxxxxxyyyyyyyyyyyyy!


FlashWrite in ! ...                //调用FlashWrite函数,在FlashWrite函数中调用FlashErase函数
dwPhysLen = 28311552
num_blocks = 216
BBBBBBBBBBBB
........i = 128

Erasing Flash BCA80000 to BE57FFFF: Please wait ... //开始擦除FLASH
........................................................................................................................................................................................................................
Flash erasing complete.


Now programming Flash ...                        //写入
........................................................................................................................................................................................................................
Comparing Flash vs RAM image ...                 //校验

Flash programmed successfully!                   //成功
Will goto launch!                                //调用OEMlaunch函数
OEMLaunch is running!!!!!!!!!!!!
Download successful!  Jumping to image at 0x9CA80000 (physical 0x80000)...  
                                      // 传给OEMlaunch的第三个参数地址为:0x9CA80000,对应物理地址为x80000
321                                    //进入OAL的startup.s之后就打印321
其实前面都是一样的
不一样的地方只是进入到321(OAL的startup.s)之后就再没有打印信息了!
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

7
 
格式搞乱了,重新贴一下
sorry!这个是我家里的版本...
以下贴出来
可以正常跳到ArmInit中的和不能正常跳到ArmInit中的打印信息:
可以正常跳到ArmInit中的信息如下:
Microsoft Windows CE Ethernet Bootloader Common Library Version 1.1 Built Jun  2 2009 15:34:06
                                                            
Microsoft Windows CE Ethernet Bootloader 1.7 for the Intel MainstoneII Development Platform Built Jun  2 2009
                                                            //让人兴奋的BOOTLOADER的标志性信息
OEMLcdScreen is not finish yet!and will be done later!        //我想在BOOT中初始化一下屏,当然现在还没做

Press [ENTER] to download now or [SPACE] to cancel.

Initiating image download in 3 seconds.
Starting auto download Selection = 0

LockID is running

XLLP_CLKEN_USBCLIENT is running
OEM_USBConfigureDevice is running!                      //当我在PB中用命令行输入usbd然后回车时,USB才初始化
Waiting for USB Connecting...  USB Connected !          //然后USB连接上

OEM_USBConfigureDevice is successful !
main :STEP 7 !!!.
System ready!
Preparing for download...
INFO: Using device name: 'MAINSTN0'
OEMPreDownload g_DownloadImage = 1!                      //g_DownloadImage,在predown函数中返回一个
                                                                    // BL_DOWNLOADER命令
Bufflen is 4IMAGE Len : 28311552
..............                                            //开始下载NK.nb0
USB download completed!                                    //完成

1111--------------!                  //通过if( ((DWORD)lpdwToc & 0x90000000) == 0x90000000 )判断得出
                                          //是在FLASH中启动
xxxxxxxxxxxxyyyyyyyyyyyyy!


FlashWrite in ! ...              //调用FlashWrite函数,在FlashWrite函数中调用FlashErase函数
dwPhysLen = 28311552
num_blocks = 216
BBBBBBBBBBBB
........i = 128

Erasing Flash BCA80000 to BE57FFFF: Please wait ... //开始擦除FLASH
........................................................................................................................................................................................................................
Flash erasing complete.


Now programming Flash ...                            //写入
........................................................................................................................................................................................................................
Comparing Flash vs RAM image ...                     //校验

Flash programmed successfully!                       //成功
Will goto launch!                                    //调用OEMlaunch函数
OEMLaunch is running!!!!!!!!!!!!
Download successful!  Jumping to image at 0x9CA80000 (physical 0x80000)...  
                                      //传给OEMlaunch的第三个参数地址为:0x9CA80000,对应物理地址为x80000
321                                    //进入OAL的startup.s之后就打印321
Windows CE Kernel for ARM (Thumb Enabled) Built on Jun  3 2009 at 10:47:01
                              //又是一个另人兴奋的标志,从此进入了ARMINIT,(应该是从kernelStart跳到了这里)
ProcessorType=0411  Revision=7
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 9ca89378 //这个值是否有用?
+OEMInit
-OEMInit                                          //这里是在armInit中调用的BSP下的OEMInit函数
Error Reporting Memory Reserved, dump size = 00020000    //开辟了size = 00020000的Error Reporting区
                                                                  //刚开始还以为是错误呢

Booting Windows CE version 5.00 for (ARM)

Old or invalid version stamp in kernel structures - starting clean!
Configuring: Primary pages: 9121, Secondary pages: 0, Filesystem pages = 4560

Booting kernel with clean memory configuration:
Memory Sections:
[0] : start: 8193c000, extension: 00003000, length: 023a1000
Sp=ffffc7cc
RTC:Read time from PCF8563.......sucessed                  //又调用了BSP下的驱动
OEMIoControl: Unsupported Code 0x101008c - device 0x0101 func 35
Initialize NAND Flash Controller.          //NAND FLASH没找到,BSP下没有,public、common下也没有,估计是
                                                  // 以库的形式给出的
NAND_Init:return 0x1
Initialize NAND Flash Controller Successfully.  //没有这个设备居然也能成功!
没了,估计死在这里
----------------------------------------------------------------------------------------------------------
以上是比较好的情况
现在贴上没进入到ArmInit的打印信息:
Microsoft Windows CE Ethernet Bootloader Common Library Version 1.1 Built Jun  2 2009 15:34:06
                                                            
Microsoft Windows CE Ethernet Bootloader 1.7 for the Intel MainstoneII Development Platform Built Jun  2 2009
                                               //让人兴奋的BOOTLOADER的标志性信息OEMLcdScreen is not finish yet!and will be done later!                //我想在BOOT中初始化一下屏,当然现在还没做

Press [ENTER] to download now or [SPACE] to cancel.

Initiating image download in 3 seconds.
Starting auto download Selection = 0

LockID is running

XLLP_CLKEN_USBCLIENT is running
OEM_USBConfigureDevice is running!                       //当我在PB中用命令行输入usbd然后回车时,USB才初始化
Waiting for USB Connecting...  USB Connected !           //然后USB连接上

OEM_USBConfigureDevice is successful !
main :STEP 7 !!!.
System ready!
Preparing for download...
INFO: Using device name: 'MAINSTN0'
OEMPreDownload g_DownloadImage = 1!                      //g_DownloadImage,在predown函数中返回一个
                                                                    // BL_DOWNLOADER命令
Bufflen is 4IMAGE Len : 28311552
..............                                            //开始下载NK.nb0
USB download completed!                                    //完成  

1111--------------!                  //通过if( ((DWORD)lpdwToc & 0x90000000) == 0x90000000 )判断
                                          //是在FLASH中启动
xxxxxxxxxxxxyyyyyyyyyyyyy!


FlashWrite in ! ...              //调用FlashWrite函数,在FlashWrite函数中调用FlashErase函数
dwPhysLen = 28311552
num_blocks = 216
BBBBBBBBBBBB
........i = 128

Erasing Flash BCA80000 to BE57FFFF: Please wait ... //开始擦除FLASH
........................................................................................................................................................................................................................
Flash erasing complete.


Now programming Flash ...                            //写入
........................................................................................................................................................................................................................
Comparing Flash vs RAM image ...                     //校验

Flash programmed successfully!                       //成功
Will goto launch!                                    //调用OEMlaunch函数
OEMLaunch is running!!!!!!!!!!!!
Download successful!  Jumping to image at 0x9CA80000 (physical 0x80000)...  
                                      // 传给OEMlaunch的第三个参数地址为:0x9CA80000,对应物理地址为x80000
321                            //进入OAL的startup.s之后就打印321
其实前面都是一样的
不一样的地方只是进入到321(OAL的startup.s)之后就再没有打印信息了!
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

8
 

 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

9
 
请问 LZ,
1. 为何有时 可以进入 OEMInit, 有时却又无法进入.

2. Message 中有一行
"Windows CE Kernel for ARM (Thumb Enabled) Built on Jun  3 2009 at 10:47:01"
LZ 是不是有重新 build 过 private 的 code?? 为何要如此做呢??

3. LZ 的 eboot 在开 MMU 时没有问题, 但在 NK 中开 mmu 却会有问题, 真是非常奇怪, LZ 的 CPU 是设成多少, SDRAM bus clock 又为何?? 有没有设错??

Paul, Chao @ Techware
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

10
 
再问几个问题:
1、OEMaddressTable这个表是放在哪个地址下的?
   应该放在FLASH对应的虚拟地址中还是在SDRAM对应的虚拟地址中,应该在NK对应的地址前还是NK后?
   OEMaddressTable对应的物理地址是哪个呢?
   之所以这样问是因为在KernelStart中有计算OEMaddressTable的地址的部分
2、请问OEMaddressTable与config.bib有什么关系呢,现在我了解的只有:从SDRAM启动或者从FLASH启动NK定义的地址
   是在CONFIG.BIB 中,并且需要跟OEMaddressTable中的对应起来,其他还有什么必然联系呢?
3、SDRAM_SIZE_128_MB 这个是在哪里设置的,这个是必须加的吗?还有IMGFLASH,我直接在config.bib中把启动地址和SDRAM
   大小写死不行吗?
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 8 楼 paul_chao 的回复:
请问 LZ,
1. 为何有时 可以进入 OEMInit, 有时却又无法进入.

2. Message 中有一行
"Windows CE Kernel for ARM (Thumb Enabled) Built on Jun  3 2009 at 10:47:01"
LZ 是不是有重新 build 过 private 的 code?? 为何要如此做呢??

3. LZ 的 eboot 在开 MMU 时没有问题, 但在 NK 中开 mmu 却会有问题, 真是非常奇怪, LZ 的 CPU 是设成多少, SDRAM bus clock 又为何?? 有没有设错??

Paul, Chao @ Techware


1、这个我也觉得奇怪,这种情况是,我前两天并没在config.bib中加IMGFLASH 和从FLASH启动的虚拟地址时,偶尔就可以进入到OEMinit
  现在反而一次也进不去了
2、是,我编译了private,呵呵,因为我装PB的时候没有选share code那个选项,所以我的private中没有代码,
   后来我在别人那拷贝的private过来,所以就把private中的DIR修改了之后编译了一次
3、EBOOT中打开MMU没有报错,报错那块儿我解决掉了,
   解决方法:我的SDRAM128M,而PB的BSP标配64M,在头文件中有几个宏定义,我把宏定义修改过来就好了
   还有几处初始化寄存器,如GPIO等,我都按照原来我的平台跑的WINCE42下的设置修改过来,就可以在我的板子上跑起来了
   
   但是现在NK中报错,NK中打开MMU后在kernelStart中将OEMaddressTable的地址倒腾个遍,,在这里通过比较算出OEMaddressTable
   的地址,并左右移动20位,不知道为什么,这个是在EBOOT没有的,
   我的主频:
   SDRAM bus clock  ??这个在哪里设置的没找到啊!!!哭了!!!
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

12
 
paul_chao大侠您说频率我突然发现了个问题
在C:\WINCE500\PLATFORM\SMDKPXA270\SRC\XLLP\Inc中的xlli_mainstone_defs.inc文件设置了几乎所有寄存器
我把这个跟我以前用的WINCE42下的同名文件比较
发现我上次并没有修改彻底:
这里有两处宏定义: IF :DEF: xlli_C0_BULVERDE
                 IF  :DEF:  xlli_SDRAM_WIDTH_16_BIT
我以前的BSP用的是当xlli_C0_BULVERDE和xlli_SDRAM_WIDTH_16_BIT都为‘1’的情况下的代码
而现在这个BSP我并没有找到设置这两处宏定义的地方,那就是说默认为‘0’,正好与我以前的BSP相反了
而被这两处定义控制的代码都是设置MSC和DTC的频率的(貌似就是MEMCLK)
是不是与这两处代码相关呢?

另外在WINCE42下
D:\WINCE420\PLATFORM\MCORE\xllp\Source\xlli_lowlev_init.s中很清晰写出
xlli_setClocks  FUNCTION
                ;zmoon
                ;ldr    r2,  =0x752                ;setting SDRAM 91Mhz, 2.5 X 2 cpu 454Mhz
                ;ldr    r2,  =0x751                ;setting SDRAM 91Mhz, 2   X 2 cpu 364Mhz
                ;ldr    r2,  =0x756                ;setting SDRAM 97.5Mhz, 2.5 X 2 cpu 487Mhz
                ;ldr    r2,  =0x755                ;setting SDRAM 97.5Mhz, 2   X 2 cpu 390Mhz
                ;ldr    r2,  =0x75A                ;setting SDRAM 104Mhz, 2.5 X 2 cpu 520Mhz
                ;ldr    r2,  =0x759                ;setting SDRAM 104Mhz, 2   X 2 cpu 416Mhz
                ;ldr    r2,  =0x758                ;setting SDRAM 104Mhz, 1.5 X 2 cpu 312Mhz
                ldr    r2,  =0x756
在wince50下的BSP中xlli_lowlev_init.s同名函数,也不知道是怎么计算的,最后得到个什么值!
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

13
 
EnterShow怎么写的?你在初始化时往串口输出,处理不当的话会把寄存器和栈的内容破坏掉。建议你确定程序可以走到EnterShow以后就把这句去掉,不然EnterShow完了以后系统很可能就挂了。
 
 
 

回复

95

帖子

0

TA的资源

一粒金砂(初级)

14
 
之前在 2009/4/16 http://topic.eeworld.net/u/20090415/21/ca14d689-4d48-4250-a856-5c97ff31870c.html 的 5 楼时曾回覆

"印象中, PXA270 BSP 的 porting 最大的关卡在 xlli_setClocks, 你必须研读文件 "Diagnostics for the Intel PXA27x Processor Developer's Kit User's Guide" (Order Number:278938-002) 去设定正确的值."

所以 LZ 走了一圈, 还是没走出来.

Paul, Chao @ Techware

 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

15
 
EnterShow直接访问的串口物理寄存器,
去掉也是一样,已经试过在OALstartup.s中不点灯,不打印串口信息
一样也不行
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

16
 
个人觉得很有可能是xllp这个跟硬件密切相关的文件夹中的内容与我的硬件电路不相符合!

如设置MSC和DTC的频率的就跟我的板子不一样

现在修改过来试试


“之前在 2009/4/16 http://topic.eeworld.net/u/20090415/21/ca14d689-4d48-4250-a856-5c97ff31870c.html 的 5 楼时曾回覆

"印象中, PXA270 BSP 的 porting 最大的关卡在 xlli_setClocks, 你必须研读文件 "Diagnostics for the Intel PXA27x Processor Developer's Kit User's Guide" (Order Number:278938-002) 去设定正确的值."

所以 LZ 走了一圈, 还是没走出来. ”

因为当时eboot已经可以运行,我就没在看这里

那么是否xlli_setClocks不对会导致BOOT可以运行但是NK不能运行呢?看来真是想躲也躲不掉了,哈哈!
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

17
 
照理说eboot能跑起来clock就基本上没问题。Intel把xlli_setClocks搞的很复杂是因为MainStone可以用几个转盘组合起来设置clock,所以它做了一个表把能跑的频率组合都列出来了。
建议你还是重装Platform Builder再试吧,Private下的源代码编出来的库和预编译库是有区别的。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

18
 
Platform Builder
重装了 !

现在我重新看EBOOT的startup

又从头开始了
--!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表