8339|22

85

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于WINCE6。0开机LOGO加进度条的问题。 [复制链接]

请问6。0下,开机LOGO上如何加进度条,是在BOOT上加,还是在OAL上加,我的那张初始LOGO是在OAL上加的。。

最新回复

呵呵,要是有这个方法就好了  详情 回复 发表于 2009-11-12 11:39
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
应该是BOOT里面吧,    如何? 我知道的是可以自己画喽1
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
如果是想进度条从LCD点亮一直到WINCE桌面显示或者自己的SHELL AP显示之前一直动态显示就不是仅在EBOOT和OAL里加了,你要根据自己驱动的加载顺序,每个驱动都加下刷新LOGO的代码,这样才能保证比较好的动态效果
不过这是我的理解吧,也许加载每个驱动的时候都有和OAL层交互一下数据?那样就方便了,但是不知道是否是这样的
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
这个东西好,我喜欢,回头也尝试一下
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

5
 
在BOOT里加就可以了,没有必要在OAL和驱动里做。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 4 楼 sunrain_hjb 的回复:
在BOOT里加就可以了,没有必要在OAL和驱动里做。


那个动态效果怎么做呢?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

7
 
可以放到内核目录下,也可以做到NBOOT里面,Nboot 并不具备烧写功能,它只能读取已经烧写处理好的文件:开机画面(BootLogo)和WinCE 内核。是用来启动WINCE内核的。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

8
 
如果是EBOOT的动态效果的话就在每个函数调用的时候刷新一下进度条吧,但是在开始launch OS之后还有很长的时间不能更新进度条,这就是我为什么说是否需要在驱动里再刷新进度条的原因。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

9
 
根据我的平台讲一下我的理解哈:

WinCE一个典型的启动过程:从Nand启动,bootloader和内核都保存在Nand里。

启动时,主要有两个步骤:一是bootloader初始化板子并把内核从nand拷到内存里面,二是跳到内存里面运行内核加载各个接口的驱动。

对于第一个步骤,占用的时间比第二个长得多,估计要7-10这样,第二个步骤估计也就1-3秒这样,所以我的做法是在bootloader里面添加开机的logo,只在第一个步骤的时候进行动态显示(用进度条的移动来表示),第二个步骤的时候就不再进行动态地显示了。

在内核从nand拷到内存的时候,有个专门的函数,比如说FMD_ReadSector(dwSectorAddr, pbBuffer, NULL, 1),你可以根据其中的dwSectorAddr这个参数来设置进度条的动态显示了:比如说你的SectorAddr总共为100,先LCD的中间画一个小长方形的白矩形条,开始的时候在矩形条的左边画一个小红块,然后当dwSectorAddr每增加10的时候你就在将小红块向右移整个矩形条的10%和位移。当内核从nand拷到内存完毕,你的小红块也就移到了最右边了。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

10
 

为何要进度条?
开机4~5秒就看到桌面了,进度条多余的,开机logo放个倒是真的
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

11
 
不同的BSP出来的效果不一样,我们的BSP bootloader的时间比WINCE的启动时间短,因为我们驱动比较多,并且FLASH的盘符是三个,每个盘符大概要占去一秒钟的时间。
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 9 楼 harktrip 的回复:
为何要进度条?
开机4~5秒就看到桌面了,进度条多余的,开机logo放个倒是真的

你们的BOOTLOADER是自己重新写的吧?
并且驱动少,或者是驱动是在WINCE界面出现后由其它AP再进行加载?
如果是后者的话生产后供其它公司使用开发AP就不是很方便了。
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

13
 
EBOOT中加吧。NBOOT只有4K呀。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 8 楼 black_potato 的回复:
根据我的平台讲一下我的理解哈:

WinCE一个典型的启动过程:从Nand启动,bootloader和内核都保存在Nand里。

启动时,主要有两个步骤:一是bootloader初始化板子并把内核从nand拷到内存里面,二是跳到内存里面运行内核加载各个接口的驱动。

对于第一个步骤,占用的时间比第二个长得多,估计要7-10这样,第二个步骤估计也就1-3秒这样,所以我的做法是在bootloader里面添加开机的logo,只在第一个步骤的时候进行动态显示(用进度条的移动来表示),第二个步骤的时候就不再进行动态地显示了。

