Uboot引导WinCE 和.NetMicroFramework双系统

本文介绍了如何使用Uboot在32M Flash中同时存储并启动WinCE和.Net Micro Framework两个系统。关键在于调整WinCE的起始地址,压缩中文字库,以及解决uboot与tinybooter的冲突。通过定制中文系统,选择合适的字体子集,可以减小WinCE内核的体积。同时,详细阐述了在Uboot中利用go命令启动两个系统的具体步骤,包括如何处理双系统切换可能导致的问题,并提供了WinCE系统映像生成及USB设备驱动的集成方法。
摘要由CSDN通过智能技术生成

在实际项目中需要用到在一个Flash里存储两个系统,通过选择来启动其中一个系统,该文章主要描述如何用uboot来启动WinCE和.Net Micro Framework 双系统
由于WinCE中加入中文字库、MFC、.NET Compact Framework 3.5、Usb Device等支持,Image文件较大,需裁剪,Flash空间为32M,MF系统也需占用一定的空间,经过验证,在保证MF空间足够,WinCE系统能正常启动的前提下,WinCE烧写的起始地址为Flsah上的60x00000,解决的关键技术记录如下。
中文字库的压缩
定制中文系统时,NK总是比英文大10M左右,启动时在bootloader中将内核Copy到内存时也花时间,同时也占用了很多内存,留给系统和应用的内存就少了10M左右。总结如下,如何减少中文字库大小。核心思想是将默认选择的中文字体SimSun & NSimSun (SYSGEN_FONTS_SIMSUN)替换成(SYSGEN_FONTS_SIMSUN_2_50)达到体积的缩小。
减少中文字库大小
1.先打开目标的工程文件,单击“Platform”菜单,再单击“Settings…”,执行“clear” ,
Locales:将”英文(美国)”“中文(中国)”打勾
Default languare:选择“中文(中国)”
完成第1步后,工程中采用默认的是新宋字体
2.回到Catalog,选择“Core OS”—>“International”—>“Locale Spectific Support”
   —> “Chinese[Simplified]”
▲ SimSun & NSimSun (Subset 2_50):字体大小是3M左右,WINCE选择Subset 2_50是最合适的,所以用(Subset 2_50)中文字体替换原来的中文字体,选择SimSun & NSimSun (Subset 2_50),按右键添加该组件即可,这样就会把原来的字体替换掉。这样对中文显示又没有影响又达到内核瘦身的效果,必须选上;
补充:在没有压缩字体的情况来,默认选择的新宋字库大小是10M多,文件为simsun.ttc,若选择Subset 2_50版本,文件为simsun_2_50.ttc,字体大小是将近3M,也是对WinCE体积进行裁剪关键所在。
▲ GB18030 Data Converter:汉字编码标准集转换器,必须选上
3.重新进行Sysgen,这样做出来的系统,既能正常显示中文,又不用担心NK体积过大。

Uboot中启动程序的命令有bootm和go,MF和 CE要用go命令启动系统
双系统移植过程中遇到以下几个问题:
运行程序闪:uboot与tinybooter冲突,使用tinyclr.bin解决此问题
双系统切换导致CE无法运行:.NetMicroFramework的Flash空间应为6M,使用8M的image导致MF配置信息无法修改:在烧写tinyclr的基础之上,在601xxxxx地址上烧写TinyBooterDecompressor.bin,在601x0000地址上烧写er_config(flash版),修改配置信息需启动TinyBooterDecompressor.bin。
注意:用MFDeploy工具修改配置信息时,必须先断开mincom连接。
WinCE系统映像生成
1. nk.bin映像生成
nk.bin是用于eboot引导的映像(用于单系统WinCE):用PB打开EDB9315-bin.pbxml文件,执行Sysgen即可生成.nk.bin。
2. nk.nb0映像生成
nk.nb0是用于uboot引导的双系统映像(WinCE与MF),用PB打开EDB9315-nk0.pbxml文件,还需修改以下配置文件:
 
图1 修改配置
上图为修改config-1x07.bib文件中Boot  from  RAM中的ROMSIZE=01499999(20.6M)
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
1、包内包含所需的工具和源文件 2、电脑网线接路由器,设置电脑网口为静态ip:192.168.1.2 子网掩码 255.255.255.0 其余为空 3、断开路由器电源,按住reset键,插上电源,等待10s左右黄色指示灯开始缓慢闪即可松开reset键。 4、电脑浏览器打开192.168.1.1, 出现上传rom页面 5、选择openwrt-r47884-ar71xx-generic-qihoo-c301-flash1-squashfs-factory.bin点击upload 不想装双系统、只想用openwrt的到此OK,可以不往下看了。想装双系统的继续。 6、重启后,打开wincsp软件,打开选择scp,输入主机名192.168.1.1端口默认,用户名 root 密码 admin ,点击登录 7、右侧找到并打开tmp文件夹(注意不是tmp/tmp),把uboot.bin文件复制到这里面。 8、打开putty软件,填上192.168.1.1,login as输入root 9、成功登陆进去后可以看到openwrt字样,这时候输入cd /tmp 10、然后输入 mtd -r write uboot.bin u-boot 路由会在3秒左右失去连接即是刷uboot成功, 11、等十几秒后拔掉电源,按住reset接通电源10秒左右松开,在电脑打开网页192.168.1.1就进入uboot了 12、uboot中选择固件更新”固件“选项点选择文件选择360-301_0.8.3.0.bin,选择并在闪存布局里选择306安全路由C301,点击上传>更新,自动重启,360的固件就刷上去了,192.168.36.1验证一下吧。 13、拔掉电源,老方法进入uboot,uboot中选择固件更新,”固件“选项点选择文件选择openwrt-r47884-ar71xx-generic-qihoo-c301-flash2-squashfs-factory.bin”,”ART“选项点选择文件选择360art.bin,选择并在闪存布局里选择306安全路由C301(第二闪存),刷入openwrt。 14、在uboot中选择启动系统,打开uboot(11老方法进入)在C301设置中选择1或者2点启动,重启即可。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值