微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
您好, 登录| 注册|

【工程师6】+理论类+RTT进阶应用之道。。。

  • 2019-09-02 10:01
  • 5477

    浏览

  • 34

    回复

  • 1

    获赞

  • 你能走多远?取决你的才智?取决于你的努力?我想大部分人都不是。。。

    躺赢是一种大众化鄙视的进阶之路,但同样也是大部分人走向成功(达成自己的目标)的必经之路。。。

    你能走多远,取决于:选择。。。。选择。。。。选择。。。(虽然努力固然很重要,但并不是我想说的取决于。。。)

    作为一名单片机软件工程师。。。你的出路在哪里,假如你坚定了选择了这个职业,那么你的进阶之路在哪里?

    RTOS是唯一。。。RTT并不是必要的选择。。。

    这条职业道路最核心的课题是:技术应用而非研发。。。应用他人成熟的技术,借助更加开放的平台,才会促使你更快的成长。

    研发型的工程师并不是没有,而是假如你离开了这个行业,离开了这款产品,你的竞争力还会在哪里?

    选择RTT是因为行业的需要,应用的特点,因为它更像Linux,但并不代表它是最适合你的。

    RTT的核心还是一款RTOS,外面加了一层类似Linux的驱动方案,应用开放化平台的理念,让工程师可以开发各种各种的软件包,提供平台共享

    这才是最棒的地方,这也就是告诉你:你并不是一个人在战斗,你需要飞机、大炮、坦克的时候,自己造并不是唯一选择, 你的身后有成千上万的队友在无私的给你提供着你需要的资源。

    为什么要选择RTOS?万年课题这里不想讨论他有多么好,接下来给你出几个思考题,假如你想明白了,你就自行选择吧 。

    1111

    同是电子工程师,请一定不要吝啬你的赞!

    1人已赞

    编辑 举报

    LV.1

    4242539

    2465442

    23

    741076

    说说你的看法

  • LV.

    @

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    取消
    发送
  • 现在还没有回复呢,说说你的想法

    现在还没有回复呢,说说你的想法

    全部回复(34)

  • 程序小白

    LV.1

    2019-09-02 10:33

    @

    课题1:先来个干货,也就是你认为嵌入式软件设计的时候,最复杂的部分处在哪里?

    先来讲讲构架的问题,大部分裸奔的工程只有一种选择,那就是前后台的设计方式:

    1111

    对于程序的设计有时候很难会做驱动与应用程序的区分,大家都混在一起所以当有需求需要更改的时候

    改会变成一件很痛苦的事情,大部分的更改来自于逻辑部分,也就是应用部分,假如把一个单片机干的活

    不计成本的用十个单片机来实现,可能还有俩单片机在玩,啥也不干,这样的分解后程序设计会是怎样呢?

    其实RTOS的核心目的就是为了让一个单片机用出十个甚至上百个单片机存在的效果而存在的。

    他的目的并不是复杂化我们的设计,相反是为了减轻我们设计的复杂度。

    1111

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4242546

    2465442

    23

    741076

    取消
    发送
    2
  • 程序小白

    LV.1

    2019-09-02 11:03

    @程序小白

    课题1:先来个干货,也就是你认为嵌入式软件设计的时候,最复杂的部分处在哪里?

    先来讲讲构架的问题,大部分裸奔的工程只有一种选择,那就是前后台的设计方式:

    1111

    对于程序的设计有时候很难会做驱动与应用程序的区分,大家都混在一起所以当有需求需要更改的时候

    改会变成一件很痛苦的事情,大部分的更改来自于逻辑部分,也就是应用部分,假如把一个单片机干的活

    不计成本的用十个单片机来实现,可能还有俩单片机在玩,啥也不干,这样的分解后程序设计会是怎样呢?

    其实RTOS的核心目的就是为了让一个单片机用出十个甚至上百个单片机存在的效果而存在的。

    他的目的并不是复杂化我们的设计,相反是为了减轻我们设计的复杂度。

    1111

    课题2:驱动程序的设计及验证是单片机设计的第二大课题。

    单片机软件是需要直接和底层的很多硬件直接打交道,例如时钟芯片,存储芯片,通信芯片,传感器芯片等等,设计驱动程序在很大一部分程度上还是相当复杂的尤其是踏入一个新的领域的应用时,传统的一些驱动芯片的程序,都是在其他驱动程序的基础上, 进行修修改改就OK了,可以用了,一旦涉及到驱动程序的编写,也将是一部分很大的工作,其中有的涉及的MCU的内部外设,有的涉及到外部的通信接口的协议定制,有没有想过有人把很多标准的驱动固化到了RTOS的一部分,这样子来缩短开发周期呢,

    1111

    1111

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4242549

    2465442

    23

    741076

    取消
    发送
    3
  • 程序小白

    LV.1

    2019-09-02 11:21

    @程序小白

    课题2:驱动程序的设计及验证是单片机设计的第二大课题。

    单片机软件是需要直接和底层的很多硬件直接打交道,例如时钟芯片,存储芯片,通信芯片,传感器芯片等等,设计驱动程序在很大一部分程度上还是相当复杂的尤其是踏入一个新的领域的应用时,传统的一些驱动芯片的程序,都是在其他驱动程序的基础上, 进行修修改改就OK了,可以用了,一旦涉及到驱动程序的编写,也将是一部分很大的工作,其中有的涉及的MCU的内部外设,有的涉及到外部的通信接口的协议定制,有没有想过有人把很多标准的驱动固化到了RTOS的一部分,这样子来缩短开发周期呢,

    1111

    1111

    课题3:正视C语言:面向对象 or 面向过程 ?

    面向对象和面向过程是针对软件工程来讲的,与C语言无关,大部分时间我们应用C语言都是应用面向过程进行程序设计,虽然软件复杂度的上升,面向对象是一个更好的选择,像RTOS就是选择面向对象作为设计的核心,除了少量汇编代码的工作,大部分全部采用C语言进行设计的,也就是你也可以采用面向对象的设计思想应用C语言来设计程序。面向对象的支持C++更加全面一些。

    1111

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4242552

    2465442

    23

    741076

    取消
    发送
    4
  • 程序小白

    LV.1

    2019-09-03 15:16

    @程序小白

    课题3:正视C语言:面向对象 or 面向过程 ?

    面向对象和面向过程是针对软件工程来讲的,与C语言无关,大部分时间我们应用C语言都是应用面向过程进行程序设计,虽然软件复杂度的上升,面向对象是一个更好的选择,像RTOS就是选择面向对象作为设计的核心,除了少量汇编代码的工作,大部分全部采用C语言进行设计的,也就是你也可以采用面向对象的设计思想应用C语言来设计程序。面向对象的支持C++更加全面一些。

    1111

    课题4:RTT是如何采用面向对象的方式实现I/O设备模型框架的(这是一个实战的案例)

    用面向对象的方式实现I/O设备模型框架的实现方式和之前我们做软件设计驱动的方式有很大的普通,具体要说优势在哪里,说实话还是讲不太出来,但是实现方式还是能够理解的,先来看看他的设计框架模型:

    1111

    传统设计驱动程序,很少涉及到注册的概念,我们会涉及到层的概念,通过函数调用的方式,从最上层找到最底层的应用。

    而面向对象的设计是将每一层的设计全部都固化的本身,不会显式的调用底层的东西,这样做了很好的隔离,无论底层如何变动,都与上层无关。

    而如果找到最底层的正确的驱动呢,是通过注册的行为,将每一层之间用对象连接起来,实际上每一层操作的是同一个对象。

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4242596

    2465442

    23

    741076

    取消
    发送
    5
  • 程序小白

    LV.1

    2019-09-03 16:42

    @程序小白

    课题4:RTT是如何采用面向对象的方式实现I/O设备模型框架的(这是一个实战的案例)

    用面向对象的方式实现I/O设备模型框架的实现方式和之前我们做软件设计驱动的方式有很大的普通,具体要说优势在哪里,说实话还是讲不太出来,但是实现方式还是能够理解的,先来看看他的设计框架模型:

    1111

    传统设计驱动程序,很少涉及到注册的概念,我们会涉及到层的概念,通过函数调用的方式,从最上层找到最底层的应用。

    而面向对象的设计是将每一层的设计全部都固化的本身,不会显式的调用底层的东西,这样做了很好的隔离,无论底层如何变动,都与上层无关。

    而如果找到最底层的正确的驱动呢,是通过注册的行为,将每一层之间用对象连接起来,实际上每一层操作的是同一个对象。

    面向对象,最核心的部分就是继承,继承可以单继承或者多层继承,在应用面向对象将层进行连接时,最主要的手段就是通过继承,你可以使用在继承线路上的任何一个对象,以此为切入点而找到其父亲,爷爷,上上一背,就像是大家都姓王,你说爷爷(类型),大家知道是指王大锤,父亲,大家知道是指王二锤,儿子,大家知道是王小锤。同一对象以王小锤作为入口,对于三层构架,底层设备,驱动层,I/O管理层,通过注册函数,让每一层都找到自己对应的类型,从而做自己该处理的事情。这就是核心。

    下面看一看,三锤构架,大锤:rt_object,二锤:rt_device,小锤:rt_serial_device

    1111

    二锤的内部构造(类型定义):

    1111

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4242606

    2465442

    23

    741076

    取消
    发送
    6
  • Kaidi3826

    LV.1

    2019-09-03 17:07

    @

    感觉技术很牛的,学习学习!
    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4242609

    2465442

    23

    772342

    取消
    发送
    7
  • 程序小白

    LV.1

    2019-09-04 08:15

    @Kaidi3826

    感觉技术很牛的,学习学习!
    共同学习
    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4242630

    2465442

    23

    741076

    取消
    发送
    8
  • lihui710884923

    LV.1

    2019-09-04 08:31

    @

    这个与STM32编程有啥直接关联?
    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4242631

    2465442

    23

    597597

    取消
    发送
    9
  • 程序小白

    LV.1

    2019-09-04 08:53

    @程序小白

    面向对象,最核心的部分就是继承,继承可以单继承或者多层继承,在应用面向对象将层进行连接时,最主要的手段就是通过继承,你可以使用在继承线路上的任何一个对象,以此为切入点而找到其父亲,爷爷,上上一背,就像是大家都姓王,你说爷爷(类型),大家知道是指王大锤,父亲,大家知道是指王二锤,儿子,大家知道是王小锤。同一对象以王小锤作为入口,对于三层构架,底层设备,驱动层,I/O管理层,通过注册函数,让每一层都找到自己对应的类型,从而做自己该处理的事情。这就是核心。

    下面看一看,三锤构架,大锤:rt_object,二锤:rt_device,小锤:rt_serial_device

    1111

    二锤的内部构造(类型定义):

    1111

    接下来我们讲解下层的构造,其实层本身是一个抽象的概念,无法实例化的理论是最难的理解的,这里将层映射到实际的文件,每一层在我看来就是一个.C文件,这样讲解不一定准确,但是却很好理解:

    APP层:uart_sample.c

    1111

    I/O设备管理层:device.c位于kernel域中,属于os核心组成部分。

    1111

    串口设备驱动框架层:serial.c (属于os组件部分)

    1111

    串口驱动程序:drv_usart.c

    1111

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4242632

    2465442

    23

    741076

    取消
    发送
    10
  • 程序小白

    LV.1

    2019-09-04 09:04

    @lihui710884923

    这个与STM32编程有啥直接关联?

    stm32只是众多硬件平台中的一个,RTT是平台解决方案的存在,支持基本市面上你能看到的几乎所有的硬件平台,简单来讲就是后面你可以不再过多考虑硬件底层的编程,专注于应用层,底层她帮你解决,不需要自己去设计各种外设的驱动,只需要适配和调试。

    1111

    1111

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4242633

    2465442

    23

    741076

    取消
    发送
    11
  • 现在还没有回复呢,说说你的想法

    1 2 3 4  
  • 回复

  • 收藏

  • 点赞

  • 举报有害信息

  • 已超出发布时间24小时,无法编辑与删除
    关于我们 联系方法 广告服务 会议服务 电子星球APP 网站地图 不良信息举报 热线:400-003-2006
    © 2002-2021 Netbroad(网博互动)公司版权所有 津ICP备:11006234号 联网备案号:12010402000747 增值电信业务经营许可证:津B2-20120058