|
|
|
 |
发表于:2008-8-28 14:05:00
|
 |
楼主
|
|
|
|
|
|
|
 |
级别:
|
|
积分:72分 |
|
注册:2008年07月03日
|
|
|
很简单,在 AVR Studio 安装目录的 ./Compilers 子目录里找到 AvrPluginavrgccplugin.dll,然后用随便哪种 hex 编辑器找到字符串 "CC ="(注意空格),把后面跟的 avr-gcc 改成 avr-g++ 即可。
此后所有程序均可使用完整的 C++ 语法(当然,new 和 delete 依然不能用的),例如 inline 函数(减小栈空间消耗)、缺省参数(在类似eeprom写入函数等地方可用来避免程序跑飞导致eeprom被篡改)、局部变量随用随分配(减小栈空间消耗)、类等。
注意:如果是 WinAVR 200601xx 版,转用 C++ 后,在中断服务程序声明那里会遇到警告,这是 avr/interrupt.h 头文件的一点错误,如下修改:
原内容: #ifdef __cplusplus #define ISR(vector) \ extern "C" void vector(void); \ void vector (void) __attribute__ ((signal)); \ void vector (void)
修改内容: #ifdef __cplusplus /* Bug Fix 20060310 #define ISR(vector) \ extern "C" void vector(void); \ void vector (void) __attribute__ ((signal)); \ void vector (void) */ /*Bug Fix 20060310*/ #define ISR(vector) \ extern "C" void vector (void) __attribute__ ((signal)); \ void vector (void) /*Bug Fix 20060310*/
|
|
|
|
|
|
 |
发表于:2008-8-30 10:17:00
|
 |
1 楼
|
|
|
|
|
|
|
 |
级别:
|
|
积分:46分 |
|
注册:2008年08月19日
|
|
|
顶个!
|
|
|
|
|
|
 |
发表于:2008-9-3 10:09:00
|
 |
2 楼
|
|
|
|
|
|
|
 |
级别:
|
|
积分:386分 |
|
注册:2008年06月20日
|
|
|
高深的东东,顶起!
|
|
|
|
|
|
 |
发表于:2008-9-4 14:17:00
|
 |
3 楼
|
|
|
|
|
|
|
 |
级别:
|
|
积分:28分 |
|
注册:2008年08月28日
|
|
|
好东西!
|
|
|
|
|
|
 |
发表于:2008-9-24 15:35:00
|
 |
4 楼
|
|
|
|
|
|
|
|
|