zoukankan      html  css  js  c++  java
  • WinCE底层开发的知识域

        做WinCE开发的人,应该对下面的架构示意图很熟悉:

        arc

        其中蓝色部分(除了Kernel),一般叫做BSP(Board Support Package),也叫OEM 层(微软就喜欢把这些名称改来改去的玩,马上连WinCE也要改名了)就是底层开发需要完成的任务了。当然,我们大部分人不会完整的开发一个BSP出来,这基本上是芯片原厂的工作(从头开发一个BSP是相当困难的一件事情,工作量超过100人月的级别),大部分人的工作只是在原厂提供的BSP基础上修修补补而已,但就是修修补补也是很不容易的,做为一个合格的嵌入式软件开发人员,具备以下知识是必须的条件:

        1.C语言,对于底层开发来说,没有其它语言可选,C就是你吃饭的家伙,必须熟练掌握;C++虽然用的不多,但是有一些驱动(比如微软的显示驱动)使用了这个语言,所以最低要求,要能看懂C++代码,能写简单的类,了解继承的概念。

        2.ARM处理器架构,虽然有的人会用到X86,MIPS甚至SH4架构的芯片,但是目前嵌入式的主流是ARM,所以了解ARM处理器的架构也是需要掌握的基本技能之一。你要知道ARM的7种工作状态,了解它的寄存器,寻址方式,中断方式这些基本知识,当然,还需要了解基本的ARM汇编语言。

       3.LCD,touchpanal这2个是最基本的输入输出设备了,应该熟悉它们的接口,驱动架构,其中LCD的显式驱动可以使用GPE类来构建,也可以使用支持DIRECTDRAW的结构,touchpanal要注意校正问题。

        4. 各种常用接口协议:USB是最常用的,然后IIC,IIS,UART也是很常用的接口,必须熟悉它们的协议,了解它们的驱动架构。

        5. FLASH:现在的嵌入式设备大量使用FLASH做为ROM,来存储操作系统以及用户文件。FLASH分为NOR和NAND两种,现在NOR已经式微,很少使用,但是它有个优点是可以直接运行程序,XIP就是利用了这一特性。NAND FLASH的特点是容量大,价格便宜,而且技术发展的很快,以前广泛使用的SLC正在逐渐被淘汰,MLC成为市场的主力。我们需要了解FLASH的接口,页/块的概念,写/擦除的方法,均衡读写概念,ECC校验概念和方法;另外FLASH和文件系统直接相关,所以需要了解WinCE的文件系统。

       6. 无线通讯:现在蓝牙,WIFI,3G越来越广泛的使用在嵌入式系统上,应该对这些有一定的了解。

       7.音频接口。这也是很基本的,必须熟悉的知识。 

       8.SD/MMC CARD,了解接口定义,熟悉其协议。

       从以上可以看出来,要做一个合格的嵌入式软件工程师,除了基本的语言使用能力,对于各种硬件规范,协议的掌握也是必须的,这很困难,所以需要我们持之以恒的去学习,去实践。

  • 相关阅读:
    VirtualBox中的Linux读取Windows共享目录
    Windows10资源管理器去掉左侧“下载、文档、图片、音乐、视频”等目录
    在Eclipse ee中成功使用jQuery UI插件
    (medium)LeetCode .Implement Trie (Prefix Tree)
    (*medium)LeetCode 211.Add and Search Word
    (easy)LeetCode 257.Binary Tree Paths
    2016 360笔试 编程题 2
    2016 360笔试 编程题1
    (番外)使用DFS和BFS实现拓扑排序
    (medium)LeetCode 210.Course Schedule II
  • 原文地址:https://www.cnblogs.com/yashi88/p/1744844.html
Copyright © 2011-2022 走看看