部件号:TM4C123GH6PGE
工具/软件:TI C/C++编译器
手续:
--------
部件号:TM4C123GH6PGR
使用Tiva123G启动板
编译器版本:TI v 16.9 .4.LTS
问题:
--------
我已将TIVA驱动程序lib组件ca.h/h移植到C++环境中,并且99.99 % 运行良好。 我的意思是,中断处理程序被调用,消息被处理,我可以像multi_rx/multi_tx示例的原始TIVA示例一样发送/接收。 我偶然遇到的是为什么向CAN类声明中断处理程序为“朋友”不允许访问私有变量。将变量“hasNewMsg”声明为公共成员是可以正常工作的,但不允许私有或受保护的访问。
我确实搜索了16.9 v.4.LTS的编译器版本以及以下文档:
http://processors.wiki.ti.com/index.php/C%2B%2B_Support_in_TI_Compilers
http://www.caravan.net/ec2plus/
但对朋友的实施没有任何了解。 我在下面简要介绍了我要做的事情。 我对代码中的简洁的分类。 我不想用太多无关信息污染帖子。
我想说,我没有ISO标准(现在正在寻求下载),我在Chris Kormanyous的“实时C++”中认为所有成员都应该是私有的,受保护的和公开的。 我意识到Chris正在使用GCC,他可能不正确,这就是为什么我要在TI文档中寻找正确的参考。
另外,这可能有点偏离主题,但如何将CCS V7编译器升级到最新的17.6 (vv STS.0.STS)编译器。
问题背景:
-----------------------
使用一个类,可以:
类可以
{
私人:
...
UINT32_t有新消息;
朋友
void interrupt CAN0InterruptHandler();
...
公开:
...
};
中断处理程序:
外部"C"
{
CAN CAN:
无效
CAN0IntHandler (void)
{
...
CAN.HASNewMsg = 1;
...
}
}
感谢您耐心阅读长帖子,以及您可以提供的任何帮助。
戴夫