搜索
bottom↓
回复: 26

大家有用C++开发STM32程序的吗?

[复制链接]

出0入0汤圆

发表于 2022-3-7 11:28:57 | 显示全部楼层 |阅读模式
如题~~

需要注意什么东东?

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入362汤圆

发表于 2022-3-7 16:01:00 | 显示全部楼层
估计也就是用用带类的c吧, 上个stl, boost, 该直接把flash写满了

出0入4汤圆

发表于 2022-3-7 16:06:37 | 显示全部楼层
ODRIVE 那些开源的不是在用嘛

出0入115汤圆

发表于 2022-3-7 16:08:02 | 显示全部楼层
stm32 那些内存够你c++操作吗

出0入0汤圆

 楼主| 发表于 2022-3-7 16:46:28 | 显示全部楼层
tomzbj 发表于 2022-3-7 16:01
估计也就是用用带类的c吧, 上个stl, boost, 该直接把flash写满了
(引用自2楼)

确实有此担心。。。。。

出100入312汤圆

发表于 2022-3-7 18:40:02 | 显示全部楼层
真还有用c++

出0入0汤圆

发表于 2022-3-7 18:45:31 | 显示全部楼层
有用的。不说别的,arm官方的mbed不就是C++。

出0入0汤圆

发表于 2022-3-7 18:52:11 | 显示全部楼层
注意点就是不要使用rtti和异常。另外用keil的话最好使用ARM 6,ARM 6官方支持全部c++11/14,包括stl(除了和线程相关的部分)。

出0入4汤圆

发表于 2022-3-7 21:22:39 来自手机 | 显示全部楼层
我之前工作的那个公司不管什么产品全部用c++写的,因为总工喜欢c++

出0入59汤圆

发表于 2022-3-8 00:33:35 | 显示全部楼层
vector、list 一上,立马爆内存

不过用下类封装函数, 还是不错的嘛

出0入42汤圆

发表于 2022-3-8 08:36:52 | 显示全部楼层
开发过,在IAR上面,多态友元啥的都支持。但是还有一些是C++的特性是不支持的,当时看了但是忘了。

出0入42汤圆

发表于 2022-3-8 09:07:53 | 显示全部楼层
X-TRACK 很火的自行车码表是在 M4的 at32f403a上跑的

出10入46汤圆

发表于 2022-3-8 09:10:32 | 显示全部楼层
不要用太复杂的C++ , 基本用类就够了。
太复杂,内存爆掉,速度龟速

出0入0汤圆

 楼主| 发表于 2022-3-8 11:42:14 | 显示全部楼层
flamma 发表于 2022-3-7 18:52
注意点就是不要使用rtti和异常。另外用keil的话最好使用ARM 6,ARM 6官方支持全部c++11/14,包括stl(除了 ...
(引用自8楼)

多谢

出30入42汤圆

发表于 2022-3-8 13:52:11 | 显示全部楼层
用C++完全没问题,但不建议。100个C程序员,就有100种编程风格和思路,更何况C++这种体量更庞大、语法更繁多的编程语言,后期维护会让人生不如死。为了有限的C++优良特性,却不得不面对它无限的复杂性,得不偿失。

出0入0汤圆

发表于 2022-3-9 10:44:33 | 显示全部楼层
PPS 发表于 2022-3-8 13:52
用C++完全没问题,但不建议。100个C程序员,就有100种编程风格和思路,更何况C++这种体量更庞大、语法更繁 ...
(引用自15楼)

以stm32这种代码体量,不太存在维护比C困难的情况。如果某stm32的C++代码维护生不如死的话,那么同样的C代码一样会生不如死。

出100入113汤圆

发表于 2022-3-9 11:34:42 | 显示全部楼层
嵌入式用C++,估计是想利用面向对象的编程方式,提高代码质量,但这个用 C 也可以尽量模拟实现。

出615入1076汤圆

发表于 2022-3-9 16:01:59 来自手机 | 显示全部楼层
用 c++ 調試底層一些莫明其妙的問題更麻煩,只有無所畏懼的小白才適合用,非常典型的例子是 Arduino

出5入0汤圆

发表于 2022-3-10 21:49:05 来自手机 | 显示全部楼层
看稚晖君开源的大部分都是

出0入0汤圆

发表于 2022-3-10 22:36:55 | 显示全部楼层
本帖最后由 bigk2000 于 2022-3-10 22:38 编辑

当你用面向对象的思想去编程的时候,你会发现C++是个好东西,用了就再也回不去C了
C++的封装、继承、可复用、纯虚函数等用在嵌入式开发中,好处大大的
C++并不会使程序变得臃肿,当然更占用flash是真的,执行效率和C几乎没有区别
用C++使程序模块化、可复用、解耦,可以提升开发效率,让复杂的程序逻辑变的清晰且易掌控,且减少bug
程序跑正确比跑的快更重要。

出0入0汤圆

 楼主| 发表于 2022-3-11 17:35:06 | 显示全部楼层
bigk2000 发表于 2022-3-10 22:36
当你用面向对象的思想去编程的时候,你会发现C++是个好东西,用了就再也回不去C了
C++的封装、继承、可复用 ...
(引用自20楼)

在M3内核这类单片机中使用需要注意哪些?比如哪些特性要慎用等等。。。。

出0入0汤圆

发表于 2022-3-11 20:11:11 | 显示全部楼层
prince2010 发表于 2022-3-11 17:35
在M3内核这类单片机中使用需要注意哪些?比如哪些特性要慎用等等。。。。 ...
(引用自21楼)

没什么需要特别注意的,用就是了
嵌入式用的都是C++最基本的特性,复杂的基本用不到
感觉就一个需要注意的是,构造函数里初始化外设或调用指针时可能导致exception,因为构造函数是在main前调用的,一些数据还没初始化

出0入0汤圆

发表于 2022-3-14 19:05:13 | 显示全部楼层
tomzbj 发表于 2022-3-7 16:01
估计也就是用用带类的c吧, 上个stl, boost, 该直接把flash写满了
(引用自2楼)

boost 和 stl代码不会全都编进去的  用多少是多少
另外类和模板的代价其实也并不高  32位mcu还是挺轻松的

开发效率提升和代码可维护性的现代化收益还是非常大的
现在不少方案已经开始在C++基础上引入lua脚本了, 也完全没问题

出0入4汤圆

发表于 2022-3-15 17:03:55 | 显示全部楼层
很多上STL的,STL的便利性相当于用空间(内存)换时间(开发效率)

出0入0汤圆

 楼主| 发表于 2022-3-16 08:17:32 | 显示全部楼层
bigk2000 发表于 2022-3-11 20:11
没什么需要特别注意的,用就是了
嵌入式用的都是C++最基本的特性,复杂的基本用不到
感觉就一个需要注意 ...
(引用自22楼)

出0入0汤圆

发表于 2022-3-16 10:45:49 | 显示全部楼层
这玩意儿问的,其实就像用牛刀要杀牛,那用牛刀能不能杀鸡,当然可以呀,就是粗糙了些,也能达到目的,哈哈。
用菜刀能不能杀牛,当然也行呀,只是时间上就要久一些,砍个牛骨估计要磨上一天。

出30入16汤圆

发表于 2022-3-16 12:20:30 来自手机 | 显示全部楼层
现在的形式,做好用8051的准备,汇编是少不了的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-9 09:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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