曙海教育集团论坛Win CE 专区WinCE应用开发 → 在Bootloader, WinCE,应用程序间传递参数的方法


  共有8271人关注过本帖树形打印

主题:在Bootloader, WinCE,应用程序间传递参数的方法

美女呀,离线,留言给我吧!
wangxinxin
  1楼 个性首页 | 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:青蜂侠 帖子:1393 积分:14038 威望:0 精华:0 注册:2010-11-12 11:08:23
在Bootloader, WinCE,应用程序间传递参数的方法  发帖心情 Post By:2010-11-26 9:03:36

基本思想就是在Nand Flash等固态存储器中保存这个变量
实现方法有很多种,如果你使用的是EBoot,EBoot的例子中会有一个BOOT_CFG的结构体,默认保存EBoot参数的,这个参数保存在固态存储器上,可以参考WINCE500\PLATFORM\SMDK2410\SRC\BOOTLOADER\EBOOT\main.c
这样解决了保存变量的问题,但是如何在Bootloader与操作系统间传递参数呢,
同样对于2410的例子,OEMPlatformInit里面会有一个BSP_ARGS的结构体,用来在EBoot与WinCE之间传递参数,这块区域是SDRAM的区域,一般是保留出来作为参数传递的,WinCE不会覆盖这块区域,这个结构体在EBoot中被填充,所以,可以将参数放在BOOT_CFG中,然后EBoot初始化时从Nand中读出来,放到BSP_ARGS,以达到传递给WinCE的目的。
但是这样只是解决了读取的问题,这个参数在CE中的修改还是不会被保存。
这种默认的方法最一般的用途就是来控制KITL,这种单向参数传递的
如果需要双向传递或保存,最简单的方法就是在WinCE驱动中添加一个IOCTL,比如FMD的IOCTL,用来读写这块参数区域
这样子,应用程序也就可以访问这块参数了。

如果不使用EBoot的默认方式,就直接规定一个或几个Nand区域,读写方案同上,以达到多个应用的参数分开保存的目的,比如BT MAC在Block2, WIFI MAC在Block3, 其他参数在Block4。这样做可以将经常读写的参数和不经常读写的参数分开,以免经常读写的块损坏,而破坏其他的功能


支持(1中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

在Bootloader, WinCE,应用程序间传递参数的方法








签名