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

    Rss & SiteMap

    曙海教育集團論壇 http://www.bjzhda.cn

    曙海教育集團論壇
    共1 條記錄, 每頁顯示 10 條, 頁簽: [1]
    [瀏覽完整版]

    標題:在Bootloader, WinCE,應(yīng)用程序間傳遞參數(shù)的方法

    1樓
    wangxinxin 發(fā)表于:2010-11-26 9:03:36

    基本思想就是在Nand Flash等固態(tài)存儲器中保存這個變量
    實現(xiàn)方法有很多種,如果你使用的是EBoot,EBoot的例子中會有一個BOOT_CFG的結(jié)構(gòu)體,默認保存EBoot參數(shù)的,這個參數(shù)保存在固態(tài)存儲器上,可以參考WINCE500\PLATFORM\SMDK2410\SRC\BOOTLOADER\EBOOT\main.c
    這樣解決了保存變量的問題,但是如何在Bootloader與操作系統(tǒng)間傳遞參數(shù)呢,
    同樣對于2410的例子,OEMPlatformInit里面會有一個BSP_ARGS的結(jié)構(gòu)體,用來在EBoot與WinCE之間傳遞參數(shù),這塊區(qū)域是SDRAM的區(qū)域,一般是保留出來作為參數(shù)傳遞的,WinCE不會覆蓋這塊區(qū)域,這個結(jié)構(gòu)體在EBoot中被填充,所以,可以將參數(shù)放在BOOT_CFG中,然后EBoot初始化時從Nand中讀出來,放到BSP_ARGS,以達到傳遞給WinCE的目的。
    但是這樣只是解決了讀取的問題,這個參數(shù)在CE中的修改還是不會被保存。
    這種默認的方法最一般的用途就是來控制KITL,這種單向參數(shù)傳遞的
    如果需要雙向傳遞或保存,最簡單的方法就是在WinCE驅(qū)動中添加一個IOCTL,比如FMD的IOCTL,用來讀寫這塊參數(shù)區(qū)域
    這樣子,應(yīng)用程序也就可以訪問這塊參數(shù)了。

    如果不使用EBoot的默認方式,就直接規(guī)定一個或幾個Nand區(qū)域,讀寫方案同上,以達到多個應(yīng)用的參數(shù)分開保存的目的,比如BT MAC在Block2, WIFI MAC在Block3, 其他參數(shù)在Block4。這樣做可以將經(jīng)常讀寫的參數(shù)和不經(jīng)常讀寫的參數(shù)分開,以免經(jīng)常讀寫的塊損壞,而破壞其他的功能

    共1 條記錄, 每頁顯示 10 條, 頁簽: [1]

    Copyright © 2000 - 2009 曙海教育集團
    Powered By 曙海教育集團 Version 2.2
    Processed in .01563 s, 2 queries.