<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇Win CE 專區WinCE應用開發 → 在Bootloader, WinCE,應用程序間傳遞參數的方法


      共有10165人關注過本帖樹形打印

    主題:在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。這樣做可以將經常讀寫的參數和不經常讀寫的參數分開,以免經常讀寫的塊損壞,而破壞其他的功能


    支持(5中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

    返回版面帖子列表

    在Bootloader, WinCE,應用程序間傳遞參數的方法








    簽名