我用PIC的C和HT的C编译器都有几年了,以前听别人说HT的C编译器很烂,但是我用了这么久,也没见有什么问题。但是PIC的,用起来问题多多,总结起来有几点: 1、RAM不会自动分配页面,必须指定在哪个BANK,不然全部定义在BANK0。 2、没有指定地址的某些变量会有冲突现象,表现为运行时会产生不明原因的错误,但把某些变量指定地址或者弃掉重新定义后问题消失。 3、程序复杂一点时,会有BANK分页的错误,表现为某变量本来定义在BANK3,但运行时当操作此变量时,并没有转到BANK3操作。 4、一个子程序的程序量不能太大,大约是不能超过2000行(具体不是很清楚,2000行包括程序空行,注解,括弧等。)否则无法编译。
上面第2和第3点常常会搞得人几乎发疯,因为你怎么找都找不到程序上的错误,但是运行起来却象见鬼一样出错。以上个人看法,欢迎拍砖。 |