0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式Linux工程师的学习发展步骤,如何测试工程师之间的区别

传感器技术 来源:未知 作者:易水寒 2018-07-09 11:37 次阅读

嵌入式研发行业十年,认为学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步。下面是嵌入式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

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---片上系统(整个嵌入式系统如何运行)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5076

    文章

    19045

    浏览量

    303853
  • Linux
    +关注

    关注

    87

    文章

    11236

    浏览量

    209024
  • GCC
    GCC
    +关注

    关注

    0

    文章

    105

    浏览量

    24826

原文标题:嵌入式Linux工程师的成长经历,一个简单的程序测试工程师之间的区别

文章出处:【微信号:WW_CGQJS,微信公众号:传感器技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式软件工程师和硬件工程师区别?

    嵌入式软件工程师和硬件工程师区别? 嵌入式软件工程师 嵌入
    发表于 05-16 11:00

    (***)招聘射频工程师 测试工程师 嵌入式工程师

    经验优先嵌入式工程师 1名1、计算机及其相关专业,本科以上2、至少熟悉ARM开发工具的一种3、熟悉C/c+语言 熟悉导航协议4、具备导航协议开发经验优先联系人:史东升联系电话010-68257657 转622公司地址:北京市海淀区万寿路翠微中里邮箱:shi1_2345@1
    发表于 05-29 11:33

    招聘 射频工程师 嵌入式工程师 测试工程师

    经验优先嵌入式工程师 1名1、计算机及其相关专业,本科以上2、至少熟悉ARM开发工具的一种3、熟悉C/c+语言 熟悉导航协议4、具备导航协议开发经验优先联系人:史东升联系电话010-68257657 转622公司地址:北京市海淀区万寿路翠微中里邮箱:shi1_2345@1
    发表于 05-29 11:45

    嵌入式工程师关于linux学习总结

    嵌入式工程师关于linux学习总结
    发表于 08-19 23:01

    嵌入式Linux工程师的成长经历

    嵌入式研发行业十年,认为学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步。下面是嵌入式Linux开发
    发表于 08-21 14:35

    嵌入式软件工程师嵌入式硬件工程师有什么不同,区别在哪里?

    是基于PC 机的。而嵌入式软件工程师则是指在wince.linux嵌入式操作系统下进行用户应用软件开发的人员,硬件平台则是基于嵌入式产品
    发表于 07-15 16:01

    嵌入式工程师是如何炼成的

    工程师除了Linux外,嵌入式操作系统还有ARM、WINCE、uC/OS II、Vxworks、uClinux等,不同的系统有着不同的使用环境,你需要学习掌握系统的各个模块,为底层平台
    发表于 04-17 09:31

    嵌入式工程师是做什么的?

    可以不断发展,从而晋升为产品研发经理或IT项目经理。对测试理论和方法有一定了解的嵌入式软件开发工程师还可以转作嵌入式系统
    发表于 08-08 14:59

    嵌入式软件开发工程师与FPGA开发工程师 精选资料分享

    我是一名初入职场的萌新,工作不久从嵌入式软件工程师转到了FPGA工程师,这篇文章简单讲讲两者的区别嵌入式软件
    发表于 08-18 06:37

    如何才能成为嵌入式Linux开发工程师

    嵌入式操作系统领域内也获得了飞速发展和广泛应用。面对如此火热的行业,如何才能成为嵌入式Linux开发工程师?成为一名合格的
    发表于 11-04 08:30

    嵌入式软件开发工程师与FPGA开发工程师区别是什么?

    嵌入式软件开发工程师与FPGA开发工程师区别是什么?
    发表于 11-22 06:11

    什么是嵌入式硬件工程师?什么是嵌入式软件工程师

    什么是嵌入式硬件工程师?什么是嵌入式软件工程师嵌入式软件工程师
    发表于 12-24 06:41

    嵌入式工程师发展前途吗?

    自如,那么就必须得依靠嵌入式技术。这就是我所说的嵌入式+智能学科应用,从长久来看,嵌入式只会越来越火,智能学科的崛起必定带动新型的嵌入式技术发展
    发表于 12-29 09:45

    成为一名嵌入式Linux开发工程师需要学习哪些知识?

    嵌入式操作系统领域内也获得了飞速发展和广泛应用。面对如此火热的行业,如何才能成为嵌入式Linux开发工程师?成为一名合格的
    发表于 11-01 17:22 9次下载
    成为一名<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>开发<b class='flag-5'>工程师</b>需要<b class='flag-5'>学习</b>哪些知识?

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

      近几年嵌入式的就业趋势是相当不错的,日常生活中的智能手机、智能家居、智能家电、无人车、无人机等等领域都是嵌入式软件的重要应用领域。嵌入式工程师待遇怎样?先来了解下零基础参加
    发表于 11-02 13:06 9次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>工程师</b><b class='flag-5'>发展</b>前景 <b class='flag-5'>嵌入式</b><b class='flag-5'>工程师</b>待遇怎样?