keil html转换工具,网页转换工具FCARM和makefsfile的使用简介
網(wǎng)頁轉(zhuǎn)換工具FCARM和makefsfile的使用簡介
[復(fù)制鏈接]
首先在這里要提一下Keil的網(wǎng)頁轉(zhuǎn)換工具FCARM.exe的使用,花費了我好幾個小時。TI也有一個類似的程序,是Makefsfile,并且源碼公開的。
1.gif (31.45 KB, 下載次數(shù): 0)
2010-11-8 16:44 上傳
2.jpg (50.05 KB, 下載次數(shù): 0)
2010-11-8 16:44 上傳
這個FCARM.exe,一直認為只要這個custom arguments里邊設(shè)置好了FCarm.exe的路徑就可以在勾選 include in target build后會自動執(zhí)行這個程序,轉(zhuǎn)換網(wǎng)頁文件,這樣豈不是很方便,要不把這些網(wǎng)頁文件加到右邊干什么(后來明白加到右邊只是起到瀏覽和修改的作用),但實質(zhì)上,Keil在build之前并不執(zhí)行程序,而是在translating,這樣即使你所有的配置都正確,它并不是在執(zhí)行程序,只是translating。所以不能勾選include in target build,這樣做是不行的。不過也有可能是哪個地方我沒設(shè)置到,有經(jīng)驗的指點一下啊。
3.jpg (18.18 KB, 下載次數(shù): 0)
2010-11-8 16:44 上傳
這樣做問題并沒有解決掉,我們要的是方便地在Keil build的時候同時對網(wǎng)頁文件自動地經(jīng)行轉(zhuǎn)換,而不是每次都進入到DOS里邊,當然在命令行下可以毫無疑問的正常運行,但并不方便。
這樣就有另外一種解決方法,那就是在build前設(shè)置運行user 程序:
4.jpg (52.41 KB, 下載次數(shù): 1)
2010-11-8 16:44 上傳
這樣就把問題解決了。
web.inp是個什么文件呢?有了它結(jié)合Keil的run user program很方便,它就是把FCARM.exe 這個程序在命令行中執(zhí)行的時候,后面的參數(shù)就保存在這個文件中,和在FCARM后輸入命令沒什么區(qū)別。注意要使用兩個@@,兩個@作用相當于命令行中的一個@,但是這里兩個不可少,后面的地址給出網(wǎng)頁源文件相對于工程的所在目錄的地址!
5.jpg (39.6 KB, 下載次數(shù): 0)
2010-11-8 16:44 上傳
6.jpg (45.06 KB, 下載次數(shù): 0)
2010-11-8 16:44 上傳
所以最后的網(wǎng)頁數(shù)據(jù)應(yīng)該是26584+18*8=26728/1024=26.1kb
這是不添加網(wǎng)頁文件時的大小:
7.jpg (10.4 KB, 下載次數(shù): 1)
2010-11-8 16:44 上傳
這是添加網(wǎng)頁RS_web.c后的大小:采用了三級優(yōu)化:
8.jpg (13.29 KB, 下載次數(shù): 1)
2010-11-8 16:44 上傳
可以看到網(wǎng)頁文件的數(shù)據(jù)被完全編譯進了RO-data段:足足多了26316字節(jié)約25.7k。
發(fā)現(xiàn)經(jīng)過編譯之后的大小要變原來的c格式的數(shù)據(jù)文件要小一點,小了26728-26316=412個字節(jié)。由此可見數(shù)據(jù)文件似乎并沒有足量的全部編譯。
我們總共轉(zhuǎn)換了17個文件:
9.jpg (15.88 KB, 下載次數(shù): 1)
2010-11-8 16:44 上傳
17個文件大約39kb,按壓縮率89%計算,最后的大小應(yīng)該是34kb左右,和上面的26kb還是有一段舉例。這個34kb是不準確的,經(jīng)過準確計算這17個文件的大小實際為29704個字節(jié),合29K左右再按壓縮率89%計算,約為26436個字節(jié),合25.8K,和上面已經(jīng)很小的差距了。
也就是說,把所有網(wǎng)頁文件的字節(jié)數(shù)加起來,乘以壓縮率,就基本上是最后寫進flash里邊的大小了。
注意使用FCARM轉(zhuǎn)換后生成的網(wǎng)頁數(shù)據(jù),一般是結(jié)合Keil的RL這種的TCPnet來使用,和TI的makefsfile工具產(chǎn)生的數(shù)據(jù)有很大的不同,不能簡單的通用。
初步看了看,有以下幾點不同:
1.FCARM產(chǎn)生的一個C文件,makefsfile產(chǎn)生的是一個.h的頭文件
2.FCARM把所有文件生成的數(shù)據(jù)都放在了一個數(shù)組里邊,而makefsfile對每一個文件轉(zhuǎn)換成一個數(shù)組。
相比Keil自帶的這個轉(zhuǎn)換工具,我覺得makefsfile更好用,更靈活。
比如你開發(fā)了好幾個網(wǎng)頁,在當前工程的文件夾myweb下有index.htm,404.htm,styles.css,page1.htm,page2.htm,..然后這些網(wǎng)頁中引用的圖片都放在了myweb/images下的這個文件夾,而只需要在命令行下(當然如果你要經(jīng)常修改網(wǎng)頁,你也可以按照上面的方法,把它放到Run user Program before build欄里邊,這樣每次修改了網(wǎng)頁之后,只需要重新編譯一下即可。)敲入下面的命令就可以轉(zhuǎn)換了:最好是把makefsfile復(fù)制到myweb所在的同一個路徑上,都在當前工程下。
makefsfile -i myweb -o webdata.h -h -r
-h:生成的網(wǎng)頁數(shù)據(jù)不包含http頭部。
-r:修改網(wǎng)頁后重新生成相同文件名的網(wǎng)頁數(shù)據(jù)時不用詢問,直接覆蓋原來的數(shù)據(jù)文件。
最后我們只需要把這個頭文件include到lmi_fs.c文件中,編譯之后也是被放到了RO-data段中。
我自己創(chuàng)建的幾個簡單的例程,我明天會放到網(wǎng)上,供網(wǎng)友參考。
[本帖最后由 academic 于 2010-11-8 16:44 編輯]
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的keil html转换工具,网页转换工具FCARM和makefsfile的使用简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 查询商品列表 显示tag_让
- 下一篇: JAVA WEB篇4——Filter、L