• 本站微信:bfzyw168 点击关注

    企业信息

    广州尚观信息科技有限公司

  • 8
  • 公司认证: 营业执照已认证
  • 企业性质:外资企业
    成立时间:
  • 公司地址: 广东省 广州市 天河区 大观南路26号长盛商务大厦C栋首层
  • 姓名: 广州尚观科技
  • 认证: 手机未认证 身份证未认证 微信未绑定

    供应分类

    一个嵌入式Linux开发程序员是如何成长为工程师的

  • 所属行业:教育 IT培训
  • 发布日期:2018-07-17
  • 阅读量:224
  • 价格:面议
  • 产品规格:不限
  • 产品数量:1.00 个
  • 包装说明:不限
  • 发货地址:广东广州天河区  
  • 关键词:嵌入式培训

    一个嵌入式Linux开发程序员是如何成长为工程师的详细内容

        从事嵌入式研发行业十年,认为学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步。下面是嵌入式Linux开发工程师的成长过程,希望对大家能有所启发。
    Linux开发工程师
    01首先成长为一名Linux开发工程师,这是较基本的目标,他应该具备如下的素质:
    (1)了解Linux基本概念和基本操作(历史,文化,起源)(命令行,配置,操作,开发模式)
    (2)会使用Linux平台下的编辑器vi(默认安装,占内存小,方便向嵌入式移植)
    (3)会使用Linux平台下的编译器GCC(相应的十几个命令行参数)
    (4)会使用Linux平台下的管理工具Make(与Makefile相配合,尤其用于大项目中多平台移植的情况下)
    (5)会使用Linux平台下的调试器GDB(可以了解底层硬件,及汇编指令)
    嵌入式工程师
    02他更关心的是将来在哪一目标机上运行,不关心操作系统,进行的更多与编程相关的工作:
    (1)合格的C程序的程序员(理解基本的控制结构:循环、分支、数组、指针)
    (2)基本的编程思想(编程实践中总结算法)
    (3)程序的编译和链接
    (4)可执行文件内部(段、起始地址、如何加载执行)
    (5)目标机处理器体系结构
    (6)知道处理器的外设即System on Chip(内部存储结构及外设驱动)
    (7)汇编语言及指令(主要是用在加载过程中)
    系统工程师
    04系统工程师夹在驱动工程师及应用工程师这两个层次之间,他要对系统有一个整体的概念,系统主要是指操作系统,往往理论有余而实践不足:
    (1)进程管理与调度(知道进程间的切换与调度,多任务)
    (2)内存管理(建立MMU页表,知道从虚地址到物理地址的映射)
    (3)驱动管理(管理设备,编写设备驱动,加载设备驱动)
    (4)文件系统(制作文件系统,文件系统的读写,甚至驱动有时也被当成文件系统来管理)
    (5)网络协议知识(协议实现作为上层应用与底层驱动之间的衔接)
    (6)图形系统知识(支持多窗口及管理窗口,包括窗口切换,窗口移动和覆盖)
    嵌入式Linux系统工程师
    05
    (1)嵌入式Linux基本概念
    (2)交叉编译
    (3)Linux内核开发和调试工具
    (4)启动代码移植(修改Uboot,Vivi等)
    (5)内核交叉编译(Linux不支持芯片时要芯片级的移植,支持芯片时要板级的移植)
    (6)根文件系统制作
    (7)设备驱动程序开发
    下面针对一个简单的"hello world"程序来区分一下以上所讲的工程师之间的区别:
    #include
    int main(void)
    {
    printf("hello world!\n");
    }
    初级程序员看到的是:
    a、头文件
    b、主函数main
    c、子函数printf
    d、函数调用
    e、入口参数
    f、参数返回
    高级程序员看到的是:
    a、头文件---预处理过程
    b、主函数main---程序入口
    c、子函数printf---标准库函数
    d、函数调用---跳转指令
    e、入口参数---栈空间的参数传递
    f、函数返回---返回指令
    嵌入式程序员看到的是:
    a、头文件---预处理过程---宏展开/条件编译
    b、主函数main---程序入口---启动代码
    c、子函数printf---标准库函数---链接过程
    d、函数调用---跳转指令---PC寄存器
    e、入口参数---栈空间的参数传递---寻址方式
    f、函数返回---返回指令---LR寄存器
    嵌入式程序员还能看到的是:
    可执行文件的内部组织结构
    代码段
    指令格式和类型
    地址无关代码
    数据段
    RWdata读写数据段
    ROdata只读数据段
    BSS未初始化数据段
    系统工程师看到的是:
    子函数printf---标准库函数---链接过程
    动态链接(Dynamic Linking)(需要系统的支持)
    静态链接(Static Linking)(嵌入式系统常采用静态链接,以适应不同系统)
    标准C库
    系统调用(System Call)
    软件中断(Software Interrupt)
    Linux系统工程师看到的是:
    可执行文件的加载过程(不用了解系统调用这一级)
    Shell进程--fork系统调用---exec系统调用
    进程状态(就绪、运行、阻塞)
    进程调度和调度算法
    进程的上下文切换
    嵌入式Linux系统工程师看到的是:
    用户空间和系统空间(分别运行用户模式和管理模式)
    ARM---用户模式和管理模式(执行权限不同)
    SWI---软中断指令(系统调用就是由用户空间向系统空间切换)
    MMU---虚地址和实地址(不同进程如何实现自己独立的地址空间)
    BUS---地址总线、数据总线和控制总线(程序如何获得数据,系统如何取指)
    SOC---片上系统(整个嵌入式系统如何运行)
        本文由广州尚观科技发布,广州尚观科技,专业的嵌入式培训机构。
    

    http://gzshangguan.b2b168.com
    欢迎来到广州尚观信息科技有限公司网站, 具体地址是广东省广州市天河区大观南路26号长盛商务大厦C栋首层,联系人是广州尚观科技。 主要经营广州尚观教育官网机构,专注Linux云计算,嵌入式开发,Java大数据,HTML5,OCP和RHCE培训.广州尚观拥有12年高端IT人才培训经验.保就业,保年薪.0元0基础入学,先就业,后付款.。 单位注册资金单位注册资金人民币 100 万元以下。 我们有优秀的管理和教学团队,办学目标明确,观念**前,优质的服务和产品,不断地受到新老用户及业内人士的肯定和信任。如果您对我公司的服务有兴趣,请在线留言或者来电咨询。