最近,我惊讶地发现居然可以用C++进行嵌入式程序开发,甚至是裸系统程序。之前,做单片机开发、STM32上程序开发,想到的都是C语言、汇编语言,根 本就没有考虑过还可以用C++语言做开发。近日,在学习公司的项目之后,发现C++有其独道之处。开发起来比C语言更方便架构搭建与程序管理。
我之前对C++有曲解,总认为C++只适合做上层应用软件开发,不适用于单片机开发。一方面是因为C++喜欢来不不就new 一个对象。对于内存空间非常紧 张的单片机,只能望海兴叹。二是C++生成的代码量较C庞大,效率上可能没有C高。对于主频较低的单片机,也用一点勉强。但是,这并不能掩盖C++的优 势。C++是面向对象的程序语言,能非常灵活地进行继承与派生,还能实现多态。对于较大一点的程序而言,用C作开发,不异于用砖头砌坐20层的大厦。这样 的大厦既不稳定,也不好维护。相反,C++则可以很好地完成这样大的任务。但是,你就盖个两层楼的小平房,需得着什么房屋框架吗?也没必要呀。
总而言之,C与C++各有各的优势,就看你怎么用。
我手头一有块STM32的开发板。于是,我尝试在MDK上建一个基于C++的Demo工程。板子上有64KB的SRAM,主频可达 72MHz,也差不多了。
想到C++,我就想到了new 这个关键字。这个new 就是从堆里取一块内存空间,并执行类的构造函数。
那么这里就要涉及到堆的问题,你必须得告诉程序一个问题:(1)堆在哪里?(2)堆有多大?
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部1条评论
快来发表一下你的评论吧 !