嵌入式软件开发概述

作者: dVito | 来源:发表于2016-10-19 16:14 被阅读128次

    从事嵌入式软件开发相关工作至今有3年多了吧,总结一下自己理解的嵌入式软件开发吧,有些方面因为做的不多总结的也许不全面,见笑见笑。

    嵌入式软件开发主要包括以下几类:

    1. 单片机开发
    2. Linux C/C++
    3. Linux 驱动 & 系统编译
    4. Android 系统开发

    主要需要的知识能力有:

    • 单片机开发

      1. C语言
      2. 常用外设驱动(GGPIO、UART、IIC、Timer等)
      3. 多任务系统、UCOS或任意RTOS
      4. 网络知识,嵌入式TCP、IP协议栈,LWIP协议栈、UIP协议栈
    • Linux C/C++

      1. C/C++
      2. Socket网络编程
      3. 多线程、多进程编程
    • Linux驱动 & 系统编译

      1. Linux C/C++的能力
      2. Linux驱动编写、字符驱动、Platform虚拟总线驱动,并在config里增加模块
      3. Linux系统编译,系统裁剪,增加减少模块,添加厂家提供的ko驱动,增加新外设驱动等
      4. Shell脚本编写,常用的操作写成脚本,提高效率。
    • Android 系统开发

      1. Linux驱动 & 系统编译知识
      2. Android系统编译
      3. Android系统框架,Linux Driver -> Android Hal
      4. JNI, C库如何通过JNI给Java调用
    • 其他扩展知识

      1. TCP/IP 深入理解TCP/IP,未来包括现在已经是互联网时代网络知识是必要的。
      2. HTTP,了解HTTP协议并知道如何通过Socket实现HTTP下载文件,或者调用服务器的HTTP接口。
      3. 无线通信相关,蓝牙协议、Zigbee、WiFi等主流物联网无线通信技术。
      4. 程序设计能力,面向对象设计 & 设计模式,C语言开发深入理解Linux Kernel中的面向设计思想是十分有必要的,学习C语言中如何进行面向对象设计
    • 书籍推荐

      推荐一些自己看过觉得不错的书吧,有些也想不起来了。

      1. 代码大全,对软件开发方面总结的非常全面
      2. Linux内核设计与实现, 短小精悍的Linux内核书籍
      3. C语言深度解剖,总结里C语言的很多奇技淫巧,很多都挺实用的。
      4. C和指针
      5. C陷阱与缺陷
      6. C标准库,标准库不需要了解的多细,但是知道有哪些标准库还是有必要的。

    结语

    算是工作几年的一点经验吧,不算多全面,希望能对大家有所帮助。

    相关文章

      网友评论

        本文标题:嵌入式软件开发概述

        本文链接:https://www.haomeiwen.com/subject/cpuxuttx.html