苏嵌 学习日志 吴浩南 2017.07.12

1、 嵌入式开发与传统开发的区别?(同类问题:单片机开发与嵌入式开发的区别)

是否有无操作系统。(单片机就是完成运算、逻辑控制、通信等功能的单一模块。嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。嵌入式系统是将应用程序、操作系统、和计算机硬件连接在一起的系统,是指以应用为中心,以计算机技术为基础,软硬件可裁剪,其针对的用户应用对功能、可靠性、成本、体积、功耗和使用环境有特殊要求的专用计算机系统。

2、 移植操作系统的好处有哪些?

提供多任务机制;提供网络协议栈;提供开源的软件和工具。

3、 嵌入式工程师的岗位划分有哪些?所具备的能力是什么?

系统构建工程师、上层驱动开发工程师、上层应用程序开发工程师

1、计算机应用、自动化、通信或相关专业学士或硕士学历;如为应届生要求在校期间有实际相关工作经验;
2、精通Vxworks操作系统内核程序设计;
3、深入掌握一种或几种高端嵌入式处理器系统(熟悉Intel  Xscale者优先);
4、精通Vxworks环境下的系统开发环境与工具,包括VxWorks平台移植驱动开发及调试;
5、熟悉Vxworks环境下的 C 语言程序设计和汇编语言程序设计;
6、有Vxworks环境下的反汇编以及反向开发经验;
7、精通 DSP 浮点算法的定点实现;
8、熟悉无线网络(Wi-Fi、Ad-Hoc、Wimax)协议者优先;
9、能够熟练阅读英文资料,并能使用英语进行一般性的交流;
10、性格开朗,精力充沛,能够承受工作压力和适应经常性的加班;热爱研发工作,享受技术工作带来的痛苦和乐趣。

4、 人工智能和嵌入式之间有什么关系?人工智能和大数据、云计算的关系?

 

5、 CPU、GPU、DPU、TPU 分别是什么?

CPU( Central Processing Unit, 中央处理器)就是机器的“大脑”, 主要包括运算器(ALU, Arithmetic and Logic Unit)、控制单元(CU, Control Unit)、寄存器(Register)、高速缓存器(Cache)和它们之间通讯的数据、控制及状态的总线。由计算单元、控制单元和存储单元三大部分组成。

GPU(Graphics Processing Unit),中文为图形处理器,GPU最初是用在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算工作的微处理器。

并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来共同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算

DPU深度学习处理器最早由国内深鉴科技提出,基于Xilinx可重构特性的FPGA芯片,设计专用的深度学习处理单元,且抽象出定制化的指令集和编译器,从而实现快速的开发与产品迭代。 

TPU是Google于2016年5月提出的一个针对Tensorflow平台的可编程AI加速器,TPU可以提供高吞吐量的低精度计算,用于模型的前向运算而不是模型训练,且能效(TOPS/w)更高。TPU与同期的CPU和GPU相比,可以提供15-30倍的性能提升,以及30-80倍的效率(性能/瓦特)提升。1)深度学习的定制化研发:TPU 是谷歌专门为加速深层神经网络运算能力而研发的一款芯片,其实也是一款 ASIC(专用集成电路)。

2)大规模片上内存:TPU 在芯片上使用了高达 24MB 的局部内存,6MB 的累加器内存以及用于与主控处理器进行对接的内存。

3)低精度 (8-bit) 计算:TPU 的高性能还来源于对于低运算精度的容忍,TPU 采用了 8-bit 的低精度运算,也就是说每一步操作 TPU 将会需要更少的晶体管。

6、 嵌入式操作系统有哪些?vxwork 的特点?ucossii 的特点?

Windows CEVxWorks pSOSQNXPalm OSOS-9LynxO

 

可靠性

    操作系统的用户希望在一个工作稳定,可以信赖的环境中工作,所以操作系统的可靠性是用户首先要考虑的问题。而稳定、可靠一直是VxWorks的一个突出优点。自从对中国的销售解禁以来,VxWorks以其良好的可靠性在中国赢得了越来越多的用户。

实时性

   实时性是指能够在限定时间内执行完规定的功能并对外部的异步事件作出响应的能力。实时性的强弱是以完成规定功能和作出响应时间的长短来衡量的。

    VxWorks 的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。VxWorks 提供的多任务机制中对任务的控制采用了优先级抢占(Preemptive Priority Scheduling)和轮转调度(Round-Robin Scheduling)机制,也充分保证了可靠的实时性,使同样的硬件配置能满足更强的实时性要求,为应用的开发留下更大的余地。

可裁减性

   用户在使用操作系统时,并不是操作系统中的每一个部件都要用到。例如图形显示、文件系统以及一些设备驱动在某些嵌入系统中往往并不使用。

  VxWorks 由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。VxWorks 内核最小为 8kB,即便加上其它必要模块,所占用的空间也很小,且不失其实时、多任务的系统特征。由于它的高度灵活性,用户可以很容易地对这一操作系统进行定制或作适当开发,来满足自己的实际应用需要。

