随之进来的物联网的兴起,要像安卓那样建立生态,需要跟多的开发者投入其中,那么就要降低门槛。物联网系统中arm 自家的mbed 系统就采用了c++,
用对象的形式封装了外设驱动,比如GPIO口封装成AnalogIn,AnalogOut,BusIn,BusInOut,BusOut,DigitalInOut,DigitalIn,DigitalOut等类。使开发者
可以不用非常熟悉cortex-m 内部结果和外设细节就可以进行开发应用。很多模块也是使用c++ 实现驱动的,以太网模块w5500等。这样开发者就可以花更多的
时间和精力来开发应用,让开发者只实现应用部分就可以了。
很多的刚刚入门的开发者发现自己编译的固件好大,使用MDK 生成固件大很多,像STM32C8T6这种只有64KB ROM 根本不够用,其实STM32C8功能很强大,
64K ROM 也可以在使用c++干很多很多的事。其实就是涉及编译链接的原理,ARM GCC 也提供很多C++ Flags和Linker flags 来压缩减少生成固件的大小。
1、C++ 编译参数 -ffunction-sections -fdata-sections 和链接参数 --gc-sections。
使用ffunction-sections, -fdata-sections会使compiler为每个function和data item分配独立的section。
使用 --gc-sections会使ld删除没有被使用的section。
就