关于6410+WinCE6.0开机界面logo的问题

haiou_arm 2010-01-26 02:18:26
关于开机logo一般有两种实现方法:
方法一:以头文件的形式打包在EBOOT.bin中,但是该方法往往导致EBOT.bin太大;
方法二:将bmp转换成bin文件,烧写在NandFlash某个固定的地址,Eboot运行时读取该地址内容,放入显示缓冲里实现。

第一种方法在此不讨论,关于第二种方法,刚开始做就遇到问题,(我用的是UT-6410),问题如下:
1、在image_cfg中有以下配置:
#define DRAM_BASE_PA_START (0x50000000) //DRAM物理起始地址?
#define DRAM_BASE_CA_START (0x80000000) //
#define DRAM_BASE_UA_START (0xA0000000) //DRAM经过MMU映射后的虚拟起始地址?
后面的注释是我加的,请问加的是否正确?0x80000000是什么地址?难道是DMA缓存地址?这个问题很菜,哈哈
2、在使用SD卡进行烧写EBOOT.bin时,提示地址是:
ImageStart = 0x80030000, ImageLength = 0x42F38, LaunchAddr = 0x80066D64
这个0x80030000肯定不是NandFlash物理地址,问题就是什么时候将EBOOT.bin的内容写到了NandFlash里?写到了什么地
方?谁干的?
因为在烧写NK.bin的时候,提示地址是:mageStart = 0x80100000, ImageLength = 0x1F3C49C, LaunchAddr =
0x801076EC,在写完后要等待一段时间(1分钟?)系统才能自启动,这一分钟肯定是将先写到0x80030000(到底是DRAM还
是缓存)中NK.bin解析到NandFlash中,同样我也不知道烧到了NandFlash的什么地方?

先问两个问题吧,有关开机界面遇到的问题以及最终解决方法,努力在这个帖子有个完整结贴。
...全文
2801 57 打赏 收藏 转发到动态 举报
写回复
用AI写文章
57 条回复
切换为时间正序
请发表友善的回复…
发表回复
lishengwu 2012-02-13
  • 打赏
  • 举报
回复
我的邮箱地址是:lishengwu@163.com,谢谢!!!
lishengwu 2012-02-13
  • 打赏
  • 举报
回复
您好!!!我的板子是OK6410+K9AG08的板子,WINCE6.0,,安装第二种方法修改后,开机画面启动,系统却启动不了了,
Loading Kernel......
..............................................
System ready!
Preparing for download...
INFO: *** Device Name 'SMDK64100' ***
INFO: Using static IP address 0000.
INFO: Using subnet mask 2525250.
waitforconnect
INFO: using TOC[1] dwJumpAddress: 0x80157734
INFO: OEMLaunch: Jumping to Physical Address 0x50157734h (Virtual Address 0x80157734h)...
这是串口打印信息,执行到这里就不动了。

为什么?
cecwxf 2011-06-20
  • 打赏
  • 举报
回复
学习了
OneOnce 2010-12-14
  • 打赏
  • 举报
回复
mark
eason1119 2010-06-25
  • 打赏
  • 举报
回复
你好,我也在学习 wince6.0+s3c6410,看了你的文章很受益,我按照你的方法尝试了一下,请问 image_cfg.h 应该做怎样的修改?NandFlash烧写函数又是怎么样修改的。十分不解。 你的logo是转换成C码以后放在 logo.h中的吗。我的QQ是907486257,向你学习了。
Wangyuluyulu 2010-06-18
  • 打赏
  • 举报
回复
牛逼的人啊
Wangyuluyulu 2010-06-18
  • 打赏
  • 举报
回复
所以,我还是得生成PB下特有的.bin再说
目前的进展是:我将//LX_logo @ Block 6~10 added by haiou
#define LOGO_BLOCK 6
#define LOGO_BLOCK_SIZE 5
#define LOGO_SECTOR BLOCK_TO_SECTOR(LOGO_BLOCK)
请问这段代码是在哪个文件里加的
谢谢
Wangyuluyulu 2010-06-18
  • 打赏
  • 举报
回复
楼主你好,我现在也在做这个是项目的需要,不过小弟刚刚入门,还请你多多指教,可以把你的QQ发来指导一下啊,谢谢!我的qq号是:593203069谢谢
阿布在飘 2010-04-23
  • 打赏
  • 举报
回复
恭喜啊,向楼主学习了!
cjdxling 2010-04-02
  • 打赏
  • 举报
回复
不错,向楼主学习
yangcuncunzhang 2010-02-02
  • 打赏
  • 举报
回复
哈哈,恭喜!

楼主学习态度很好哦,顶你了
haiou_arm 2010-02-01
  • 打赏
  • 举报
回复
我是高兴的太早了……太丢人了,不过,问题还是得想办法解决,此贴还不能结啊
现在发现,从RAM系统可以引导起来,但是断电后,开机显示logo。但系统起不来了……
看来是Eboot还是没有搞明白,现在把相关信息贴出来,望大伙一起分析分析。我也继续研究代码……
主要有以下几个要点:
1、我开机logo在Eboot.bib中没有从新分配内存,和Display共用;
2、没有修改config.bib——和Eboot应该没关系吧……;
3、写NandFlash函数如下:

