本帖最后由 大道至简 于 2022-4-26 16:29 编辑
国民技术单片机跑C++
做了个项目,原来在别家单片机上运行c++代码,很稳定。估计国产单片机也ok。因为单片机并不知道代码是c写的还是C++写的。它只管执行。
c++的好处:
- 模块化会非常好
- 软件可以做很庞大
- 稳定性不比c语言的差
缺点:
- 内存消耗估计要大10%~20%,但是现在单片机内存都比较大了,这个好像不是问题
有图有真相。上图
为了今后做项目方便我做了一个c++/RTOS的框架,框架里面有一大堆常用的c++代码
模块里面有依赖于具体单片机的模块,比如GPIO.cpp uart\timer\pwm等模块
还有不依赖于具体单片机的模块,比如crc16 crc32 base64 字符串拆分库等
配置一下编译环境
一顿骚操作后,开始编译这个框架一顿骚操作后,开始编译这个框架一顿骚操作后,开始编译这个框架一顿骚操作后,开始编译这个框架一顿骚操作后,开始编译这个框架一顿骚操作后,开始编译这个框架一顿骚操作后,开始编译这个框架一顿骚操作后,开始编译这个框架一顿骚操作后,开始编译这个框架
Rebuild started: Project: ***
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Rebuild target 'N32G45x'
assembling startup_n32g45x.s...
compiling RTX_Conf_CM.c...
compiling SEGGER_RTT_printf.c...
compiling SEGGER_RTT.c...
compiling n32g45x_it.c...
compiling system_n32g45x.c...
compiling misc.c...
compiling n32g45x_dac.c...
compiling n32g45x_can.c...
compiling n32g45x_dma.c...
compiling n32g45x_comp.c...
compiling n32g45x_crc.c...
compiling n32g45x_dbg.c...
compiling n32g45x_adc.c...
compiling n32g45x_bkp.c...
compiling n32g45x_flash.c...
compiling n32g45x_i2c.c...
compiling n32g45x_gpio.c...
compiling n32g45x_exti.c...
compiling n32g45x_dvp.c...
compiling n32g45x_opamp.c...
compiling n32g45x_pwr.c...
compiling n32g45x_iwdg.c...
compiling n32g45x_rcc.c...
compiling n32g45x_rtc.c...
compiling n32g45x_qspi.c...
compiling n32g45x_tsc.c...
compiling n32g45x_wwdg.c...
compiling n32g45x_spi.c...
compiling n32g45x_usart.c...
compiling GuoMing_public_HAL.cpp...
compiling GPIO.cpp...
compiling PWM_tim1.cpp...
compiling n32g45x_tim.c...
compiling PWM_tim4.cpp...
compiling PWM_8X.cpp...
compiling n32g45x_sdio.c...
compiling basic_data_stru.cpp...
compiling crc32.cpp...
compiling smart_binary_buffer.cpp...
compiling base64.cpp...
compiling crc16.cpp...
compiling HRect.cpp...
compiling HPoint.cpp...
compiling count_choice_n.cpp...
compiling RangeInt.cpp...
compiling prime487.cpp...
compiling HPointDouble.cpp...
compiling main.cpp...
compiling Task_PWM.cpp...
compiling led_blink.cpp...
linking...
Program Size: Code=23126 RO-data=614 RW-data=192 ZI-data=15376
FromELF: creating hex file...
".\Objects\***.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:10
编译成功,哈哈
后面的任何项目,只要继续在这上面摸爬滚打,就可以诞生无数项目了
我最多用c++做了 30000+ 行的源代码(用的是更大flash的单片机),稳定性杠杠的。
|