新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式Linux工程师的成长经历,想做大牛应该具备如下素质

嵌入式Linux工程师的成长经历,想做大牛应该具备如下素质

作者:时间:2018-07-25来源:网络收藏

  4、系统工程师

本文引用地址:http://www.eepw.com.cn/article/201807/389499.htm

  (1)基本概念

  (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)系统工程师看到的是

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

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

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

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

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

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


上一页 1 2 下一页

关键词: 嵌入式Linux

评论


相关推荐

技术专区

关闭