//WriteLogoToBootMedia(EBOOT_FRAMEBUFFER_UA_START, LCD_WIDTH*LCD_HEIGHT*2+8, EBOOT_FRAMEBUFFER_UA_START);BOOL WriteLogoToBootMedia(DWORD dwImageStart, DWORD dwImageLength, DWORD dwLaunchAddr)
{
DWORD dwBlock,dwNumBlocks;
LPBYTE pbBuffer;
SectorInfo si;

dwBlock = LOGO_BLOCK;
pbBuffer = (LPBYTE)dwImageStart;
// Compute number of blocks.
//dwNumBlocks = (dwImageLength / 0x4000) + 1;
dwNumBlocks = (dwImageLength / (g_FlashInfo.wDataBytesPerSector*g_FlashInfo.wSectorsPerBlock)) + (dwImageLength%(g_FlashInfo.wDataBytesPerSector*g_FlashInfo.wSectorsPerBlock) ? 1: 0);
OALMSG(TRUE, (TEXT("dwImageLength = 0x%x \r\n"), dwImageLength));
OALMSG(TRUE, (TEXT("dwNumBlocks = 0x%x \r\n"), dwNumBlocks));

while (dwNumBlocks--)
{
// If the block is marked bad, skip to next block. Note that the assumption in our error checking
// is that any truely bad block will be marked either by the factory during production or will be marked
// during the erase and write verification phases. If anything other than a bad block fails ECC correction
// in this routine, it's fatal.

OALMSG(TRUE, (TEXT("dwBlock(0x%x) X "), dwBlock));
OALMSG(TRUE, (TEXT("g_FlashInfo.wSectorsPerBlock(0x%x)"), g_FlashInfo.wSectorsPerBlock));
OALMSG(TRUE, (TEXT(" = 0x%x \r\n"), dwBlock*g_FlashInfo.wSectorsPerBlock));

FMD_ReadSector(dwBlock*g_FlashInfo.wSectorsPerBlock, NULL, &si, 1);
// Stepldr & Eboot image in nand flash
// block mark as BLOCK_STATUS_RESERVED & BLOCK_STATUS_READONLY & BLOCK_STATUS_BAD
if ((si.bBadBlock == 0x0) && (si.bOEMReserved !=3 ))
{
++dwBlock;
++dwNumBlocks; // Compensate for fact that we didn't write any blocks.
continue;
}

if (!ReadBlock(dwBlock, NULL, g_pSectorInfoBuf))
{
OALMSG(OAL_ERROR, (TEXT("WriteData: failed to read block (0x%x).\r\n"), dwBlock));
return(FALSE);
}

if (!FMD_EraseBlock(dwBlock))
{
OALMSG(OAL_ERROR, (TEXT("WriteData: failed to erase block (0x%x).\r\n"), dwBlock));
return FALSE;
}

if (!WriteBlock(dwBlock, pbBuffer, g_pSectorInfoBuf))
{
OALMSG(OAL_ERROR, (TEXT("WriteData: failed to write block (0x%x).\r\n"), dwBlock));
return(FALSE);
}

++dwBlock;
pbBuffer += g_FlashInfo.dwBytesPerBlock; //c ksk 20060311
OALMSG(TRUE, (TEXT("dwBytesPerBlock : %d\r\n"), g_FlashInfo.dwBytesPerBlock));
}
OALMSG(OAL_FUNC, (TEXT("_WriteRawImageToBootMedia\r\n")));

return TRUE;
}

4、读NandFlash函数如下:
Display_LX_LOGO(EBOOT_FRAMEBUFFER_UA_START, LCD_WIDTH*LCD_HEIGHT*2+8, EBOOT_FRAMEBUFFER_UA_START);
BOOL Display_LX_LOGO(DWORD dwImageStart, DWORD dwImageLength, DWORD dwLaunchAddr) //added by haiou for diplaylogo
{
unsigned int * pFB32 = (unsigned int *)EBOOT_FRAMEBUFFER_UA_START;
unsigned int * dst = pFB32;
unsigned int * p;
SectorInfo si;

DWORD dwBlock,dwNumBlocks;
dwBlock = LOGO_BLOCK;

OALMSG(TRUE, (TEXT("dwImageLength = 0x%x \r\n"), dwImageLength));
dwNumBlocks = (dwImageLength / (g_FlashInfo.wDataBytesPerSector*g_FlashInfo.wSectorsPerBlock)) + (dwImageLength%(g_FlashInfo.wDataBytesPerSector*g_FlashInfo.wSectorsPerBlock) ? 1: 0);
OALMSG(TRUE, (TEXT("dwNumBlocks = 0x%x \r\n"), dwNumBlocks));
while (dwNumBlocks--)
{
OALMSG(TRUE, (TEXT("dwBlock(0x%x) X "), dwBlock));
OALMSG(TRUE, (TEXT("g_FlashInfo.wSectorsPerBlock(0x%x)"), g_FlashInfo.wSectorsPerBlock));
OALMSG(TRUE, (TEXT(" = 0x%x \r\n"), dwBlock*g_FlashInfo.wSectorsPerBlock));
/*
[color=#FF0000]FMD_ReadSector(dwBlock*g_FlashInfo.wSectorsPerBlock, NULL, &si, 1);[/color]

// Stepldr & Eboot image in nand flash
// block mark as BLOCK_STATUS_RESERVED & BLOCK_STATUS_READONLY & BLOCK_STATUS_BAD
if ((si.bBadBlock == 0x0) && (si.bOEMReserved !=3 ))
{
++dwBlock;
++dwNumBlocks; // Compensate for fact that we didn't write any blocks.
continue;
}*/
//BOOL ReadBlock(DWORD dwBlock, LPBYTE pbBlock, PSectorInfo pSectorInfoTable)
if (!ReadBlock(dwBlock, (LPBYTE)p, g_pSectorInfoBuf))
{
OALMSG(OAL_ERROR, (TEXT("WriteData: failed to read block (0x%x).\r\n"), dwBlock));
return(FALSE);
}
memcpy(dst, (unsigned int*)p, g_FlashInfo.dwBytesPerBlock);
dst += g_FlashInfo.dwBytesPerBlock/4;
++dwBlock;

}
return TRUE;
}
5、DNW打印信息为:
OEMPlatformInit: IMAGE_TYPE_RAMIMAGE
RAM image
RAM image
IsValidMBR: MBR sector = 0x380 (valid MBR)
OpenPartition: Partition Exists=0x1 for part 0x21.
BP_SetDataPointer at 0x0
**[Eboot] BP_ReadData***
Print the arg of function BP_ReadData.
hPart=0x800b0fa0, g_pTOC->id[g_dwTocEntry].dwLoadAddress=0x80100000, g_pTOC->id[g_dwTocEntry].dwTtlSectors
=0x4f83
ReadData: Start = 0x0, Length = 0x27c1800.
Log2Phys: Logical 0x3c0 -> Physical 0x740
dwLength (0x27c1800).
dwNumSects (0x4f83).
Loading Kernel......系统死在此处
6、打印信息函数处:
// Compute sector length.
dwNumSects = (dwLength / g_FlashInfo.wDataBytesPerSector);
RETAILMSG (1, (TEXT("dwLength (0x%x).\r\n"), dwLength));
RETAILMSG (1, (TEXT("dwNumSects (0x%x).\r\n"), dwNumSects));
RETAILMSG(1,(TEXT("Loading Kernel......\r\n")));
// NAND FMD only supports single-sector reads at the moment.
while (dwNumSects--)
{
dwBlockAddress = (dwSectorAddr / g_FlashInfo.wSectorsPerBlock);

// If the block is marked bad, skip to next block. Note that the assumption in our error checking
// is that any truely bad block will be marked either by the factory during production or will be marked
// during the erase and write verification phases. If anything other than a bad block fails ECC correction
// in this routine, it's fatal.
if (IS_BLOCK_UNUSABLE(dwBlockAddress))
{
dwSectorAddr += g_FlashInfo.wSectorsPerBlock;
++dwNumSects; // Compensate for fact that we didn't write any sector data.
continue;
}

// Read the sector - if this fails ECC correction, we fail the whole read operation.
// Note - only single sector reads supported at the moment.
if (!FMD_ReadSector(dwSectorAddr, pbBuffer, NULL, 1))
{
RETAILMSG (1, (TEXT("ReadData: failed to read sector (0x%x).\r\n"), dwSectorAddr));
return(FALSE);
}
7、上面这个函数BP_ReadData是Eboot从NandFlash读取NK时调用的,
8、还有一个现象,就是烧写logo后,如果启动时不调用读取logo函数,一切正常。通过打印信息得知 只要一进 绿色 部分就停。

我知道的好像就这么多了,大家有什么好的想法,出出主意,拜谢
myearth 2010-02-01
  • 打赏
  • 举报
回复
学习一下
xumercury 2010-02-01
  • 打赏
  • 举报
回复
2)对Eboot修改主要有三处:1)添加自定义下载logo命令;2)修改NandFlash烧写函数;3)添
加NandFlash读函数。

