本文内容转自百问科技,原文:百问网新作《使用面向对象的思想编写单片机程序》
自2005年以来,我一直从事Linux开发,但对于单片机始终没有产生兴趣,原因是觉得单片机太过简单了,Flash和RAM只有几十KB,感觉就像是在螺蛳壳里面打坐,能展现出什么新花样呢?直到最近两年,我经历了一次震撼。
我有幸在某机器人公司看到了一个基于单片机和rtos开发的猫砂机器人代码,抛开rtos内核源码,他们自己实现的源文件就超过了3000个。这让我意识到,单片机也可以用于开发大型项目!我开始思考如何管理如此庞大的代码量?
在Linux项目中,我们不需要关注寄存器级别的操作,那么在单片机领域是否也可以做到呢?
在Linux项目中,我们将项目拆分为多个子系统,并进一步将子系统拆分为多个层级,编程时要么使用C++的类,要么使用C语言的结构体,那么在单片机领域,这种做法可行吗?
随着单片机性能的提升,我们能够实现的项目功能也越来越多,对单片机工程师的要求也越来越高。过去,我们只需要一个while循环来处理所有事情;现在,我们引入了RTOS,使用多任务系统。过去,我们以面向过程的方式编写程序,需要什么就写什么;现在,我们以面向对象的方式编写程序,先抽象出一个类或结构体,再进行编程。
刚接触面向对象编程时,你可能会觉得:这是什么鬼?明明一个简单的功能,为什么要创建多个结构体并进行注册?
过去只需要几行代码就能解决问题,现在却分散到2、3个文件中了!然而,在我的教学生涯中,一旦学生们掌握了面向对象的编程思想,他们就再也回不去了:他们无法忍受过去的代码。
我一直想在单片机领域推广“面向对象的编程思想”,但一直没有找到合适的单片机以及对应的软件库来支持我的想法。直到我开始使用瑞萨的ARM内核的RA MCU及其软件包FSP,我确信这就是讲解面向对象编程时需要用到的单片机和软件包。瑞萨MCU的软件包FSP就是基于面向对象的思想编写的。
对于每个设备,我们可以定义好接口,抽象出相应的结构体,并对其进行实现。再结合FSP RASC图形化配置工具和代码生成工具,我们使用瑞萨MCU时,变得异常简单!我们不再需要关注寄存器级别的代码,也不再需要重复造轮子,可以将精力集中在业务逻辑和算法上。
得益于瑞萨强大的MCU、强大的软件开发工具,也得益于瑞萨和RA生态工作室提供的支持,我们团队编写了《ARM嵌入式系统中面向对象的模块编程方法》
讲解面向对象编程在单片机开发中的使用
结合FSP软件包实例分析外设驱动
讲解如何使用RASC配置片上设备
教你如何编写面向对象编程
更讲解如何操作外接的模块:引入大型项目中的编程思想
单片机工程师们,很多没有软件工程的概念,编写的程序结构不好,不易移植、不易扩展。软件专业的工程师们,又没有嵌入式的基础,总觉得跟硬件打交道很难。
适用范围
给单片机工程师介绍软件工程的概念,把项目拆分为子系统,分层设计子系统,编写代码时使用面向对象的思想
给软件专业的工程师讲解硬件知识、教你编写驱动程序
想提升编程水平的工程师:现在MCU的性能越来越强,能做的项目越来越大,一个C文件里实现所有功能的方法不适合大项目了
目录
DshanMCU-RA6M5开发板
1
END
1
全部0条评论
快来发表一下你的评论吧 !