从嵌入式研发行业十年,认为学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步。下面是嵌入式Linux开发工程师的成长过程,希望对大家能有所启发。

1、Linux开发工程师

首先成长为一名Linux开发工程师,这是最基本的目标,他应该具备如下的素质:

(1)了解Linux基本概念和基本操作(历史,文化,起源)(命令行,配置,操作,开发模式)

(2)会使用Linux平台下的编辑器vi(默认安装,占内存小,方便向嵌入式移植)

(3)会使用Linux平台下的编译器GCC(相应的十几个命令行参数)

(4)会使用Linux平台下的管理工具Make(与Makefile相配合,尤其用于大项目中多平台移植的情况下)

(5)会使用Linux平台下的调试器GDB(可以了解底层硬件,及汇编指令)

2、嵌入式工程师

他更关心的是将来在哪一目标机上运行,不关心操作系统,进行的更多与编程相关的工作

(1)合格的C程序的程序员(理解基本的控制结构:循环、分支、数组、指针)

(2)基本的编程思想(编程实践中总结算法)

(3)程序的编译和链接

(4)可执行文件内部(段、起始地址、如何加载执行)

(5)目标机处理器体系结构

(6)知道处理器的外设即System on Chip(内部存储结构及外设驱动)

(7)汇编语言及指令(主要是用在加载过程中)

3、系统工程师

系统工程师夹在驱动工程师及应用工程师这两个层次之间,他要对系统有一个整体的概念,系统主要是指操作系统,往往理论有余而实践不足

(1)进程管理与调度(知道进程间的切换与调度,多任务)

(2)内存管理(建立MMU页表,知道从虚地址到物理地址的映射)

(3)驱动管理(管理设备,编写设备驱动,加载设备驱动)

(4)文件系统(制作文件系统,文件系统的读写,甚至驱动有时也被当成文件系统来管理)

(5)网络协议知识(协议实现作为上层应用与底层驱动之间的衔接)

(6)图形系统知识(支持多窗口及管理窗口,包括窗口切换,窗口移动和覆盖)

4、嵌入式Linux系统工程师

(1)嵌入式Linux基本概念

(2)交叉编译

(3)Linux内核开发和调试工具

(4)启动代码移植(修改Uboot,Vivi等)

(5)内核交叉编译(Linux不支持芯片时要芯片级的移植,支持芯片时要板级的移植)

(6)根文件系统制作

(7)设备驱动程序开发

5、下面针对一个简单的"hello world"程序来区分一下以上所讲的工程师之间的区别

#include<stdio.h>

int main(void)

{

printf("hello world!\n");

}

(1)初级程序员看到的是:

a、头文件

b、主函数main

c、子函数printf

d、函数调用

e、入口参数

f、参数返回

(2)高级程序员看到的是:

a、头文件---预处理过程

b、主函数main---程序入口

c、子函数printf---标准库函数

d、函数调用---跳转指令

e、入口参数---栈空间的参数传递

f、函数返回---返回指令

(3)嵌入式程序员看到的是:

a、头文件---预处理过程---宏展开/条件编译

b、主函数main---程序入口---启动代码

c、子函数printf---标准库函数---链接过程

d、函数调用---跳转指令---PC寄存器

e、入口参数---栈空间的参数传递---寻址方式

f、函数返回---返回指令---LR寄存器

嵌入式程序员还能看到的是:

可执行文件的内部组织结构

代码段

指令格式和类型

地址无关代码

数据段

RWdata读写数据段

ROdata只读数据段

BSS未初始化数据段

(4)系统工程师看到的是:

子函数printf---标准库函数---链接过程

动态链接(Dynamic Linking)(需要系统的支持)

静态链接(Static Linking)(嵌入式系统常采用静态链接,以适应不同系统)

标准C库

系统调用(System Call)

软件中断(Software Interrupt)

(5)Linux系统工程师看到的是:

可执行文件的加载过程(不用了解系统调用这一级)

Shell进程--fork系统调用---exec系统调用

进程状态(就绪、运行、阻塞)

进程调度和调度算法

进程的上下文切换

(6)嵌入式Linux系统工程师看到的是

用户空间和系统空间(分别运行用户模式和管理模式)

ARM---用户模式和管理模式(执行权限不同)

SWI---软中断指令(系统调用就是由用户空间向系统空间切换)

MMU---虚地址和实地址(不同进程如何实现自己独立的地址空间)

BUS---地址总线、数据总线和控制总线(程序如何获得数据,系统如何取指)

SOC---片上系统(整个嵌入式系统如何运行)

