2.Linux技能要求

Linux嵌入式工程师技能要求:

    1.C语言
          
          具备C语言基础、理解C语言基础编程及高级编程,包括:数据类型、数组、指针、结构体、链表、文件操作、队列、栈。
          
    2.Linux基础
          
          Linux操作系统的概念、安装方法,了解Linux下目录结构、基本命令、Vim+GCC+GDB+make,shell Makefile脚本文件编写,开发环境搭建。
          
    3.Linux系统编程
      
          Linux系统标准I/O库、多任务编程的多进程与多线程,进程间通信(管道、fifo、消息队列、共享内存、信号、信号量等),同步与互斥对共享资源访问控制
       等重要知识,主要对Linux应用开发的理解和代码调试的能力。
       
    4Linux网络编程
   
          计算机网络在嵌入式Linux系统应用开发的过程中使用十分广泛。通过Linux网络发展、TCP/IP协议、socket编程、TCP网络编程、UDP网络编程、Web编程
        等方面入手,全面了解Linux网络应用程序开发。重点学习网络编程相关API,掌握TCP协议服务器的编程方法和并发服务器的实现,了解HTTP协议及其实现方法,
        熟悉UDP广播、多播的原理及编程方法,掌握混合C/S架构网络通信系统的设计,掌握HTML,JavaScript等Web编程技术实现和方法。
        
    5.数据结构与算法
    
          数据结构与算法在嵌入式底层驱动、通信协议及各种引擎开发中会得到大量运用,对其掌握好坏影响程序的健壮、稳定性。此阶段的学习重要理解数据结构
        与算法的基础内容。包括:顺序表、链表、队列、栈、树、图、哈希表,各种查找排序算法等应用及其C语言实现过程。
        
     6.C++/Qt
     
          C++是Linux应用开发主要语言之一,本阶段需要重点掌握面向对象的编程思想和C++的重要内容。图形化界面编程是嵌入式应用开发的重要环节。Qt由于跨平台
        、面向对象、支持2D/3D渲染,丰富的API、支持XML、多国语言等强大功能,在嵌入式GUI开发领域应用广泛。在本阶段学习Qt基于图形库的学习和使用,熟练GUI
        编程,并移植到开发平台上使用。掌握IDE、Qt部件及布局管理器、信号与槽机制的应用、鼠标、键盘及绘图事件、文件处理的应用。
        
     7.Cortex -ARM 开发平台
        
          掌握s5p210系统资源、时钟控制器、电源管理、异常中断控制器、nand flash控制器等模块,为底层平台搭建做准备。Linux平台包括内核裁剪、内核移植、
        交叉编译、内核调试和Bootloader介绍、制作与原理分析、根文件系统制作及向内核中添加自己的模块,运行自己制作的Linux系统,集成部署整个Linux整个
        流程。
      
     8.驱动开发
        
          Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。熟悉开发硬件的工作原理,具备ARM硬件接口的基本知识,掌握设备
        驱动原理框架。熟悉Linux高级字符设备、块设备、网络设备、USB设备等驱动开发工作。
     
     
          

原文地址:https://www.cnblogs.com/nyqm/p/7954676.html