0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式软件开发怎么编程

RTThread物联网操作系统 来源:RTThread物联网操作系统 作者:RTThread物联网操作 2021-09-03 14:48 次阅读

嵌入式开发,除了掌握基本的编程语法之外,编程的思想也是很关键,下面说两点编程思想。

1分层思想

嵌入式分层思想,可能你不懂,但你肯定见到过很多类似下面这样的软件结构图。

比如,RT-Thread Nano内核结构:

嵌入式软件开发怎么编程

STM32Cube软件结构:

嵌入式软件开发怎么编程

这种软件结构图,里面的东西可能有点多,可能你看不懂。

但是,只要你仔细一看每个区域的划分,你就会发现,它们是把软件划分了多个区域,这里其实就是一种分层的思想。

举一个例子:一个遥控器控制一个小车运动,包含遥控器的按键(比如:前后左右),无线通信(比如:433),小车无线接收,电机驱动、电机驱动算法等。

遇到这种嵌入式软件开发,你会怎么编程?

1.底层驱动层小车部分:电机驱动(比如IO时钟、PWM配置)封装成一个函数、433驱动封装成一个函数。然后把这两个函数整理在一个Driver(驱动)函数。

遥控部分同理:按键驱动(比如IO时钟、配置)封装成一个函数、433驱动封装成一个函数。

2.中间层这里比如你电机用到了加减速、左右转向的一些算法,封装成对应Middleware中间层模块函数(待应用层调用)。

3.应用层应用层就考验你业务逻辑的一层,也是整个软件资源的一层。如果你代码层次画分的话,业务逻辑代码就很容易。

反之,你代码很乱,要实现一个业务逻辑,可能连续加班多天,最后写出来的代码也是bug无数。

2模块化

嵌入式编程,模块化相当重要,可以说,它会影响你代码质量、加班多少、甚至升职加薪。

还是上面那个例子:一个遥控器控制一个小车运动,包含遥控器的按键(比如:前后左右),无线通信(比如:433),小车无线接收,电机驱动、电机驱动算法等。

如果你把所有代码都写在main函数,你说能实现吗?当然,肯定也能实现。

但是,你这样写,你的业务逻辑代码是不是很废脑、很费时间?

还有,你后续加修改按键方式、添加功能,你该怎么办?

所以,你需要模块化编程,把一些小模块分别封装成函数,提供给对应的应用层调用。

上面其实也说了:电机驱动(比如IO时钟、PWM配置)封装成一个函数,这其实就是一个小模块。

当然,这里的驱动函数只是一个小模块,然后还需要进一步封装成“大模块”。

比如:我这里还引入一个编码器,闭环检测电机速度,通过底层电机驱动、加减速算法,编码器等整合成一个电机运动的函数(模块):MOTOR_Ctrl(速度,方向)。这就是一个大模块(当然,还可以结合需求再进一步封装)。

最后,还有很多重要的编程思想,需要开发者了解并掌握,在一定程度上,你的编程思想决定了你是新手级别,还是大神级别。

原文标题:嵌入式开发中的两点编程思想

文章出处:【微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。
责任编辑:pj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 无线通信
    +关注

    关注

    58

    文章

    4513

    浏览量

    143403
  • 电机驱动
    +关注

    关注

    60

    文章

    1203

    浏览量

    86599
  • 嵌入式软件
    +关注

    关注

    4

    文章

    240

    浏览量

    26609
  • RT-Thread
    +关注

    关注

    31

    文章

    1271

    浏览量

    39905

原文标题:嵌入式开发中的两点编程思想

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式软件开发需要学习什么?

    嵌入式软件开发需要学习什么? 嵌入式软件开发,一个发展迅速的行业,不少学者入门的第一个问题肯定是嵌入式
    发表于 01-31 14:45

    嵌入式软件开发是做什么的

    /QNX+ARM汇编;  (5)GUI:VC++/VC#/LABVIEW;  上面是大致,下面就是重头戏了,嵌入式软件开发编程对于一个嵌入式软件
    发表于 06-28 11:31

    嵌入式软件开发与非嵌入式软件开发的区别?

    嵌入式软件开发与非嵌入式软件开发区别?设备驱动开发与裸机驱动开发区别?
    发表于 04-02 06:29

    想知道嵌入式软件开发编程学的是什么??

      想知道嵌入式软件开发编程学的是什么?我们得先知道什么是嵌入式开发,今天就来整理整理嵌入式工程师培训技能。  一般来说它负责上层应用
    发表于 11-08 08:15

    嵌入式软件开发是做什么的?

    :Linux/QNX+ARM汇编; (5)GUI:VC++/VC#/LABVIEW; 上面是大致,下面就是重头戏了,嵌入式软件开发编程对于一个嵌入式
    发表于 12-15 16:39

    什么是嵌入式软件开发

    嵌入式软件开发又是指什么?   随着嵌入式软件系统结构越来越复杂,嵌入式软件
    发表于 04-20 08:43 8754次阅读

    嵌入式软件开发与Embedded-GIS

    1.嵌入式软件开发 市场现状 嵌入式操作系统 嵌入式软件开发特点 嵌入式
    发表于 02-28 10:39 36次下载

    ARM嵌入式软件开发

    ARM嵌入式软件开发ARM嵌入式软件开发ARM嵌入式软件开发
    发表于 01-15 17:29 64次下载

    嵌入式软件开发的优势分析

    为什么当今嵌入式行业会如此受欢迎呢?我们从事嵌入式软件开发有什么好处吗?小编就来说说我的看法吧,嵌入式软件开发的优势我们可以从几点来看。
    的头像 发表于 12-21 15:23 5198次阅读

    嵌入式软件开发编程规范及原则

    编程规范也就是编写出简洁、可维护、可靠、可测试、高效、可移植的代码,提高产品代码的质量。本文针对嵌入式,主要结合C语言编程的规范给大家讲述。
    的头像 发表于 10-05 10:02 6679次阅读

    嵌入式软件开发编程规范介绍

    对于嵌入式系统来讲,嵌入式软件相当于嵌入式系统的灵魂,整个嵌入式系统如何工作,都是由嵌入式
    的头像 发表于 01-01 09:28 4336次阅读

    嵌入式工程师培训技能 嵌入式开发学什么?

      想知道嵌入式软件开发编程学的是什么?我们得先知道什么是嵌入式开发,今天就来整理整理嵌入式工程师培训技能。  一般来说它负责上层应用
    发表于 11-02 20:51 13次下载
    <b class='flag-5'>嵌入式</b>工程师培训技能  <b class='flag-5'>嵌入式开发</b>学什么?

    嵌入式软件开发----编程思想

    被断电。(2)在编程中,如果用到经常需要被修改的定值时,需要用宏定义,即为了方便修改,也为了方便他人阅读。(3)在需要成块状存储不同类型的数据时,struct是个非常好的选择。(4)所有的配...
    发表于 11-03 09:06 14次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件开发</b>----<b class='flag-5'>编程</b>思想

    嵌入式软件开发做什么?嵌入式开发培训学哪些

    嵌入式行业可以说从幕后走到前台,大家对他都很熟悉了,我国嵌入式人才缺口每年在50万左右,相关调查报告称嵌入式软件开发是未来几年最热门和最受欢迎的职业之一。但是还有很多人不知道
    发表于 11-03 10:36 19次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件开发</b>做什么?<b class='flag-5'>嵌入式开发</b>培训学哪些

    嵌入式软件开发软件开发的区别

    嵌入式软件开发软件开发是两个不同的概念,它们在一些关键方面有着明显的区别。嵌入式软件开发是指开发
    的头像 发表于 01-22 15:27 2159次阅读