嵌入式Linux工程师的成长经历相关推荐

  1. 嵌入式linux工程师 考试,嵌入式Linux工程师常见笔试题.doc

    嵌入式Linux工程师常见笔试题.doc 这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的. 从 ...

  2. 嵌入式Linux工程师发展前景 嵌入式工程师待遇怎样?

    近几年嵌入式的就业趋势是相当不错的,日常生活中的智能手机.智能家居.智能家电.无人车.无人机等等领域都是嵌入式软件的重要应用领域.嵌入式工程师待遇怎样?先来了解下零基础参加Linux培训后发展前景如何 ...

  3. 嵌入式linux工程师 考试,嵌入式助理工程师认证考试题库

    嵌入式助理工程师认证考试题库 嵌入式认证考试就要开始了,为帮助同学们更好复习软件嵌入式助理工程师考试内容,yjbys小编为大家带来最新软件助理工程师认证考试题库,欢迎参考学习! 一.单项选择题 1.如 ...

  4. 嵌入式linux工程师面试标题标题C言语底子部分

    作者: 5trnga  出自: http://www.linuxdiyf.com 在网上看到了一篇嵌入式的面试题,遽然以为自己很伟大--在将来一段年华内我会继承贴上我的谜底,当然大约有些我做不出来,做 ...

  5. 嵌入式Linux开发笔试,嵌入式Linux工程师笔试题

    一. 填空题: 1. 一些Linux命令,显示文件,拷贝,删除 Ls cp rm 2. do--while和while--do有什么区别? 3. Linux系统下.ko文件是什么文件?.so文件是什么 ...

  6. 练一练,嵌入式Linux工程师操作系统面试题三道

    题一,同步和异步有啥区别? 题二,TCP与UDP有啥区别? 题三,进程和线程有啥区别? 题一答案: 同步(Sync):所有的操作都做完,才返回给用户.这样用户在线等待的时间太长,给用户一种卡死了的感觉 ...

  7. 职位介绍 之 嵌入式开发工程师

    笔者电子信息专业硕士毕业,获得过多次电子设计大赛.大学生智能车.数学建模国奖,现就职于南京某半导体芯片公司,从事硬件研发,电路设计研究.对于学电子的小伙伴,深知入门的不易,特开次博客交流分享经验,共同 ...

  8. 华清远见嵌入式Linux就业培训班

    ● 课程目标 4 招生简章     通过本课程的系统学习,可以使学员由浅入深地对嵌入式Linux系统全面学习,能够独立胜任嵌入式Linux应用开发.系统开发.驱动开发等多方面工作.课程目标包括:    ...

  9. 零基础要怎么样学习嵌入式Linux

    零基础要怎么样学习嵌入式希望可以通过这一篇帖子让大家走进嵌入式,对嵌入式的学习不再那么陌生. 嵌入式Linux工程师的学习需要具备一定的C语言基础,因此面对许多朋友只是在大一或者大二学习过C(还不一定 ...

最新文章

  1. tomcat的webapps下没有出现配置过的文件夹
  2. 在物理机上用u盘安装linux遇到的问题
  3. 【计算理论】计算复杂性 ( 小 O 记号 | 严格渐进上界 | 分析算法的时间复杂度 )
  4. cocos2d_android 瞬间动作
  5. dwcs6怎么添加搜索框_一文教会你微信小程序搜索怎么用、怎么优化
  6. [读码时间] 完美拖拽
  7. 【HDU - 4348】To the moon(主席树,区间更新)
  8. Android无线调试——抛开USB数据线
  9. SQL Server 2008安装和配置图解图(转)
  10. 1.2.1 Milking Cows 挤牛奶
  11. 台式计算机如何连接投影仪,台式机怎么接投影仪 台式机接投影仪方法【详解】...
  12. Matlab【光学】波动光光学系统
  13. 查看服务器系统密码,服务器系统查看密码
  14. 什么是App推广技术?
  15. java连接jpi方式_Java数据库连接(Java Database Connectivity)
  16. CSS:line-height是什么?,height是什么?
  17. 跟 John Ousterhout 学 Raft 算法
  18. 常用汇编命令OD命令总结
  19. 1683. Fridge
  20. VS 断点不会命中的情况

热门文章

  1. 零粉丝直播带货,日赚两万是真是假?最新抖音直播玩法!
  2. uni-app返回上一级并刷新页面
  3. redis面试:哨兵模式主从切换数据丢失问题
  4. 四阶魔方java1002四阶魔方java_4x4四阶魔方一看就懂,超简单入门图文教程2:复原中心块...
  5. 2022年分体式平价蓝牙耳机,性价比高的蓝牙耳机学生党排行
  6. MSI和MSI-X对比(五)
  7. Python的字符串方法join(插入间隔符)
  8. 设置网页只允许在手机微信浏览器打开
  9. ios xmpp 发送语音图片解决方案
  10. tp6 SQL调试常用操作