(建筑工程管理)L嵌入式工程师培养经历

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(建筑工程管理)L嵌入式工程师培养经历

Linux嵌入式工程师成长经历

1、Linux开发工程师(每天学习6小时,用壹个月时间)

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

下的素质:

(1)了解Linux基本概念和基本操作(历史,文化,起源)(命令行,

配置,操作,开发模式)

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

嵌入式移植)

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

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

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

指令)

2、嵌入式工程师

他更关心的是将来在哪壹目标机上运行,不关心操作系统,进行的更多

和编程相关的工作

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

组、指针)

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

(3)程序的编译和链接

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

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

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

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

3、系统工程师

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

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

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

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

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

当成文件系统来管理)

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

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

动和覆盖)

4、嵌入式Linux系统工程师

(1)嵌入式Linux基本概念

(2)交叉编译

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

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

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

要板级的移植)

(6)根文件系统制作

(7)设备驱动程序开发

5、下面针对壹个简单的"helloworld"程序来区分壹下之上所讲的工程

师之间的区别

#include

intmain(void)

{

printf("helloworld!\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---标准库函数---链接过程

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

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

系统)

标准C库

系统调用(SystemCall)

软件中断(SoftwareInterrupt)

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

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

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

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

进程调度和调度算法

进程的上下文切换

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

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

ARM---用户模式和管理模式(执行权限不同)SWI---软中断指令(系统调用就是由用户空间向系统空间切换)MMU---虚地址和实地址(不同进程如何实现自己独立的地址空间)

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

取指)

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

相关文档
最新文档