本贴旨在给同为菜鸟级(也就是大叔说的尿童级)道友提供些许参考,如能引出高人们的斧正,将不胜惶恐与感激。 1、关于编译器 在菜鸟的心目中的排序是ICC -> GCC。扔砖头的请等我说完再砸:)。菜鸟03年在双龙的推荐下用M8和8515做过2个小产品,当时用30天的ICCdemo版,非常容易上手。后来荒废了avr直到奥运年又用三周时间做了2个小产品,一个是tiny24一个是M8。本来都是用GCC的,因为俺喜欢免费。但GCC下一优化就出问题,不得已重新换ICC6.30。菜鸟承认飞船大虾说的“GCC的-s级优化能力确很棒”一点不假,同时也信服Atmeag32L大虾说“不是GCC不行是程序员不行”论断,但问题是几乎同样的代码在ICC下符合结果而GCC下则不行,更郁闷的是找不到原因。当然也怪菜鸟E文烂不愿意看help文档。 本来,用M8做的这个产品原来是51完成的,keil下8级优化,代码5k字节多点,而移植到ICC下的后对少部分重复代码做成通用函数继续优化之,得到7k字节左右的代码,考虑到avr是双字节指令的情况,应该说这个结果是完全可以接受的。用GCC下选择-s级优化,代码是接近7k的样子,比ICC稍微小一点。 所以,菜鸟暂时只能以“事实胜于雄辩”的心态去得出avr菜鸟们应首选ICC次选GCC的结论。菜鸟并不是有意看低GCC,更不敢看低众多用GCC的强人的智慧.况且对于C程序员来说,什么C编译器都是换汤不换药。问题是GCC对菜鸟来说实在有些不好伺候。 菜鸟计划等这两个avr小成品稳定后,再认真捣鼓捣鼓GCC,用GCC搞掂这两个小产品。相信:Hudaidai、芯艺、飞船、大叔等强人们倒塌GCC的事迹将极大的鼓舞菜鸟使用GCC的决心。同时,草鸟也力挺用ICC的尿童道友,ICC的编译效率也是不错的,没必要为ICC编译效率比不过IAR和GCC的优化级而懊恼。鞋子合不合脚,只有自己知道,呵呵。
|