LZ如果有友善的板子可以看看他们是怎么下载开机logo到flash里面的。可以参考下。他们做了在boot阶段下载的例子。
祝成功
haiou_arm 2010-02-01
  • 打赏
  • 举报
回复
问题终于解决了,过程为:
1、大家觉得下面两个函数有什么区别:
a)unsigned int * p=NULL;
FMD_ReadSector(dwBlock * g_FlashInfo.wSectorsPerBlock + iSector, (LPBYTE)p, &si, 1);

b)unsigned int * p;
FMD_ReadSector(dwBlock * g_FlashInfo.wSectorsPerBlock + iSector, (LPBYTE)p, &si, 1);
对,一个事空指针,一个随便指了个地方……,结果是,前者系统能启动,后者是系统死翘翘——怀疑是内存问题……
2、解决方法:回过头再看Eboot.bib
MEMORY
;-----------------------------------------------------
; NAME ADDRESS SIZE TYPE
;-----------------------------------------------------
PTS 80000000 00020000 RESERVED ; Page Table : 128 KB
ARGS 80020800 00000800 RESERVED ; BSP Args : 2 KB
EBOOT 80030000 00080000 RAMIMAGE ; Eboot Image : 512 KB
RAM 800B0000 00010000 RAM ; RAM : 64 KB
BINFS 800C0000 00030000 RESERVED ; Bin FS : 192 KB
STACK 800FC000 00004000 RESERVED ; Stack : 16 KB (sharing with Step Loader)
; From 8010000 ~, decompressed image will be put.
FLSCACHE 80100000 03F00000 RESERVED ; This is same region for NK RAMIMAGE
USB_BUF 84000000 03F00000 RESERVED ; USB Download Buffer Start Address
; Download code does not check End Size.
DISPLAY 87F00000 00100000 RESERVED ; match to config.bib for sharing display library
一看便知,我的128M的RAM已经全部被Eboot分配了,我在来个‘p’接收大量的图像数据,会怎么样呢……冲突啊

所以改由DISPLAY定义的缓冲区去接收就OK了。
3、前面提的的ReadBlock也是同样的问题。

今晚可以睡个好觉了……

haiou_arm 2010-02-01
  • 打赏
  • 举报
回复
现在可以把问题锁定在:
FMD_ReadSector(dwBlock*g_FlashInfo.wSectorsPerBlock, NULL, &si, 1);
1、在往NandFlash的6~D block写logo时调用FMD_ReadSector读出每个block的第一个sector中的内容来判断是否是坏块,然后调用ReadBlock函数读出具体内容,一切正常。
2、在读NandFlash中的logo时,如果不调用FMD_ReadSector函数进行坏块检验,直接调用ReadBlock函数,就可以正确读出logo并显示,一旦加上FMD_ReadSector函数,一进去就没有了任何音讯(在FMD-ReadSector函数体一进去就添加打印信息没输出)。此处Sector地址为:0x180.
3、同理在Eboot引导NK时调用的函数是:FMD_ReadSector,一进去同样没了音讯,此处Sector地址为0x740.
4、NandFlash型号是:K9F2G08U0A:2K/Page,64page/block。

九个太阳2023 2010-01-31
  • 打赏
  • 举报
回复
呵呵,一开始就是要这样慢慢来~~~恭喜
wolfmvp 2010-01-31
  • 打赏
  • 举报
回复
[Quote=引用 38 楼 haiou_arm 的回复:]
从周一到周五、整整五天,这个帖子可以结了^_^

    特别感谢大家的关注和帮助,开机后Eboot通过读取NandFlash上的logo.bin,顺利显示并引导系统。
