none
非常急!請問有沒有快速將檔案嵌入到image中的方式? RRS feed

  • 問題

  • 大家好!小弟為了測試程式在NOR中執行的效率,想要把大量的檔案combine到image中。
    目前已知的方法是在platform.bib中使用下列的範例語法:
    FILES
    ETCHA.exe             $(_FLATRELEASEDIR)\ETCHA.exe            NK      U

    但是小弟想將它直接放到"Program Files"資料夾底下,且要新建一個新目錄去放置它。
    有沒有什麼好方法能快速達成呢?
    2009年2月19日 上午 03:02

解答

  • 你試試用File System File .dat file
    並參考這篇 http://msdn.microsoft.com/en-us/library/aa908686.aspx

    首先 nk.bin 裡的東西, 永遠都只會 mount 到 \windows folder 下面, 也就是說 假如你的 OS Image 是在 NOR Flash 中 XIP, 那也只有 MODULES section 中的 file 會真的在 NOT 中 execution
    只要 copy 到其它 location, 或是 在 FILES section 中, 都會 copy to RAM 中 run (不過一般因為有 paging 所以也都是 只 copy 一部份, 需要時才會再 copy 到 RAM)

    所以假如 copy to "program files" or 下面的 folder, 基本上這些 files 就不會在 NOR Flash 中 (除非你有用 NOR Flash 切割成一個 Storage, 然後 把 root FS mount 到它下面, 不過就算這樣, 這時 NOR flash 對 這些 file 而言也只是 Storage 不會真的在 Flash 中 XIP)


    • 已標示為解答 Vannes 2009年2月19日 上午 04:08
    2009年2月19日 上午 03:40
  • 比如說 要加的 files 在 folder test_files\
    那就可以寫一個 batch file 包含以下 commands

    if exist test_files.bib del test_files.bib
    for %I in (test_files\*.*) do echo %~nxI $(_FLATRELEASEDIR)\%~nxI NK U >> test_files.bib

    然後在 project.bib or platform.bib 裡頭在 #include "test_files.bib"

    同樣的方法 也可以套用在 .DAT

    要做到更自動的做法 就是把這些 batch command 寫在 premakeimg.bat or 其它的 MAKEIMG pre post batch files
    這樣整個 makeimg process 就會自動做到好

    • 已標示為解答 Vannes 2009年2月19日 上午 11:49
    2009年2月19日 上午 07:03

所有回覆

  • 你試試用File System File .dat file
    並參考這篇 http://msdn.microsoft.com/en-us/library/aa908686.aspx

    首先 nk.bin 裡的東西, 永遠都只會 mount 到 \windows folder 下面, 也就是說 假如你的 OS Image 是在 NOR Flash 中 XIP, 那也只有 MODULES section 中的 file 會真的在 NOT 中 execution
    只要 copy 到其它 location, 或是 在 FILES section 中, 都會 copy to RAM 中 run (不過一般因為有 paging 所以也都是 只 copy 一部份, 需要時才會再 copy 到 RAM)

    所以假如 copy to "program files" or 下面的 folder, 基本上這些 files 就不會在 NOR Flash 中 (除非你有用 NOR Flash 切割成一個 Storage, 然後 把 root FS mount 到它下面, 不過就算這樣, 這時 NOR flash 對 這些 file 而言也只是 Storage 不會真的在 Flash 中 XIP)


    • 已標示為解答 Vannes 2009年2月19日 上午 04:08
    2009年2月19日 上午 03:40
  • 感謝解答,小弟目前也僅只知道這方法,不過小弟要處理900多個檔案,
    這樣除了platform.bib要寫900多行,platform.dat也要寫這麼多行。
    不知道有沒有更好方式?
    2009年2月19日 上午 04:11
  • .DAT and .BIB 都只是 plain text file , 擅用 FOR batch command 應該就可以達到你要的目地.
    2009年2月19日 上午 04:50
  • hi ellen:
    可以更具體的描述嗎?
    2009年2月19日 上午 05:51
  • 比如說 要加的 files 在 folder test_files\
    那就可以寫一個 batch file 包含以下 commands

    if exist test_files.bib del test_files.bib
    for %I in (test_files\*.*) do echo %~nxI $(_FLATRELEASEDIR)\%~nxI NK U >> test_files.bib

    然後在 project.bib or platform.bib 裡頭在 #include "test_files.bib"

    同樣的方法 也可以套用在 .DAT

    要做到更自動的做法 就是把這些 batch command 寫在 premakeimg.bat or 其它的 MAKEIMG pre post batch files
    這樣整個 makeimg process 就會自動做到好

    • 已標示為解答 Vannes 2009年2月19日 上午 11:49
    2009年2月19日 上午 07:03
  • Ellen大,真是太感謝了!
    不然我一個一個打,可能要打到大半夜了!
    2009年2月19日 上午 11:49