wince 6.0 nk.bin大于32M 下载失败

feishanm 2009-08-03 10:33:38
wince 6.0增加简体字库后,NK.bin就有33M了。
想把NK.bin调大,如35M

1、修改Bootloader\Eboot\eboot.bib,修改如下:
//#define ROM_RAMIMAGE_SIZE 0x02000000
#define ROM_RAMIMAGE_SIZE 0x02300000
2、修改Files/config.bib,修改如下:
;NK 80200000 02200000 RAMIMAGE
NK 80200000 02300000 RAMIMAGE

;ROMSIZE = 02200000
ROMSIZE = 02300000

除了上面两个地方修改外,还有哪些地方需要修改呢?
谢谢!
...全文
331 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
harkspan 2010-06-10
  • 打赏
  • 举报
回复
顶贴标记
AlphaWu 2010-01-26
  • 打赏
  • 举报
回复
很有用。
feishanm 2009-08-04
  • 打赏
  • 举报
回复
问题已经解决。谢谢各位的回答。
尤其是changsz 及codewarrior。
稍后在blog上总结。
feishanm 2009-08-03
  • 打赏
  • 举报
回复

希望还是能把NK.bin的限制调大,以后会用到。
中国168 2009-08-03
  • 打赏
  • 举报
回复
如果你是加入的汉字库的较大的原因造成系统nk较大的原因可以把组件“Agfa AC3 Font Compression”选上,然后编译看看。

如果是其他原因,可以尝试字库的减小、去掉其他不用的系统功能等方法。
congyue123 2009-08-03
  • 打赏
  • 举报
回复
关注,帮顶。
feishanm 2009-08-03
  • 打赏
  • 举报
回复
试试codewarrior的做法。
feishanm 2009-08-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 changsz 的回复:]
不建议将nk》32MB,绝大多情况32足够了
如果加大image
可以这样:
#define NKSTART 80500000你的image 开始
#define NKLEN 你image的大小,如果33M。02100000
#define RAMSTART 81A00000空的RAM的开始地址=NKSTART+NKLEN:82600000
#define RAMLEN RAM长度=84000000(64M情况)- RAMSTART=01a00000

。。。
NK $(NKSTART) $(NKLEN) RAMIMAGE
RAM $(RAMSTART) $(RAMLEN) RAM
。。。
ROMFLAGS = 0
ROMSTART = $(NKSTART)
ROMWIDTH = 32
ROMSIZE  = $(NKLEN)

[/Quote]

谢谢changsz的回答,我觉得Eboot也需要修改的,不然下载时会提示:
BIN image type unknow
!OEMVERIFYMEMORY: Invalid image
会思考的草 2009-08-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 feishanm 的回复:]
引用 4 楼 codewarrior 的回复:
汉字库塞到user store里不就成了。

这个怎么做呢?
[/Quote]
zz的:

网上有很多介绍将字体保存到SD卡、Flash等来减少内核的大小,但要注意一点就是:在加载显示驱动前就要加载保存字体的存贮设备的驱动,否则中文字体不能加载,系统启动后显示框框。将字体保存到注册表保存的存贮设备上,因为该存贮设备驱动很早就加载了。

而我使用的是硬盘,注册表需要作如下修改

1、在platform.reg中添加如下

[HKEY_LOCAL_MACHINE\SYSTEM\GDI]

"FontLinkMethods"=dword:1

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontPath]

"FontPath"="\\Hard Disk" ; 字库文件所在目录



[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontLink\SystemLink]

"Tahoma"="\\Hard Disk\\simsun.ac3,NSimSun" ;我是用的压缩字库,所以为simsun.ac3。

"Courier New"="\\Hard Disk\\simsun.ac3,NSimSun"

"Arial"="\\Hard Disk\\simsun.ac3,NSimSun"

"Times New Roman"="\\Hard Disk\\simsun.ac3,NSimSun"

"Symbol"="\\Hard Disk\\simsun.ac3,NSimSun"

2、在工程目录中common.bib文件中删掉simsun.ac3相关项,确认该文件不会编到内核中。

3、把文件拷到Hard Disk中,即可,再启动就ok了。

个字库,可使用;号隔开。例如:

"Tahoma"="\\Boot Disk \\Windows\\simsun.ttc,NSimSun; \\Boot Disk \\Windows\\mingliu.ttc,PMingLiU"
xqhrs232 2009-08-03
  • 打赏
  • 举报
回复
修改EBOOT
changsz 2009-08-03
  • 打赏
  • 举报
回复
#define NKSTART 80500000是我的开始地址,你要换成你的
还有就是NK大了,RAM就会减小,有些应用可能会有问题
changsz 2009-08-03
  • 打赏
  • 举报
回复
不建议将nk》32MB,绝大多情况32足够了
如果加大image
可以这样:
#define NKSTART 80500000你的image 开始
#define NKLEN 你image的大小,如果33M。02100000
#define RAMSTART 81A00000空的RAM的开始地址=NKSTART+NKLEN:82600000
#define RAMLEN RAM长度=84000000(64M情况)- RAMSTART=01a00000

。。。
NK $(NKSTART) $(NKLEN) RAMIMAGE
RAM $(RAMSTART) $(RAMLEN) RAM
。。。
ROMFLAGS = 0
ROMSTART = $(NKSTART)
ROMWIDTH = 32
ROMSIZE = $(NKLEN)
feishanm 2009-08-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 changsz 的回复:]
如果调整大IMAGE的尺寸,就会产生NK.NB0和NK.NB1两个文件的image了。
如果汉字库塞到user store里到是个好办法,不过NK加载时要到user store去加载,这个过程会比较麻烦
还有一个办法:在选择汉字库时不要选择“SimSun & NSimSun”,这个有大概10MB的空间,可以选择SimSun & NSimSun (Subset 2_20)或SimSun & NSimSun (Subset 2_50)这几个比较小。你可以试一试!
[/Quote]
我是下载nk.bin文件,所以与nk.nbX没关系。
选择的字库是SimSun & NSimSun (Subset 2_20),这个应该是最小的吧。

没人做过将IMAGE调大吗?
changsz 2009-08-03
  • 打赏
  • 举报
回复
如果调整大IMAGE的尺寸,就会产生NK.NB0和NK.NB1两个文件的image了。
如果汉字库塞到user store里到是个好办法,不过NK加载时要到user store去加载,这个过程会比较麻烦
还有一个办法:在选择汉字库时不要选择“SimSun & NSimSun”,这个有大概10MB的空间,可以选择SimSun & NSimSun (Subset 2_20)或SimSun & NSimSun (Subset 2_50)这几个比较小。你可以试一试!
feishanm 2009-08-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 codewarrior 的回复:]
汉字库塞到user store里不就成了。
[/Quote]
这个怎么做呢?
会思考的草 2009-08-03
  • 打赏
  • 举报
回复
汉字库塞到user store里不就成了。

19,500

社区成员

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

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