zoukankan      html  css  js  c++  java
  • 我对嵌入式软件的理解

    嵌入式软件就是给专门的嵌入式系统设计的软件,和一般的PC软件区别不是非常大,基本的区别在嵌入式系统对功耗和内存大小上有严格的限制,所以嵌入式软件一定要精简。高效。

    一个嵌入式系统一般都包括下面几个部分:cpu,存储器,电源,接口,功能模块电路。而嵌入式软件就是用来驱动硬件工作以达到系统的工作目的。

    由于嵌入式系统的内存有限。所以软件大部分是由C写的,由于C++,java等语言尽管方便,可是非常费内存,可是随着存储器的变革,C++终于会代替C的。

    作为一个嵌入式软件project师。须要了解一下一些知识:

    1.C是必须会的,并且水平要比較高。嵌入式软件的编程用到非常多C里面平时不经常使用的语法,比方内联,静态等。以及要清楚全部数据类型所占用的内存。

    2.会看懂英文用户手冊和硬件原理。

    应为这方面的非常多硬件都是外国生产的,所以要能看懂这些文档。

    对于软件project师来说,硬件就是一堆寄存器。所以你要看懂硬件里有哪些寄存器,每一个有什么作用。

    3.会一些UI的设计,尽管这方面一般都有专业做界面的人去做,可是也要会一点。

    4.知道怎样将软件一直到新的处理器架构上,这个要了解主流的处理器架构的特性。

    5.知道怎样调试自己的程序,仿真调试或者片上调试,反正就那几个调试方法。

    6.高级的嵌入式系统须要RTOS,所以也要懂操作系统。

    嵌入式软件一层一层的覆盖在硬件上的,最底层的应该是硬件层。这一层直接对硬件的寄存器操作,是对硬件的第一层抽象。

    然后应该是驱动层。这一层提供一些硬件的功能函数。最后是接口层,这一层提供终于的函数给上一层的project师。比如ledLight()这样的函数,上层的人能够直接用这个函数来点亮led。而不用知道以下的细节。

    这仅仅是我片面的理解。假设有什么不正确的地方请指出来。

  • 相关阅读:
    BZOJ 2006: [NOI2010]超级钢琴 [ST表+堆 | 主席树]
    CF 741D. Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths [dsu on tree 类似点分治]
    CF 716E. Digit Tree [点分治]
    CF 291E. Tree-String Problem [dfs kmp trie图优化]
    CF 208E. Blood Cousins [dsu on tree 倍增]
    CF 246E. Blood Cousins Return [dsu on tree STL]
    CF 570D. Tree Requests [dsu on tree]
    [dsu on tree]【学习笔记】
    测试markdown
    BZOJ 1969: [Ahoi2005]LANE 航线规划 [树链剖分 时间倒流]
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6917710.html
Copyright © 2011-2022 走看看