在这个过程中,大家给我提了很多建议,因为我确实入门太浅,有的建议一开始不能理解,特别是有时候因为自己理解错了还和提建议的朋友叫汁,哈哈,真对不起,感谢大家!

    这个过程大致如下:
    周一:
            1)跟踪分析bootloader源码,通过添加.h文件的方式修改启动界面,但Eboot.bin却烧不进去

        了。
            2)从技术支持得知,是因为从新编译的Eboot.bin太大——这就有矛盾,要将logo打包在
        Eboot.bin中,必然增大Eboot,怎么办呢?继续分析Eboot代码。
    周二:
            1)从各方面了解,要将大些的logo(750K)加载在启动界面中,一般的做法是将该logo烧写在
        NandFlash的某个固定位置,然后Eboot启动时从NandFlash读出并加载进显示缓冲区实现。
            2)顺着这个思路,开始研究分析Eboot的NandFlash分区和文件系统。
    周三:
            1)通过分析源码得知:NandFlash的0block放置Nboot,1block放置TOC,2~5block放置
        Eboot,而后被格式化BinFs文件系统放置NK镜像;
            2)思路很清楚,如何将logo.bin烧进6~13block(1M)的位置,而将Binfs文件系统后移,继续
        分析代码。
    周四:
            1)有两个结构体TOC、_IMAGE_DESCRIPTOR成为问题的难点,伴随整个Eboot的执行;其围
        绕.bin文件的生成、烧写位置、NandFlash分区、启动加速;
            2)特别是其特有的.bin文件,前几个字节不仅包含了接收地址、长度、校验和;还包括了要下载
        的地址和长度。
            3)通过修改PB下配置文件,成功将NandFlash分区,专门预留6~13block给logo;
          4)思路很清楚,只要能将logo生成Eboot支持的.bin文件,就能实现下载,通过寻找合适的工
        具、企图利用TOC、_IMAGE_DESCRIPTOR修改PB配置文件实现,但均以失败告终。
    周五:
            1)生成Eboot支持的.bin文件不可以,那修改Eboot来支持自己的.bin文件可以吗?答案是肯定
        的——到这时候才理解了好多前辈对我的建议;
            2)对Eboot修改主要有三处:1)添加自定义下载logo命令;2)修改NandFlash烧写函数;3)添
        加NandFlash读函数。
            3)当然还有相应修改image_cfg.h、loader.h、eboot.bin。
    然后就可以了…………………………………………………………………………………………………………

最后想说的是:一定要认真分析Eboot代码,代码看不明白,即使有清晰的思路也无从下手。

[/Quote]楼主的学习精神很值得偶学习,受教了…
wolfmvp 2010-01-30
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 hao507 的回复:]
引用 16 楼 wolfmvp 的回复:
哈哈,在BootLoader中实现很简单的,这个我已经实现;但是,在应用程序中如何实现我不懂,如果咱俩能中和一下就好了,嘻嘻…

在应用程序中实现就是要修改flash驱动,在fmd的iocontrol里添加case就行了,跟BootLoader里的差不多,只不过如果你要是采用multi-bin的话,打开flash的时候跟非multi-bin不太一样,注意下就行了。。
[/Quote]感谢回答,真的非常感谢,呵呵…
haiou_arm 2010-01-30
  • 打赏
  • 举报
回复
从周一到周五、整整五天,这个帖子可以结了^_^

特别感谢大家的关注和帮助,开机后Eboot通过读取NandFlash上的logo.bin,顺利显示并引导系统。
在这个过程中,大家给我提了很多建议,因为我确实入门太浅,有的建议一开始不能理解,特别是有时候因为自己理解错了还和提建议的朋友叫汁,哈哈,真对不起,感谢大家!

这个过程大致如下:
周一:
1)跟踪分析bootloader源码,通过添加.h文件的方式修改启动界面,但Eboot.bin却烧不进去

了。
2)从技术支持得知,是因为从新编译的Eboot.bin太大——这就有矛盾,要将logo打包在
Eboot.bin中,必然增大Eboot,怎么办呢?继续分析Eboot代码。
周二:
1)从各方面了解,要将大些的logo(750K)加载在启动界面中,一般的做法是将该logo烧写在
NandFlash的某个固定位置,然后Eboot启动时从NandFlash读出并加载进显示缓冲区实现。
2)顺着这个思路,开始研究分析Eboot的NandFlash分区和文件系统。
周三:
1)通过分析源码得知:NandFlash的0block放置Nboot,1block放置TOC,2~5block放置
Eboot,而后被格式化BinFs文件系统放置NK镜像;
2)思路很清楚,如何将logo.bin烧进6~13block(1M)的位置,而将Binfs文件系统后移,继续
分析代码。
周四:
1)有两个结构体TOC、_IMAGE_DESCRIPTOR成为问题的难点,伴随整个Eboot的执行;其围
绕.bin文件的生成、烧写位置、NandFlash分区、启动加速;
2)特别是其特有的.bin文件,前几个字节不仅包含了接收地址、长度、校验和;还包括了要下载
的地址和长度。
3)通过修改PB下配置文件,成功将NandFlash分区,专门预留6~13block给logo;
4)思路很清楚,只要能将logo生成Eboot支持的.bin文件,就能实现下载,通过寻找合适的工
具、企图利用TOC、_IMAGE_DESCRIPTOR修改PB配置文件实现,但均以失败告终。
周五:
1)生成Eboot支持的.bin文件不可以,那修改Eboot来支持自己的.bin文件可以吗?答案是肯定
的——到这时候才理解了好多前辈对我的建议;
2)对Eboot修改主要有三处:1)添加自定义下载logo命令;2)修改NandFlash烧写函数;3)添
加NandFlash读函数。
3)当然还有相应修改image_cfg.h、loader.h、eboot.bin。
然后就可以了…………………………………………………………………………………………………………

最后想说的是:一定要认真分析Eboot代码,代码看不明白,即使有清晰的思路也无从下手。




