- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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)知道处理器的外设即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程序来区分一下以上所讲的工程师之间的区别
#includestdio.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---标准库函数---链接过程
???????????????
文档评论(0)