共2条
1/1 1 跳转至页
问
去年年末,我突发奇想地用C++来改写一段简单的ARM程序(就是使用了串行中断和基本的一点功能),用了类来封装。
结果发现一打开中断程序就跑飞了,现在想想,有些时候用C++是比较方便的说。
可能我有那里设置是不是没搞好阿
大家来说说自己的经验吧。
多谢! 答 1: check若class设计了中断处理接口必须保证中断发生时对象已经实例化,否则突如其来的中断就会操作一个尚未诞生的对象程序就容易over,其他的就没有什么特别了。
答 2: 已经在一开始构建了对象而且,我的中断并没有使用该对象
其实还一个问题,我发现C++和汇编无法链接 答 3: extern “C”连接问题多会出现在asm、c、cpp混合使用的情况下,这是cpp编译器name conventions特性引起的。
简单一点可以这样说:
1,要使得asm、c函数变量在cpp中可见要在cpp编译中对相关的函数或者变量使用extern “C”声明;
2,要使cpp中的函数或者变量在asm、c中可见需要在cpp中使用extern “C”进行相关的定义。 答 4: 说到这我想起来了在动态连接库的声明也是有类似
当时我用了比较笨的办法解决了这个问题
最主要的问题还是那个中断的,比较晕人啊 答 5: 找找其他方面的原因或者把代码贴出来看看。找找其他方面的原因或者把代码贴出来看看。 答 6: 唉代码已经在过年时发火给删掉了
不过不复杂,那天我再试试看看 答 7: exdata说得确实正确这个问题也让我困扰了2天...幸得exdata出嘴相救...十分感激...
结果发现一打开中断程序就跑飞了,现在想想,有些时候用C++是比较方便的说。
可能我有那里设置是不是没搞好阿
大家来说说自己的经验吧。
多谢! 答 1: check若class设计了中断处理接口必须保证中断发生时对象已经实例化,否则突如其来的中断就会操作一个尚未诞生的对象程序就容易over,其他的就没有什么特别了。
答 2: 已经在一开始构建了对象而且,我的中断并没有使用该对象
其实还一个问题,我发现C++和汇编无法链接 答 3: extern “C”连接问题多会出现在asm、c、cpp混合使用的情况下,这是cpp编译器name conventions特性引起的。
简单一点可以这样说:
1,要使得asm、c函数变量在cpp中可见要在cpp编译中对相关的函数或者变量使用extern “C”声明;
2,要使cpp中的函数或者变量在asm、c中可见需要在cpp中使用extern “C”进行相关的定义。 答 4: 说到这我想起来了在动态连接库的声明也是有类似
当时我用了比较笨的办法解决了这个问题
最主要的问题还是那个中断的,比较晕人啊 答 5: 找找其他方面的原因或者把代码贴出来看看。找找其他方面的原因或者把代码贴出来看看。 答 6: 唉代码已经在过年时发火给删掉了
不过不复杂,那天我再试试看看 答 7: exdata说得确实正确这个问题也让我困扰了2天...幸得exdata出嘴相救...十分感激...
共2条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 28BYJ-48机械臂实现人脸跟随被打赏¥24元 | |
| 基于RK3506B的片温识读功能的实现被打赏¥25元 | |
| 【瑞萨RA8D1测评】基于FreeRTOS的lvgl移植教程被打赏¥29元 | |
| 电子价签墨水屏开发被打赏¥35元 | |
| 【Ozone】RTT 打印终端使用被打赏¥29元 | |
| BMS保护板绝缘检测功能-不平衡电桥技术绝缘电阻检测设计与实现被打赏¥34元 | |
| 给28BYJ-48三自由度机械臂加一个网页控制台被打赏¥32元 | |
| 用28BYJ-48电机从零搭一台三自由度机械臂被打赏¥33元 | |
| 【英飞凌开发经验】ModusToolbox配置EdgeTalk外设被打赏¥27元 | |
| 基于BQ76952PFBR的BMS保护板热插拔损坏的原因和处理措施被打赏¥32元 | |
我要赚赏金