在内核从nand拷到内存的时候,有个专门的函数,比如说FMD_ReadSector(dwSectorAddr, pbBuffer, NULL, 1),你可以根据其中的dwSectorAddr这个参数来设置进度条的动态显示了:比如说你的SectorAddr总共为100,先LCD的中间画一个小长方形的白矩形条,开始的时候在矩形条的左边画一个小红块,然后当dwSectorAddr每增加10的时候你就在将小红块向右移整个矩形条的10%和位移。当内核从nand拷到内存完毕,你的小红块也就移到了最右边了。



就是这个思路,启动OS时的停滞是难免的。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 13 楼 sunrain_hjb 的回复:
引用 8 楼 black_potato 的回复:
根据我的平台讲一下我的理解哈:

WinCE一个典型的启动过程:从Nand启动,bootloader和内核都保存在Nand里。

启动时,主要有两个步骤:一是bootloader初始化板子并把内核从nand拷到内存里面,二是跳到内存里面运行内核加载各个接口的驱动。

对于第一个步骤,占用的时间比第二个长得多,估计要7-10这样,第二个步骤估计也就1-3秒这样,所以我的做法是在bootloader里面添加开机的logo,只在第一个步骤的时候进行动态显示(用进度条的移动来表示),第二个步骤的时候就不再进行动态地显示了。

在内核从nand拷到内存的时候,有个专门的函数,比如说FMD_ReadSector(dwSectorAddr, pbBuffer, NULL, 1),你可以根据其中的dwSectorAddr这个参数来设置进度条的动态显示了:比如说你的SectorAddr总共为100,先LCD的中间画一个小长方形的白矩形条,开始的时候在矩形条的左边画一个小红块,然后当dwSectorAddr每增加10的时候你就在将小红块向右移整个矩形条的10%和位移。当内核从nand拷到内存完毕,你的小红块也就移到了最右边了。



就是这个思路,启动OS时的停滞是难免的。

如果是在从NAND拷贝到RAM里边加动态显示根本就没有必要,看下打印信息,这个读的过程基本上可以说是瞬间过去的,加了动态也没意义


 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

16
 
我也加了,但是没有显示在LCD上。
我在EBOOT里的main.c 里加画像素的函数。在bootpart.cpp的BP_ReadData,里加了画进度条的函数,。这样始终不行,都不知道是在哪里出了问题,也不知道应该怎么去调试。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

17
 
这么都喜洋洋
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

18
 
引用 14 楼 veabol 的回复:
引用 13 楼 sunrain_hjb 的回复:
引用 8 楼 black_potato 的回复:
根据我的平台讲一下我的理解哈:

WinCE一个典型的启动过程:从Nand启动,bootloader和内核都保存在Nand里。

启动时,主要有两个步骤:一是bootloader初始化板子并把内核从nand拷到内存里面,二是跳到内存里面运行内核加载各个接口的驱动。

对于第一个步骤,占用的时间比第二个长得多,估计要7-10这样,第二个步骤估计也就1-3秒这样,所以我的做法是在bootloader里面添加开机的logo,只在第一个步骤的时候进行动态显示(用进度条的移动来表示),第二个步骤的时候就不再进行动态地显示了。

在内核从nand拷到内存的时候,有个专门的函数,比如说FMD_ReadSector(dwSectorAddr, pbBuffer, NULL, 1),你可以根据其中的dwSectorAddr这个参数来设置进度条的动态显示了:比如说你的SectorAddr总共为100,先LCD的中间画一个小长方形的白矩形条,开始的时候在矩形条的左边画一个小红块,然后当dwSectorAddr每增加10的时候你就在将小红块向右移整个矩形条的10%和位移。当内核从nand拷到内存完毕,你的小红块也就移到了最右边了。


就是这个思路,启动OS时的停滞是难免的。

如果是在从NAND拷贝到RAM里边加动态显示根本就没有必要,看下打印信息,这个读的过程基本上可以说是瞬间过去的,加了动态也没意义




这个要看平台的,有些读取NK时间会比较长,如果时间很短,那确实没有必要加进度条了,显示一个LOGO足矣。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

19
 
看一下QQ号为4176 4381的空间,里面有相关方面的建议,或许对你有用
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

20
 
这个我做过,在每个驱动中都刷新LCD,效果是实现了,但是我觉得方法比较SB
不知道在OAL层启动一个线程来刷新LCD,在Display驱动中关闭这个线程,这种方法可行不,不过这个难以做到滚动条走完启动,只能像XP启动那样,一个滚动条来回跑.
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表