21#

[嵌入式] 【分享帖】用C++11开发STM32程序

[复制链接]
顾问HJHOJBK
2018-1-20 22:19:44 来自手机 只看该作者
666666666666
22#

[嵌入式] 【分享帖】用C++11开发STM32程序

[复制链接]
正式队员fatmouse
2018-1-24 15:36:42 只看该作者
回复

使用道具 举报

23#

[嵌入式] 【分享帖】用C++11开发STM32程序

[复制链接]
梯队队员兴趣使然
2018-1-25 20:54:57 只看该作者
666666666666666666666666666
24#

[嵌入式] 【分享帖】用C++11开发STM32程序

[复制链接]
顾问wmd
2018-3-17 10:48:08 只看该作者
最近也在探索STM32用C++开发的方法,看了楼主的方法 感觉受益良多呀
这类教程和探索比较少 感觉大家都有自己的方法
在这里我可以分享一下我对应的各类处理方法和一些坑过我的地方:
像那个__weak其实可以不用全局替换 考虑到尽量不去碰库里面的文件,
因为cube重新生成的话这些没有在User code范围内的修改都会被覆盖,
所以对于这个情况我的方法是在main.h里面加一个宏定义:#define __weak __attribute__((weak))
这样即可以搞定所有的__weak,因为这些库都include了main.h
另外,如果stm32开发要用到中断的话一定要在stm32f4xx_it.c的开头与结尾加上extern "C" 和大括号扩住(这个文件的开头和结尾都有user code段) 因为中断的跳转向量表是写在汇编的startup里面的 然后C++因为要考虑重载函数 所以函数的链接符号会和C的不一样 为了能正确的进入中断必须保持这些中断函数按照C的方式引出

还有其他一些比较稀少的外部情况问题都可以按照main.h加修补宏定义的方式来解决

我这边偶尔也会有探索C++编译时解决不了的问题,如果楼主还在弄的话不如加个好友交流一下?
25#

[嵌入式] 【分享帖】用C++11开发STM32程序

[复制链接]
顾问wmd
2018-3-17 10:59:35 只看该作者
再补充一些 我为了保持和Cube的高度相关,当时是直接把main.c设置为C++源文件了 这样就算cube重新生成的时候也不需要修改很多其他的东西.不过偶尔加第三方库的时候main.c直接当成c++文件用还是有一点问题的 这个感谢楼主的经验 我到时候再移植一波 然后刚刚说的stm32f4xx_it.c要加extern "C"的时候也要先把这个文件在keil里面直接设置成C++文件.这样中断就可以使用C++特性了
26#

[嵌入式] 【分享帖】用C++11开发STM32程序

[复制链接]
梯队队员舟田鱼
2018-8-10 16:37:44 只看该作者
大神做的是工程以C++为主,需要调用C文件中的函数。但是我现在做的是工程以C为主,要调用C++文件中的内容,感觉也是个大坑,还要自己慢慢摸索。
27#

[嵌入式] 【分享帖】用C++11开发STM32程序

[复制链接]
英雄1094167453
2018-10-5 13:46:48 只看该作者
66666666666
28#

[嵌入式] 【分享帖】用C++11开发STM32程序

[复制链接]
顾问薅电机狂魔
2019-7-26 23:23:22 只看该作者
Keil官方有一个迁移到新编译器的教程
http://www.keil.com/appnotes/files/apnt_298.pdf

这个BBS讲得也很好
http://firebbs.cn/thread-22706-1-1.html

其实生成的代码大不一定代表运行速度慢。事实上,用新编译器编译出来的代码,运行速度更快!
而且新编译器对静态检查更完善,可以找到很多bug
29#

[嵌入式] 【分享帖】用C++11开发STM32程序

[复制链接]
顾问薅电机狂魔
2019-7-26 23:26:15 只看该作者
对了,语言最好选择GNU版本的,比如gnu99,不然会有很多很多预编译指令报错
30#

[嵌入式] 【分享帖】用C++11开发STM32程序

[复制链接]
梯队队员地平线的光
2019-9-23 10:09:19 只看该作者
学习了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

触屏版 | 电脑版

Copyright © 2024 RoboMasters 版权所有 备案号 粤ICP备2022092332号

快速回复 返回顶部 返回列表