开源性、可移植性、可固化、可裁剪、抢占试、多任务、可确定性、任务栈、系统服务、中断管理,支持嵌套。

 

 

7、 什么是实时性?哪些操作系统具有实时性?

实时性,指时钟信号能够准确的定时,各处的时钟能够达到一致,在不同的场合需要达到ns级、μs级。

VxWorks(商业使用须缴费)-->RT Linux --> Linux--->Android

8、 嵌入式的就业前景和以后的发展方向如何?

近几年来,随着移动互联网、物联网的迅猛发展,嵌入式技术无处不在,笼罩着各行各业,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用;随着嵌入式技术及相关产品不断渗透到人们日常生活,同时大大小小的公司对于嵌入式开发人才招聘需求猛增,不同类型的嵌入式人才可根据自己学习方向进行选择。

 

9、 Linux 操作系统有哪些特点?

1、支持多种平台。Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

2、多用户、多任务。Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

3、完全兼容POSIX1.0标准。这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

4、良好的界面。Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

5、完全免费。Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。

 

10、 Linux 和 unix 操作系统的区别?

Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主权,而对后者却只能去被动的适应;这种不同还表现在前者的开发是处在一个完全开放的环境之中,而后者的开发完全是处在一个黑箱之中,只有相关的开发人员才能够接触的产品的原型。UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上.UNIX是商业软件,而Linux是自由软件,免费、公开源代码的.

 

11、虚拟机的作用是什么?主流的虚拟机有哪些?

1.演示环境,可以安装各种演示环境,便于做各种例子

2.保证主机的快速运行,减少不必要的垃圾安装程序,偶尔使用的程序,或者测试用的程序在虚拟机上运行

3.避免每次重新安装,银行等常用工具,不经常使用,而且要求保密比较好的,单独在一个环境下面运行

4.想测试一下不熟悉的应用,在虚拟机中随便安装和彻底删除

5.体验不同版本的操作系统,如Linux、Mac等。

Bochs、DOSBox、DOSEMU、Hypen-V、KVM、Logical Domains、OpenVZ、Oracle VM、Parallela Workstation

PearPC、QEMU、QEMU(kqemu模块)、QEMU(qvm86模块)、SimNow、Sun xVM、VirtualBox、User Mode Linux

Virtual Iron Virtual Iron 3.1、Virtual PC 2007、Virtual Server 2005 R2、Virtuozzo、VMware ESX Server、VMware ESXi、Server、VMware Fusion、VMware Server、VMware Workstation 6.0、VMware Player 2.0、Xen

 

12、分别阐述 POSIX、GNU、GPL 的理解?

POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称,其正式称呼为IEEE 1003,而国际标准名称为ISO/IEC 9945。POSIX标准意在期望获得源代码级别的软件可移植性。

 GNU 项目创始于一九八四年,旨在开发一个类似 Unix ,且为 自由软件 的完整的操作系统: GNU 系统。

GNU 的内核尚未完成,所以 GNU 使用 Linux 作为其内核。GNU 和 Linux 以这样的方式组合成为 GNU/Linux 操作系统

GPL许可协议(GNU General Public License):只要软件中包含有其他GPL协议的产品或代码,那么该软件就必须也采用GPL许可协议且开源及免费。具有以下特点:

复制自由:允许将软件复制到任何人的电脑中,并且不限制复制的数量。

传播自由:允许以各种形式进行传播。

收费传播:允许在各种媒介上出售该软件,但必需提前让买家知道这个软件是可以免费获得的,并解释收费的理由(一般来讲都是能够为用户提供某种服务,以技术服务的形式来收费)。

修改自由:允许开发人员增加或删除软件的功能,但必须依然基于GPL许可协议授权。一句话,修改后必须以GPL授权开源发布。

13、Linux 发行版有哪些?各自的特点是什么?

RedHat注重性能和稳定性以及对硬件的支持。

Linux Mint在安装过程中你被允许从一个列表中选择桌面环境,并且你可以放心,一旦它安装完了之后,你还能播放音乐和视频文件,而无需任何额外的配置步骤,因为标准安装提供了多媒体解码器的开箱即用。

Debian主要用于服务器上,但现在它的桌面版本已经在功能和外观上得到了明显的改善。

Ubuntu安装映像包含Try Ubuntu功能,可以让你在硬盘真正安装之前尝试Ubuntu。

openSUSE既可作为一个滚动发布,又可当作是一个独立的定期发布版本

Fedora在领衔整合新的软件包版本和技术到发行版中

Mageia它的全安装DVD允许你在在多种桌面环境中选择,而不是强加一个给你。

Manjaro提供一个更舒适的安装和运行体验,预装了桌面环境,图形应用程序(包括软件中心)和用于播放音频和视频的多媒体解码器。

CentOS稳健性、稳定性、和100%二进制兼容性。

Arch Linux它是一个独立的开放源代码的发行版(这意味着它不基于任何其他的东西)。

