共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 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |