【摘要】:1.提示CVAVR中,为了减小代码体积和加快程序运行速度,最好遵循下述原则:尽可能使用无符号变量;使用最小的数据类型,例如位型和无符号字符型;通过“Project”→“Configure”→“C Compiler”→“Compilation”→“Bit Variables Size”命令分配的位变量空间要尽可能的小,以便空出寄存器用以分配给其他全局变量;尽可能使用TINY模式;使用flash关键字把常量放在Flash中;程序调试结束后要关闭“Stack End Markers”选项,把程序再编译一次;与时间有关的部分用汇编语言来写。
1.提示(Hints)
CVAVR中,为了减小代码体积和加快程序运行速度,最好遵循下述原则:
(1)尽可能使用无符号变量;
(2)使用最小的数据类型,例如位型和无符号字符型;
(3)通过“Project”→“Configure”→“C Compiler”→“Compilation”→“Bit Variables Size”命令分配的位变量空间要尽可能的小,以便空出寄存器用以分配给其他全局变量;
(4)尽可能使用TINY模式;
(5)使用flash关键字把常量放在Flash中;
(6)程序调试结束后要关闭“Stack End Markers”选项,把程序再编译一次;
(7)与时间有关的部分用汇编语言来写。
2.限制(Limitations)
3.12版本的CodeVision AVR C编译器有如下限制:
(1)不能用指向指针的指针;
(2)结构体或联合只能是一维的;
(3)结构体或联合不能作为函数的参数,只能使用指针来完成这个功能;
(4)结构体中的成员不能使用位型。位的存储要使用位变量。
除了标准C语言库,CVAVR还提供了精心设计的库,用于如下操作:
(1)Alphanumeric and Graphic LCD modules;
(2)Philips I2C bus;
(3)DS1302 and DS1307 Real Time Clocks;
(4)SPI;
(5)USB;
(6)Power management;
(7)Delays;
(8)Gray code conversion;(www.chuimin.cn)
(9)Maxim/Dallas Semiconductor 1 Wire protocol;
(10)National Semiconductor LM75 Temperature Sensor;
(11)Maxim/Dallas Semiconductor DS1820,DS18S20 and DS18B20 Temperature Sensors;
(12)Maxim/Dallas Semiconductor DS1621 Thermometer/Thermostat;
(13)Maxim/Dallas Semiconductor DS2430 and DS2433 EEPROMs。
程序自动生成器可以自动生成实现下述功能的代码:
(1)External memory access setup;
(2)Chip reset source identification;
(3)Input/Output Port initialization;
(4)External Interrupts initialization;
(5)Timers/Counters initialization;
(6)Watchdog Timer initialization;
(7)UART(USART)initialization and interrupt driven buffered serial communication;
(8)Analog Comparator initialization;
(9)ADC and DAC initialization;
(10)SPI Interface initialization;
(11)Two Wire Interface initialization;
(12)USB initialization;
(13)CAN Interface initialization;
(14)I2C Bus,LM75 Temperature Sensor,DS1621 Thermometer/Thermostat and PCF8563,PCF8583,DS1302,DS1307 Real Time Clocks initialization;
(15)1 Wire Bus and DS1820/DS18S20 Temperature Sensors initialization;
(16)Alphanumeric and graphic display module initialization。
相关推荐