加载更多回复(36)
友善之臂mini2440用户手册 第一章 Mini2440 开发板介绍...........................................................................................................................- 15 -  1.1 Mini2440开发板简介...........................................................................................................................- 15 -  1.1.1 Mini2440 开发板外观................................................................................................................- 16 -  1.1.2 Mini2440 开发板硬件资源特性................................................................................................- 16 -  1.1.3 Linux系统特性...........................................................................................................................- 18 -  1.1.4 WindowsCE 5.0 系统特性.........................................................................................................- 19 -  1.1.5 WindowsCE 6.0 系统特性.........................................................................................................- 21 -  1.1.6 资料光盘资源说明...................................................................................................................- 22 -  1.2 接口布局及跳线...................................................................................................................................- 23 -  1.2.1 跳线说明...................................................................................................................................- 23 -  1.2.2 接口布局...................................................................................................................................- 23 -  1.3 接口资源说明......................................................................................................................................- 24 -  1.3.1 地址空间分配和片选信号定义...............................................................................................- 24 -  1.3.2 SDRAM存储系统......................................................................................................................- 26 -  1.3.3 FLASH存储系统........................................................................................................................- 26 -  1.3.4 电源系统及接口.......................................................................................................................- 27 -  1.3.5 复位系统...................................................................................................................................- 29 -  1.3.6 用户LED....................................................................................................................................- 29 -  1.3.7 用户按键...................................................................................................................................- 30 -  1.3.8 A/D输入测试..............................................................................................................................- 30 -  1.3.9 PWM控制蜂鸣器.......................................................................................................................- 31 -  1.3.10 串口.........................................................................................................................................- 31 -  1.3.11 USB接口...................................................................................................................................- 32 -  1.3.12 LCD接口..................................................................................................................................- 33 -  1.3.13 EEPROM..................................................................................................................................- 34 -  1.3.14 网络接口.................................................................................................................................- 34 -  1.3.15 音频接口.................................................................................................................................- 35 -  1.3.16 JTAG接口.................................................................................................................................- 36 -  1.3.17 GPIO.........................................................................................................................................- 37 -  1.3.18 CMOS CAMERA接口.............................................................................................................- 38 -  1.3.19 系统总线接口.........................................................................................................................- 39 -  第二章 Mini2440 开发板使用说明...................................................................................................................- 41 -  2.1 开发板设置及连接.............................................................................................................................- 41 -  2.1.1 启动模式选择...........................................................................................................................- 41 -  2.1.2 外部接口连接...........................................................................................................................- 41 -  2.1.3 设置超级终端...........................................................................................................................- 41 -  2.2 开发板BIOS功能及使用说明.............................................................................................................- 45 - 2.2.1 开机进入BIOS模式..................................................................................................................- 45 -  2.2.2 安装USB下载驱动....................................................................................................................- 46 -  2.2.3 功能主菜单说明.......................................................................................................................- 52 -  2.2.4 设置Linux启动参数子菜单功能说明......................................................................................- 53 -  2.3 非操作系统下的外围资源测试.........................................................................................................- 56 -  2.3.1 下载运行测试程序.................................................................................................................- 56 -  2.3.2 外围资源测试...........................................................................................................................- 60 -  2.4 初试Linux之图形界面Qtopia 2.2.0系统 (预装) ...............................................................................- 68 -  2.4.1 触摸屏校正...............................................................................................................................- 69 -  2.4.2 主要界面说明...........................................................................................................................- 70 -  2.4.3 播放Mp3....................................................................................................................................- 71 -  2.4.4 播放视频...................................................................................................................................- 72 -  2.4.5 图片浏览...................................................................................................................................- 73 -  2.4.6 自动装载SD卡和优盘..............................................................................................................- 75 -  2.4.7 计算器.......................................................................................................................................- 76 -  2.4.8 命令终端...................................................................................................................................- 77 -  2.4.9 文件浏览器...............................................................................................................................- 78 -  2.4.10 网络设置.................................................................................................................................- 79 -  2.4.11 Ping测试...................................................................................................................................- 80 -  2.4.12 浏览器.....................................................................................................................................- 82 -  2.4.13 LED测试...................................................................................................................................- 82 -  2.4.14 EEPROM读写测试..................................................................................................................- 84 -  2.4.15 PWM控制蜂鸣器.....................................................................................................................- 85 -  2.4.16 串口助手.................................................................................................................................- 86 -  2.4.17 录音.........................................................................................................................................- 88 -  2.4.18 使用USB摄像头拍照..............................................................................................................- 89 -  2.4.19 CMOS摄像头预览拍照...........................................................................................................- 90 -  2.4.20 LCD测试..................................................................................................................................- 91 -  2.4.21 背光控制.................................................................................................................................- 92 -  2.4.22 A/D转换....................................................................................................................................- 93 -  2.4.23 按键测试.................................................................................................................................- 94 -  2.4.24 触摸笔测试.............................................................................................................................- 95 -  2.4.25 条码扫描.................................................................................................................................- 97 -  2.4.26 语言设置.................................................................................................................................- 97 -  2.4.27 设置时区-日期-时间-闹钟.....................................................................................................- 99 -  2.4.28 屏幕旋转...............................................................................................................................- 100 -  2.4.29 设置开机自动运行程序.......................................................................................................- 102 -  2.4.30 关于关机...............................................................................................................................- 103 -  2.4.31 看门狗...................................................................................................................................- 104 -  2.4.32 启动QtE-4.6.3........................................................................................................................- 106 -  2.5 通过串口终端操作开发板................................................................................................................- 107 - 2.5.1 播放mp3 ...................................................................................................................................- 108 -  2.5.2 如何中止程序的运行.............................................................................................................- 108 -  2.5.3 使用优盘/移动硬盘................................................................................................................- 109 -  2.5.4 使用SD卡................................................................................................................................ - 110 -  2.5.5 如何通过串口与PC互相传送文件......................................................................................... - 112 -  2.5.6 控制板上的LED...................................................................................................................... - 114 -  2.5.7 测试板上的按键...................................................................................................................... - 115 -  2.5.8 串口2和 3 的测试................................................................................................................. - 116 -  2.5.9 测试蜂鸣器............................................................................................................................. - 117 -  2.5.10 控制LCD的背光................................................................................................................... - 118 -  2.5.11 测试I2C-EEPROM............................................................................................................. - 118 -  2.5.12 AD转换测试...........................................................................................................................- 120 -  2.5.13 CMOS摄像头动态预览.........................................................................................................- 120 -  2.5.14 使用telnet上bbs......................................................................................................................- 121 -  2.5.15 如何设置网络以访问互联网网址........................................................................................- 123 -  2.5.16 如何设置MAC地址..............................................................................................................- 125 -  2.5.17 如何使用Telnet远程登录开发板..........................................................................................- 127 -  2.5.18 使用ftp传递文件...................................................................................................................- 128 -  2.5.19 通过网页控制板上的LED.....................................................................................................- 128 -  2.5.20 如何挂接使用网络文件系统NFS ........................................................................................- 129 -  2.5.21 使用USB无线网卡................................................................................................................- 130 -  2.5.22 设置并保存系统实时时钟....................................................................................................- 132 -  2.5.23 如何掉电保存数据到Flash...................................................................................................- 132 -  2.5.24 如何设置开机自动运行程序................................................................................................- 133 -  2.5.25 如何使用命令进行屏幕截图...............................................................................................- 134 -  2.6 预装WindowsCE5/6系统的使用和设置..........................................................................................- 135 -  2.6.1 按键测试.................................................................................................................................- 136 -  2.6.2 LED测试..................................................................................................................................- 137 -  2.6.3 ADC转换..................................................................................................................................- 137 -  2.6.4 I2C-EEPROM读写...................................................................................................................- 138 -  2.6.5 PWM控制蜂鸣器.....................................................................................................................- 139 -  2.6.6 看门狗.....................................................................................................................................- 140 -  2.6.7 LCD测试..................................................................................................................................- 142 -  2.6.8 CMOS摄像头预览拍照...........................................................................................................- 142 -  2.6.9 录音测试.................................................................................................................................- 144 -  2.6.10 屏幕旋转并保存...................................................................................................................- 145 -  2.6.11 串口助手...............................................................................................................................- 146 -  2.6.12 触摸屏校正...........................................................................................................................- 148 -  2.6.13 设置网络参数以连接互联网...............................................................................................- 150 -  2.6.14 背光设置...............................................................................................................................- 151 -  2.6.15 设置实时时钟并保存...........................................................................................................- 153 -  2.6.16 设置程序开机自动运行.......................................................................................................- 153 -  2.6.17 使用优盘...............................................................................................................................- 155 -  2.6.18 使用SD/MMC卡...................................................................................................................- 156 -  2.6.19 使用ActiveSync进行USB同步通讯.....................................................................................- 156 -  2.6.20 关于USB无线网卡................................................................................................................- 157 -  2.7 安装使用第三方软件.......................................................................................................................- 157 -  2.7.1 输入法...................................................................................................................................- 158 -  2.7.1.1 蒙恬手写输入......................................................................................................................- 158 -  2.7.2 实用工具...............................................................................................................................- 159 -  2.7.2.1 小画笔..................................................................................................................................- 159 -  2.7.2.2 计算器..................................................................................................................................- 160 -  2.7.2.3 记事本..................................................................................................................................- 160 -  2.7.2.4 截图工具..............................................................................................................................- 161 -  2.7.3 办公软件...............................................................................................................................- 161 -  2.7.3.1 文字处理浏览器..................................................................................................................- 161 -  2.7.3.2 电子表格浏览器..................................................................................................................- 162 -  2.7.3.3 幻灯片浏览..........................................................................................................................- 162 -  2.7.3.5 图片浏览器..........................................................................................................................- 163 -  2.7.3.5 pdf阅读器..............................................................................................................................- 163 -  2.7.4 媒体播放...............................................................................................................................- 164 -  2.7.4.1 TCPMP ..................................................................................................................................- 164 -  2.7.4.2 CorePlayer.............................................................................................................................- 164 -  2.7.4.3 Flash播放..............................................................................................................................- 165 -  2.7.5 图形图像...............................................................................................................................- 165 -  2.7.5.1 Photoshop ..............................................................................................................................- 165 -  2.7.6 网络软件...............................................................................................................................- 166 -  2.7.6.1 UCWEB浏览器......................................................................................................................- 166 -  2.7.7 休闲娱乐...............................................................................................................................- 167 -  2.7.7.1 BUBBLETS ............................................................................................................................- 167 -  2.7.7.2 中国象棋..............................................................................................................................- 167 -  2.7.7.3 游戏套装(33 个)...................................................................................................................- 168 -  2.8 体验WindowsCE 5.0 ..........................................................................................................................- 168 -  2.8.1 按键测试.................................................................................................................................- 168 -  2.6.2 LED测试..................................................................................................................................- 169 -  2.8.3 ADC转换..................................................................................................................................- 170 -  2.8.4 I2C-EEPROM读写...................................................................................................................- 171 -  2.8.5 PWM控制蜂鸣器.....................................................................................................................- 172 -  2.8.6 看门狗.....................................................................................................................................- 173 -  2.8.7 LCD测试..................................................................................................................................- 175 -  2.6.8 CMOS摄像头预览拍照...........................................................................................................- 175 -  2.8.9 录音测试.................................................................................................................................- 177 - 2.8.10 屏幕旋转并保存...................................................................................................................- 178 -  2.8.11 串口助手...............................................................................................................................- 179 -  2.8.12 触摸屏校正...........................................................................................................................- 181 -  2.8.13 设置网络参数以连接互联网...............................................................................................- 183 -  2.8.14 背光设置...............................................................................................................................- 184 -  2.8.15 设置实时时钟并保存...........................................................................................................- 186 -  2.8.16 设置程序开机自动运行.......................................................................................................- 186 -  2.8.17 使用优盘...............................................................................................................................- 188 -  2.8.18 使用SD/MMC卡...................................................................................................................- 189 -  2.8.19 使用ActiveSync进行USB同步通讯.....................................................................................- 189 -  2.8.20 使用USB无线网卡................................................................................................................- 190 -  第三章 备份恢复系统及安装更新.................................................................................................................- 192 -  3.1 备份和恢复系统...............................................................................................................................- 192 -  3.1.1 备份系统.................................................................................................................................- 192 -  3.1.2 使用备份文件恢复系统.........................................................................................................- 197 -  3.2 安装Linux系统...................................................................................................................................- 200 -  3.2.1 分区.........................................................................................................................................- 200 -  3.2.2 安装bootloader ........................................................................................................................- 202 -  3.2.3 安装Linux内核........................................................................................................................- 204 -  3.2.4 安装根文件系统.....................................................................................................................- 205 -  3.3 安装WinCE系统................................................................................................................................- 208 -  3.3.1 安装Bootloader........................................................................................................................- 208 -  3.3.2 下载烧写BootLogo .................................................................................................................- 210 -  3.3.3 安装wince内核映象................................................................................................................ - 211 -  3.4 下载到内存运行................................................................................................................................- 214 -  3.4.1 运行 2440test...........................................................................................................................- 214 -  3.4.2 运行uCos2 ...............................................................................................................................- 217 -  3.4.3 运行Linux................................................................................................................................- 221 -  3.4.4 运行WinCE .............................................................................................................................- 224 -  第四章 ADS1.2 集成开发环境的使用...........................................................................................................- 227 -  4.1 使用ADS创建LED工程.....................................................................................................................- 227 -  4.1.1 建立一个工程.........................................................................................................................- 227 -  4.1.2 编译和链接工程.....................................................................................................................- 232 -  4.2  使用H‐JTAG进行代码调试................................................................................................................- 239 -  4.2.1  为H‐JTAG配置AXD DEBUGGER.............................................................................................- 239 -  4.2.4  使用H‐JTAG在ADS1.2 环境下进行仿真调试........................................................................- 241 -  4.3  编译运行烧写 2440test ....................................................................................................................- 242 -  4.3.1  编译和使用H‐JTAG调试 2440test.........................................................................................- 242 -  4.3.2  通过USB把 2440test下载到内存运行..................................................................................- 247 -  4.4.3  把 2440test烧写到Nand Flash运行......................................................................................- 249 -  4.5 uCos2 的编译和烧写..........................................................................................................................- 252 - 4.5.1  编译uCos2 ..............................................................................................................................- 252 -  4.5.2 把uCos2 下载到内存运行......................................................................................................- 254 -  4.5.3 把uCos2 烧写到Nand Flash运行............................................................................................- 257 -  第五章 建立Linux开发环境............................................................................................................................- 260 -  5.1 图解安装Fedora 9.0 ...........................................................................................................................- 260 -  5.2 常用设置和服务................................................................................................................................- 274 -  5.2.1 添加新用户.............................................................................................................................- 275 -  5.2.2 访问Windows系统中的文件.................................................................................................- 277 -  5.3 建立交叉编译环境.............................................................................................................................- 282 -  5.4 解压安装源代码及其他工具............................................................................................................- 284 -  5.4.1 解压安装源代码.....................................................................................................................- 284 -  5.4.2 解压创建目标文件系统.........................................................................................................- 287 -  5.4.3 解压安装必要实用工具.........................................................................................................- 287 -  5.5 配置网络文件系统NFS服务..............................................................................................................- 288 -  5.5.1 设置共享目录.........................................................................................................................- 289 -  5.5.2 和启动NFS服务.......................................................................................................................- 289 -  5.5.3 通过NFS启动系统..................................................................................................................- 290 -  第六章 定制Linux内核及制作文件系统........................................................................................................- 293 -  6.1 使用缺省配置文件配置和编译内核.................................................................................................- 293 -  6.2 各个驱动程序源代码位置................................................................................................................- 296 -  6.3 手工定制Linux内核...........................................................................................................................- 297 -  6.3.1 配置CPU平台选项..................................................................................................................- 297 -  6.3.2 配置各个尺寸的LCD驱动以及背光控制支持........................................................................- 300 -  6.3.3 配置触摸屏.............................................................................................................................- 302 -  6.3.4 配置USB鼠标和键盘..............................................................................................................- 303 -  6.3.5 如配置优盘的支持.................................................................................................................- 304 -  6.3.6 配置万能驱动USB摄像头.......................................................................................................- 306 -  6.3.7 配置CMOS摄像头驱动..........................................................................................................- 308 -  6.3.8 配置网卡驱动.........................................................................................................................- 310 -  6.3.9 配置USB无线网卡驱动..........................................................................................................- 313 -  6.3.10 配置音频驱动.......................................................................................................................- 317 -  6.3.11 配置SD/MMC卡驱动................................................................................................................- 320 -  6.3.12 配置看门狗驱动支持...........................................................................................................- 321 -  6.3.13 配置LED驱动.........................................................................................................................- 322 -  6.3.14 配置按键驱动.......................................................................................................................- 323 -  6.3.15 配置PWM控制蜂鸣器驱动.....................................................................................................- 324 -  6.3.16 配置AD转换驱动...................................................................................................................- 324 -  6.3.17 配置串口驱动.......................................................................................................................- 325 -  6.3.18 如何配置RTC实时时钟驱动................................................................................................- 326 -  6.3.19 配置I2C-EEPROM驱动支持...................................................................................................- 327 -  6.3.20 配置yaff2s文件系统的支持..................................................................................................- 329 - 6.3.21 配置EXT2/VFAT/ NFS等文件系统.....................................................................................- 332 -  6.3.22 制作Linux logo......................................................................................................................- 335 -  6.4 制作目标板文件系统映象................................................................................................................- 338 -  第七章 嵌入式Linux应用开发入门指南........................................................................................................- 340 -  7.1Hello,World! .........................................................................................................................................- 340 -  7.1.1 Hello,World源代码...................................................................................................................- 340 -  7.1.2 编译Hello,World......................................................................................................................- 341 -  7.1.3 把Hello,World下载到开发板运行..........................................................................................- 341 -  7.2 嵌入式Linux程序开发入门...............................................................................................................- 344 -  7.2.1 LED测试程序...........................................................................................................................- 344 -  7.2.2 测试按键.................................................................................................................................- 345 -  7.2.3 PWM控制蜂鸣器编程示例.....................................................................................................- 347 -  7.2.4 I2C-EEPROM编程示例...........................................................................................................- 351 -  7.2.5 串口编程示例.........................................................................................................................- 354 -  7.2.6 UDP网络编程..........................................................................................................................- 359 -  7.2.7 数学函数库调用示例.............................................................................................................- 365 -  7.2.8 线程编程示例.........................................................................................................................- 366 -  7.2.9 管道应用编程示例-网页控制LED ........................................................................................- 368 -  7.2.10 基于C++的Hello,World ........................................................................................................- 373 -  7.3 最简单的嵌入式Linux驱动程序模块...............................................................................................- 374 -  7.3.1 Hello,Module源代码................................................................................................................- 374 -  7.3.2 把Hello,Module加入内核代码树,并编译...........................................................................- 375 -  7.3.3 把Hello, Module下载到开发板并安装使用..........................................................................- 378 -  7.4 简易Linux驱动程序示例...................................................................................................................- 378 -  7.4.1 LED驱动程序...........................................................................................................................- 379 -  7.4.2 按键驱动程序.........................................................................................................................- 383 -  7.5 编译Qtopia-2.2.0 ................................................................................................................................- 388 -  7.5.1 解压安装源代码.....................................................................................................................- 388 -  7.5.2 编译和运行x86 版本的Qtopia-2.2.0 ......................................................................................- 388 -  7.5.3 编译和运行arm版本的Qtopia-2.2.0 .......................................................................................- 389 -  7.6 编译QtE-4.6.3 ....................................................................................................................................- 390 -  7.6.1 解压安装源代码.....................................................................................................................- 390 -  7.6.2 编译和运行arm版本的QtE-4.6.3............................................................................................- 391 -  第八章 常见bootloader的配置和编译............................................................................................................- 393 -  8.1 编译vboot ...........................................................................................................................................- 393 -  8.2 配置和编译vivi ..................................................................................................................................- 394 -  8.3 配置和编译U-Boot ............................................................................................................................- 396 -  8.3.1 配置和编译U-Boot .................................................................................................................- 397 -  8.3.2 把U-Boot烧写到开发板.........................................................................................................- 398 -  8.4 使用ADS编译YL-BIOS.....................................................................................................................- 400 -  8.4.1 使用ADS编译YL-BIOS..........................................................................................................- 400 -  8.4.2 把YL-BIOS下载到内存中运行...............................................................................................- 401 -  8.4.3 烧写YL-BIOS到开发板...........................................................................................................- 404 -  第九章 WindowsCE 6.0 开发指南..................................................................................................................- 407 -  9.1 建立WindowsCE 6.0 开发环境..........................................................................................................- 407 -  9.1.1 安装Visual Studio 2005 及补丁..............................................................................................- 409 -  9.1.2 安装Windows CE 6.0 及补丁.................................................................................................- 423 -  9.1.3 安装第三方软件腾讯QQ........................................................................................................- 445 -  9.1.4 安装BSP及内核工程示例......................................................................................................- 452 -  9.1.5 各个驱动程序源代码的位置.................................................................................................- 455 -  9.2 配置和编译WindowsCE 6.0 内核及Bootloader................................................................................- 456 -  9.2.1 缺省内核工程特性简介.........................................................................................................- 456 -  9.2.2 编译缺省内核工程示例.........................................................................................................- 457 -  9.2.3 编译带腾讯QQ的内核工程示例............................................................................................- 467 -  9.2.4 编译和烧写BootLoader之NBOOT.........................................................................................- 474 -  9.2.5 在BSP中修改LCD类型及串口输出功能..............................................................................- 480 -  9.2.6 制作和修改Windows CE启动Logo........................................................................................- 481 -  9.2.7 创建SDK .................................................................................................................................- 485 -  9.2.8 安装SDK .................................................................................................................................- 487 -  9.3 与PC同步(基于Windows 7)................................................................................................................- 492 -  9.3.1 安装Windows Mobile设备中心实现PC同步.........................................................................- 493 -  9.4 通过VS2005 创建应用程序, 并编译下载到开发板运行................................................................- 497 -  9.4.1 创建项目.................................................................................................................................- 497 -  9.4.2 设置连接开发板.....................................................................................................................- 500 -  9.4.3 编译下载程序到开发板运行.................................................................................................- 503 -  第十章 WindowsCE 5.0 开发指南..................................................................................................................- 505 -  10.1 基于WindowsCE5.0的开发环境.....................................................................................................- 505 -  10.1.1 安装Platform Builder 5.0(含2007最新补丁) ......................................................................- 505 -  10.1.2 导入安装BSP ........................................................................................................................- 516 -  10.1.3 安装无线网卡驱动程序.......................................................................................................- 519 -  10.1.4 编译内核工程示例...............................................................................................................- 522 -  10.1.5 导出SDK ...............................................................................................................................- 526 -  10.1.6 安装Embedded Visual C++(EVC) ........................................................................................- 532 -  10.1.7 安装EVC补丁和导出的SDK ...............................................................................................- 538 -  10.1.8 定制CE内核..........................................................................................................................- 547 -  10.1.9 制作WindowsCE开机画面StartLogo ...................................................................................- 561 -  10.1.10 BootLoader之Nboot的编译和烧写.....................................................................................- 565 -  10.1.11 把NBOOT烧写到Nand Flash..............................................................................................- 568 -  10.2 使用ActiveSync与PC同步................................................................................................................- 570 -  10.2.1 安装ActiveSync.....................................................................................................................- 570 -  10.2.2 为同步通讯安装USB驱动....................................................................................................- 574 -  10.2.3 使用ActiveSync同步传输工具复制文件.............................................................................- 578 - 10.2.4 使用ActiveSync与Platform Builder连接实现通讯并屏幕截图..........................................- 581 -  10.2.5 使用ActiveSync与Platform Builder在线编辑注册表...........................................................- 588 -  10.3 创建EVC的Hello,World, 并编译下载到开发板运行....................................................................- 589 -  10.4 创建VS2005/2008 应用程序, 并编译下载到开发板运行............................................................- 596 -  10.4.1 创建项目...............................................................................................................................- 597 -  10.4.2 设置连接开发板...................................................................................................................- 599 -  10.4.3 编译下载程序到开发板运行...............................................................................................- 602 -  10.5 LED驱动程序编写及测试示例.....................................................................................................- 603 -  10.5.1 了解硬件连接.......................................................................................................................- 604 -  10.5.2 编写LED流式驱动程序........................................................................................................- 605 -  10.5.3 把LED驱动程序添加到BSP中以编译.................................................................................- 612 -  10.5.4 编写并编译LED测试应用程序............................................................................................- 614 -  10.5.5 把LED测试程序添加到内核,并建立桌面快捷方式........................................................- 617 -  附录 使用H-JTAG快速烧写BIOS到开发板...................................................................................................- 620 -  1. 1 H-JTAG简介.......................................................................................................................................- 620 -  2. 2 安装并设置H-JTAG..........................................................................................................................- 621 -  2. 3 设置Flash型号并烧写BIOS..............................................................................................................- 625 -  2. 4 常见问题...........................................................................................................................................- 631 - 

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