⽹页转换⼯具FCARM和makefsfile的使⽤简介 ⾸先在这⾥要提⼀下Keil的⽹页转换⼯具的使⽤,花费了我好⼏个⼩时。TI也有⼀
个类似的程序,是Makefsfile,并且源码公开的。
这个,⼀直认为只要这个custom arguments⾥边设置好了的路
螺柱焊径就可以在勾选 include in target build后会⾃动执⾏这个程序,转换⽹页⽂件,这样岂不是很⽅便,要不把这些⽹页⽂件加到右边⼲什么(后来明⽩加到右边只是起到浏览和修改的作⽤),
但实质上,Keil在build之前并不执⾏程序,⽽是在translating,这样即使你所有的配置都正确,
它并不是在执⾏程序,只是translating。所以不能勾选include in target build,这样做是不⾏
的。不过也有可能是哪个地⽅我没设置到,有经验的指点⼀下啊。
这样做问题并没有解决掉,我们要的是⽅便地在Keil build的时候同时对⽹页⽂件⾃动
地经⾏转换,⽽不是每次都进⼊到DOS⾥边,当然在命令⾏下可以毫⽆疑问的正常运⾏,但并 不⽅便。
这样就有另外⼀种解决⽅法,那就是在build前设置运⾏user 程序:
这样就把问题解决了。
web.inp是个什么⽂件呢?有了它结合Keil的run user program很⽅便,它就是把 这个程序在命令⾏中执⾏的时候,后⾯的参数就保存在这个⽂件中,和在FCARM
后输⼊命令没什么区别。注意要使⽤两个@@,两个@作⽤相当于命令⾏中的⼀个@,但是这
⾥两个不可少,后⾯的地址给出⽹页源⽂件相对于⼯程的所在⽬录的地址!
所以最后的⽹页数据应该是26584+18*8=26728/1024=26.1kb 这是不添加⽹页⽂件时的⼤⼩:
这是添加⽹页RS_web.c后的⼤⼩:采⽤了三级优化:
可以看到⽹页⽂件的数据被完全编译进了RO-data段:⾜⾜多了26316字节约25.7k。 发现经过编译之后的⼤⼩要变原来的c格式的数据⽂件要⼩⼀点,⼩了26728-
安全门卡26316=412个字节。由此可见数据⽂件似乎并没有⾜量的全部编译。
我们总共转换了17个⽂件:废气焚烧
17个⽂件⼤约39kb,按压缩率89%计算,最后的⼤⼩应该是34kb左右,和上⾯的26kb 还是有⼀段举例。这个34kb是不准确的,经过准确计算这17个⽂件的⼤⼩实际为29704个字节,合29K左右再按压缩率89%计算,约为26436个字节,合25.8K,和上⾯已经很⼩的差距了。 也就是说,把所有⽹页⽂件的字节数加起来,乘以压缩率,就基本上是最后写进flash ⾥边的⼤⼩了。
注意使⽤FCARM转换后⽣成的⽹页数据,⼀般是结合Keil的RL这种的TCPnet来使⽤,和TI的makefsfile⼯具产⽣的数据有很⼤的不同,不能简单的通⽤。
卫星电视接收卡初步看了看,有以下⼏点不同:
1.FCARM产⽣的⼀个C⽂件,makefsfile产⽣的是⼀个.h的头⽂件
2.FCARM把所有⽂件⽣成的数据都放在了⼀个数组⾥边,⽽makefsfile对每⼀个⽂件转换成⼀个数组。
相⽐Keil⾃带的这个转换⼯具,我觉得makefsfile更好⽤,更灵活。
⽐如你开发了好⼏个⽹页,在当前⼯程的⽂件夹myweb下有
index.htm,404.htm,styles.css,page1.htm,page2.htm,..然后这些⽹页中引⽤的图⽚都放在了myweb/images下的这个⽂件夹,⽽只需要在命令⾏下(当然如果你要经常修改⽹页,你也可以按照上⾯的⽅法,把它放到Run user Program before build栏⾥边,这样每次修改了⽹页之后,只需要重新编译⼀下即可。)敲⼊下⾯的命令就可以转换了:最好是把makefsfile复制到myweb 所在的同⼀个路径上,都在当前⼯程下。
makefsfile -i myweb -o webdata.h -h -r
-h:⽣成的⽹页数据不包含http头部。
-r:修改⽹页后重新⽣成相同⽂件名的⽹页数据时不⽤询问,直接覆盖原来的数据⽂件。
正弦波发生电路
最后我们只需要把这个头⽂件include到lmi_fs.c⽂件中,编译之后也是被放到了RO-data段中。
vvint我⾃⼰创建的⼏个简单的例程,我明天会放到⽹上,供⽹友参考。