Elementary OSElementary OS是基于Ubuntu的,所以它完全兼容代码仓库和软件包。

14、Linux 和windows 的区别?

windows平台:数量和质量的优势,不过大部分为收费软件;由微软官方提供重要支持和服务 
linux平台:大都为开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体验欠缺;有全球所有的Linux开发者和自由软件社区提供支持

·安全性

Windows平台:三天两头打补丁安装系统安全更新,还是会中病毒木马什么的,各位用户自己感受。 
Linux平台:要说linux没有安全问题,那当然是不可能的,不会中病毒什么的,也不可能,这一点仁者见仁智者见智,相对来说肯定比Windows平台要更加安全,使用linux你也不用装杀毒软件了。

15、Linux 文件类型有哪些?

普通文件(-)目录(d)字符设备(c)和块设备(b)套接口文件(s)符号链接(l)管道(p)

16、罗列 Linux 下文件操作的命令有哪些?(常见面试命令)

lscdmkdirrm-fbinsbindevetclibusrcp-rmvtarcvzftar xvzfreboot-o1,2,3)、-wall-wgccvim

17、如何配置 vim 编辑器?Linux 下还有哪些比较常用的文本编辑器?

首先进入命令行,按ai进入插入行进行编辑,编辑完成按esc键退出,按shift+:进入底行模式,wq+回车保存退出。

EmacsNotepad++TextMateSublime Text

 

18、如何压缩、解压文件?命令是什么?

解压:tar zxvf 文件名.tar.gz
压缩:tar zcvf 文件名.tar.gz DirName

19、gcc 编译器的优点有哪些?还知道哪些 C 的编译器?

GCC,跨体系结构很多Borland Turbo C 或称 Turbo C、Microsoft C 或称 MS C

 

20、什么是交叉编译器?交叉编译器的作用?为什么需要交叉编译?

在当前CPU平台下编译的程序可在其他CPU平台上运行。

在当前CPU平台下编译的程序可在其他CPU平台上运行。

不同的CPU,有不同的汇编不同的机器码。

21、C 语言中源文件到可执行文件经历哪几个步骤?每个步骤具体做哪些工作?

预处理:1、头文件展开。2、宏替换。3、条件编译。

编译:语法检查、语法分析。

汇编:把编译产生的.s文件转换成目标文件。

链接:

22#include <stdio.h>    #include “stdio.h”的区别?

搜索路径不同。#include <stdio.h> 在系统头文件目录下搜索,#include “stdio”先在当前文件目录下搜索,再到系统头文件目录下搜索。

 

23、分别阐述-I -w -Wall -O3  的作用?

-I:指定搜索路径

-w :关闭警告

-Wall:呈现全部警告

-O3 3级优化

24、什么是库文件?库文件的特点?

通常有静态库文件和动态库文件。编译后的库文件看不到源代码,可保密;同时不会因为不小心修改了函数而出问题,便于维护。

25、Linux 下库文件的分类有哪些?库文件的存放路径是什么?

静态库文件和动态库文件

库文件的存放路径:lib

26、静态库和动态库的区别?

静态库的代码在编译过程中已经被载入可执行程序,因此体积比较大。

动态库(共享库)的代码在可执行程序运行时才载入内存,在编译过程中仅简单的引用,因此代码体积比较小。

静态库和动态库的最大区别,静态情况下,把库直接加载到程序中,而动态库链接的时候,它只是保留接口,将动态库与程序代码独立,这样就可以提高代码的可复用度,和降低程序的耦合度。

静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库

动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在

27、如何制作和使用静态库和动态库?

gcc  -c  .c

ar rcs lib  .arc

gcc main .c  -l.

 

gcc -shared -FPIC -o

XX.so 源文件.c

gcc 源文件.c /XX.so -o

可执行文件名

28、GDB 的特点有哪些?

 

gdb (调试器)是Linux GNU计划的工具。

     (1)启动被调试程序;

     (2)让被调试程序运行;

     (3)查看变量值


29、分阐述 run break info break continue finish 用?

run:运行程序   break:停止程序  info break:查看断点信息    continue:继续(跳过的当前断点)    finish:让子函数运行完成

30、make 工程管理的作用?

提高编译程序的效率,一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪 些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操所系统的命令。

31、makefile 的语法是什么?(定义、执行顺序)

 

在各个子目录和当前目录中建立 mkdir Makefile,用vim对Makefile进行编写;

      三要素:目标,依赖,命令;执行命令需要依赖文件,会生成目标文件

                   格式:  目标:依赖

                          tab          命令 

       执行循序:由上而下执行;

32、企业级工程目录是如何创建?分别描述三个不同 makefile 的作用?

          总控 Makefile:将各个子目录下的 .o 文件链接生成可执行文件

    子目录 Makefile:将目录下的 .c 文件编译生成 .o 文件

    scripts 目录下的 Makefile:相当于C语言中的头文件定义了一些变量

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值