zoukankan      html  css  js  c++  java
  • 嵌入式工程师技能树

    通用技能树

    软件

    C/C++语言编程经验、编程能力、应用开发、OOP面向对象编程方式、软件框架、
    C指针、文件IO、进程线程、高级IO、
    对C++中的智能指针、多线程、网络编程有深入的认识和有项目实践经验。
    QT项目开发能力,GUI设计、参与过商业项目开发,至少2个以上项目开发经验,

    汇编语言、ARM汇编指令集、(编译原理)交叉编译工具的选项设置,

    精通嵌入式数据库
    算法,入栈出栈、入队出队、插入和删除链表、
    数据结构(FIFO)、堆栈、队列、栈、单向和多向链表
    操作系统原理
    MySQL数据库语言基本语句,独立完成简单的增删改查
    在纸上正确写出无语法和逻辑错误的基本算法:冒泡排序/二分查找/链表基本操作

    shell脚本编写、Makefile语法、Python、Matlab
    运用脚本标准化自动化辅助处理常见的问题,
    所以运用脚本语言shell、Makefile、JAVA、Python

    OS入门、FreeRTOS/linux/ecos/ucos/wince/VxWorks,

    • 工作内容

    根据要求写程序、
    根据代码找BUG、
    编写代码说明书、

    硬件

    单片机软硬件知识:中断系统、各种外设模块、时钟系统
    原理图、电路图、PCB
    对8位、16位、32位MCU,LPC564xx、STM32、A7、A9等ARM芯片进行项目开发

    51系列单片机、ARM/MIPS架构知识
    熟悉模电数电基础和电路设计,熟悉网络技术,熟悉各种芯片外围电路设计和设计经验,最好有现成的项目产品。

    通信

    底层(UART/USART-TTL/232/485、IIC、SPI、IIS、CAN)、DQ通信协议及其驱动
    上层(USB、IDE、TCP/IP、以太网口、SDIO)

    工具

    嵌入式开发环境搭建、
    开发机linux系统的安装、
    相关工具(TFTP、NTP)的使用和配置、
    开发环境搭建,keil、IAR、git开发工具、Xshell、eclipse、tftp、
    gcc、g++编程工具,在linux下编译运行C/C++开发的小型项目
    vim编辑器
    gdb调试器

    调试

    示波器、万用表、

    其他

    编程习惯和风格,程序稳定可靠,

    参加过商业项目开发,

    编写规范的概要和详细设计文档

    有丰富的嵌入式多任务软件系统分析和设计能力

    能否可以在项目中独当一面?能独立完成项目系统方案

    开发过程或者产品出现问题时懂得解决?解决系统故障和问题、熟悉项目管理流程

    能否站在用户的角度编写说明书?良好的文档编写能力和习惯,能够编写规范的概要和详细设计文档

    懂得一个项目完整流程怎么完成?

    专业单词和词组,较强的合作精神,上进心、吃苦、加班996?良好的英文阅读能力及较强的学习能力是从事这一领域工作的基础

    芯片手册英文版>中文版

    了解软件开发工程,生命周期全过程——需求、设计、实现、测试、发布、维护,具有良好规范的编程习惯和文档编写习惯

    良好的编程习惯

    独立编写超过1万行的模块或工程

    与他人合作完成超过10万行模块或工程

    掌握10万行代码的模块或工程的内部主要逻辑

    学历,多少年工作经验,

    有创新精神,抗压能力强,吃苦耐劳,善于沟通,态度认真等等等等

    嵌入式软件工程师

    U-BOOT

    分析、配置、移植、定制编写bootloader

    linux内核

    分析、简单的配置、编译、烧写移植、裁剪、定制系统模块
    模块、内存、进程、设备、中断、同步

    根文件系统

    制作映像文件、移植busybox、glibc

    驱动程序编写

    LED、按键、扩展串口、网卡、硬盘、SD卡、LCD、USB、摄像头驱动、NAND、AV

    驱动框架

    platform框架、input子系统框架

    GUI桌面应用系统

    基于Qtopia和C++、基于X移植

    linux进阶

    多进程、多线程、线程池技术、网络编程

    嵌入式驱动工程师

    编写和移植各种芯片驱动,如音频芯片、图像芯片
    优化硬件设备驱动,如温湿度传感器
    【驱动层】linux下的BSP包开发和构建、编写linux设备驱动为上层提供API接口,对硬件功能调试
    【进阶层】boost
    【进阶层】ffmpeg音视频
    熟悉linux内核
    至少熟悉掌握一个驱动或模块的内部原理
    精通控制理论,精通电路设计,
    精通汇编,编译器,二进制工具;
    精通通信技术;精通硬件原理图;精通PCB设计;精通计算机结构;
    精通各种硬件驱动开发,精通bootloader,精通linux内核以及裁剪,
    精通多线程编程,精通各种网络协议,精通各种总线协议,
    精通各种媒体封装格式,编解码;

    嵌入式应用工程师

    内核调试技术(添加kgdb补丁,栈回溯、gdb调试)
    应用程序调试技术
    编写业务逻辑程序
    调用驱动工程师提供的接口设备
    【应用层】linux的发行版、linux下的socket和opencv网络编程、熟悉TCP/IP协议工作原理
    【系统层】linux、windows、塞班、android、ios常用命令和系统架构、android系统的开发和优化,了解系统调度、信号量、锁机制

    嵌入式硬件工程师

    自动化,电子,通信等专业,
    他们要求熟悉电路等知识,非常熟悉各种常用元器件,掌握模拟电路和数字电路设计的开发能力,熟悉硬件开发模式和设计模式,
    熟悉各种芯片及外围设备,熟悉8位16位32位处理器嵌入式硬件平台开发。有的要求有FPGA的开发经验,
    精通常用的硬件设计工具:Protel/PADS(PowerPCB)/Cadence/OrCad。一般要有4~8层高速PCB设计经验。

  • 相关阅读:
    转:孙振耀谈人生(推荐)
    自绘按钮的实现
    数据结构知识
    Direct Show采集图像实例
    视觉跟踪
    改变对话框控件的颜色
    笔试题
    CBitmapButton的使用
    Rotor (SSCLI) 2.0 登场!
    Under the hood: 从Win32 SEH到CLI异常处理模型
  • 原文地址:https://www.cnblogs.com/wt88/p/15100250.html
Copyright © 2011-2022 走看看