华邦CM0之C++裸奔艳照
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_603087B8GV52.gif(原文件名:华邦CM0之C++裸奔艳照.gif) http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_603091WX9ATN.gif
(原文件名:华邦CM0之C++裸奔框架头文件桥联艳照.gif) http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_603088ZN4UYH.gif
(原文件名:华邦CM0之C++裸奔I2C读写函数艳照.gif) http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_603089R6HU0G.gif
(原文件名:华邦CM0之C++裸奔I2C主机回调函数艳照.gif) http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_603090JPSYX0.gif
(原文件名:华邦CM0之C++裸奔I2C节拍中断艳照.gif) http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_603092BW2672.gif
(原文件名:华邦CM0之C++裸奔框架类运行次序安排艳照.gif) 沙发! 板凳!围观。。。 http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_603093H63UEO.gif
(原文件名:华邦CM0之C++裸奔框架I2C类成员艳照.gif) 回复【6楼】dmxfeng
沙发!
-----------------------------------------------------------------------
哈哈~~~6楼是沙发???
回复【7楼】NiosII 软核
板凳!围观。。。
-----------------------------------------------------------------------
哈哈~~~7楼是板凳???
晕呀,俺这8楼是什么??? 怎么实现uVision4每个打开的文件tab的颜色不同啊? 板凳,听课了 回复【10楼】lryylryy 性博士
怎么实现uvision4每个打开的文件tab的颜色不同啊?
-----------------------------------------------------------------------
新版本. 菜农回来了?./emotion/em035.gif./emotion/em035.gif./emotion/em035.gif./emotion/em035.gif./emotion/em035.gif 围观 围观~ 同问 hotpower回来了 能用这类去初始化两个IIC对象吗?并且操作的是两个设备寄存器基地址完全不一样的IIC。。如果不能。。那跟C实现没两样。。
我用C都能实现C++的这一特性。。。针对两个IIC对象。。 咱也在奔C++, 主要C++的虚函数/多态机制太过诱人,代码开销也不大。
测试发现,C++有几个地方是地雷,在小内存情况下最好不用:
1. new/delete
使用new/delete代码量立刻暴增,内存也不好控制。
实在要用,可以用replacement new, 在自定义的空间上new一个对象:
char global_buffer[ sizeof(OBJECT) ];
void test()
{
OBJECT *p = new(&global_buffer) OBJECT;
}
2. try/throw/catch
这东西也不便宜。
用C的setjmp, longjmp代替比较好。但是会损失对象自动析构的功能。 没有免费的午餐,做什么都是需要代价的。另外,没有什么东西可以适合全部的需求。有的情况下,或许只有使用汇编才能解决问题。
最好是什么武器都会,具体使用哪种武器解决问题,要看实际情况。 亲,代码放出来吧,想研究下嵌入式的C++哈,,,,,, 听说C++写的代码结构更好,更易读懂,更易维护,比C大不了多少,我想在51系列用C++,不知道用什么软件?好像IAR不支持51 C++编程。
修改:iar 官方好象说(E文不好),ew8051支持51系列用C++编写。在“EW8051_UserGuide.PDF”的318页有这样的文字:
Embedded C++
In Embedded C++ mode, the compiler treats the source code as Embedded C++. This
means that features specific to Embedded C++, such as classes and overloading, can be
used.
Embedded C++ requires that a DLIB library (C/C++ library) is used.
我理解是在下图的选项要这样选:
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_607060NL6FLQ.JPG
(原文件名:IAR选项.JPG)
但这样选了后编译通不过。提示缺文件:Error: Unable to open file 'C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\8051\LIB\DLIB\dl-pli-nsic-1e16x01.r51'
上图中选回CLIB,编译可以通过。 c++学的不好,不能运用自如,以前感觉C更适合嵌入式。 看看HOTPOWER大叔来放毒 回复【楼主位】hotpower 菜农
-----------------------------------------------------------------------
HOTPOWER大侠和各路高手!我在用keil时,选择C++编泽,发现keil不认class关键字,提示意思大概是:“没有定义关键字class”.
用keil自带的c++工程编泽没问题!在它的基础上更改后,程序一大,还是提示“没有定义关键字class”,而相同代码在IAR编译没任何问题!不知为何?希望HOTPOWER大侠和各路高手帮忙解答!
在此先谢谢! inkfish321 发表于 2010-12-8 09:56 static/image/common/back.gif
能用这类去初始化两个IIC对象吗?并且操作的是两个设备寄存器基地址完全不一样的IIC。。如果不能。。那跟C ...
C 的功能都可以用 汇编 实现呢,你要不要以后都用汇编 : ) 强势围观~~ 围观,还是用C算了~~
页:
[1]