1.DCS

答:DCS一般指分散控制系统。 分散控制系统是以微处理器为基础,采用控制功能分散、显示操作集中、兼顾分而自治和综合协调的设计原则的新一代仪表控制系统。集散控制系统简称DCS。也可直译为“分散控制系统”或“分布式计算机控制系统”。

2.FreeRTOS 优先级设置

答:FreeRTOS 操作系统是设置的数值越小任务优先级越低

3.全双工和半双工的区别?

答:全双工和半双工的区别是传输过程不同以及速度不同等。

1、半双工是指传输过程中同时只能向一个方向传输.一方的数据传输结束之后,另外一方再回应。

2、全双工是指两方能同时发送和接受数据。在这种情况下就没有拥堵的危险,数据的传输也就更快。

4.FreeRTOS任务调度的方式

答:FreeRTOS 操作系统支持三种调度方式:抢占式调度,时间片调度和合作式调度。 实际应用主要是
抢占式调度和时间片调度,合作式调度用到的很少。

拓展:
 抢占式调度
每个任务都有不同的优先级,任务会一直运行直到被高优先级任务抢占或者遇到阻塞式的 API 函数,
比如 vTaskDelay。
 时间片调度
每个任务都有相同的优先级,任务会运行固定的时间片个数或者遇到阻塞式的 API 函数,比如
vTaskDelay,才会执行同优先级任务之间的任务切换。
在小型的嵌入式 RTOS 中,最常用的的时间片调度算法就是 Round-robin 调度算法。这种调度算法
可以用于抢占式或者合作式的多任务中。另外,时间片调度适合用于不要求任务实时响应的情况

5.FreeRTOS中各个任务访问同一资源,怎么保证不冲突

答:任务间的通信和同步机制

在裸机编程时,使用全局变量的确比较方便,但是在加上 RTOS 后就是另一种情况了。 使用全局变量相比事件标志组主要有如下三个问题:

1、使用事件标志组可以让 RTOS 内核有效地管理任务,而全局变量是无法做到的,任务的超时等机制需
要用户自己去实现。
2、使用了全局变量就要防止多任务的访问冲突,而使用事件标志组则处理好了这个问题,用户无需担心。
3、使用事件标志组可以有效地解决中断服务程序和任务之间的同步问题。

拓展:
事件标志组:事件标志组是实现多任务同步的有效机制之一。 每创建一个事件标志组,用户可以使用的事件标志是
24 个。
消息队列:重要的通信机制 。个或者多个任务可以通过 RTOS 内核服务从队列中得到消息。通常,先进入消息队列的消息先传
给任务,也就是说,任务先得到的是最先进入到消息队列的消息,即先进先出的原则(FIFO),FreeRTOS
的消息队列支持 FIFO 和 LIFO 两种数据存取方式。
信号量:计数信号量 + 二值信号量
计数信号量:任务间的同步和资源共享机制 。
平时使用信号量主要实现以下两个功能:
(1)两个任务之间或者中断函数跟任务之间的同步功能,这个和前面章节讲解的事件标志组是类似的。其实就是共享资源为 1 的时候。
(2)多个共享资源的管理,就像机房上机的例子 。(多个资源可以被多个任务访问的情况,是什么情况呢?)
二值信号量:当共享资源为一个时,和多值信号量一样,和事件标志组类似,只是它最多有24的标志(相当于创建24个二值信号量)。
互斥信号量:,通二值信号量类似,但是它有优先级继承(Priority inheritance)的功能,这样就有效地防止出现优先级翻转的问题 。

6.FreeRTOS是怎么实现任务的现场保护的

答:freertos在初始化的时候,会占用一块静态内存,作为操作系统用的栈,然后在这个栈上面进行入栈 出栈操作,在任务调度的时候,会将之前那个任务的局部变量存到这些栈里面

freertos对全局变量加上互斥,主要是防止两个任务同时对这个全局变量修改和读取,导致任务之间的数据出现错误,所以一般都是要加上对应的互斥量的

7.RS232与RS485的区别

8.为什么要使用嵌入式实时操作系统?什么情况下需要使用嵌入式实时操作系统?

(1)操作系统可以降低开发难度。

操作系统协调了不同功能程序以让他们共同完成同一个工作。同时操作系统又隔离了各个功能程序让它们的耦合程度降低。这样就方便设计人员编写各个功能模块,同时整个系统的结构也更加清晰。特别是系统逻辑结构复杂,功能模块较多的情况下操作系统的这一优点体现的更加明显。

同时,由于用任务划分整个流程,编写程序的时候逻辑以及时序会相对简单。只需要考虑单个任务所完成的功能,不用过多的考虑人物之间的耦合关系。

(2)增加代码可读性。给后续代码维护带来方便。

使用操作系统。可对代码进行层次管理,驱动归驱动,应用层归应用层。而且任务里的功能都很明显。每个任务的优先级,执行周期都是可以预期的。程序比较庞大的时候,拥有操作系统的程序的可读性将远远高于裸奔的芯片。(详情可以看看multiwii飞控的程序。。)

(3)增加代码可移植性。

使用操作系统的时候,每个任务的执行时间,优先级,延时的长短。也就是大部分逻辑方面,操作系统中都已经设定好了。且对需要处理的事分成多个任务处理。每个任务相对独立。当需要对代码进行移植的时候,只需要将操作系统移植,然后再将驱动程序移植就基本可以完成原功能。若未使用操作系统,移植一个逻辑,时序较为复杂的代码将是一场灾难。。

(4)需要用到操作系统的情况一般都是:

【1】需要同时处理多个任务(其实就是做到非阻塞);

【2】对实时性要求较高(各式各样的中断处理);

【3】mcu用得起操作系统(资源太少就别想了那么多,费力不讨好)

9.串口通讯,9600bit/s的波特率,数据格式是8,N,1, 请问一秒可以传输多少个字节的数据

答:波特率通常单位是bit/s,也就是 二进制位/秒

无校验位时9600/(8+1+1)=960bit(有校验位时8+1+1应该再加 1)

拓展:
CAN波特率的常用单位Kbps(每秒千比特),也就是kbit/s

10.Linux中进程和线程的区别

答:进程是具有一定独立功能的程序关于某个数据集的划分尺度小于进程,使得多线程程序的并发性高;

(1)一个程序至少有一个进程,一个进程至少有一个线程;

(2)线程的划分尺度小于进程,使得多线程程序的并发性高;

(3)进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率;

(4)每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制;

(5)从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这是进程和线程的重要区别。

嵌入式软件面试问题总结相关推荐

  1. 深入了解ESP8266WIFI模块的工作原理及特点---AT指令详解---透传概念----TCP和UDP的特点与区别-嵌入式软件面试常问

    ESP8266-AT指令--透传--TCP-UDP 我们来先认识一下ESP8266模块: 模块实物图 资源介绍 原理图 功能介绍 无线组网 SoftAP: Station: SoftAP + stat ...

  2. 嵌入式软件面试经历分享(海康威视涂鸦智能)

    本人一个垃圾大学学渣,毕业就一直干着嵌入式软件开发,这次换工作也是深思熟虑后的一个选择.面试了两家公司都拿到了Offer,还是极大增强了我的信心.同时,在面临抉择的时候也是一个艰难的过程. 海康威视面 ...

  3. 嵌入式软件面试准备与知识点总结

    基本准备步骤:     1,花时间将自己做过的项目整理一遍,基本的架构用图画出来,用到的知识,自己遇到的问题,怎么解决的自己梳理一遍,还有自己觉得自己做的比较好的部分也可以在简历上重点突出.一定要熟悉 ...

  4. 海康嵌入式软件面试经验(已拿offer)

    本科双非,计算机类专业学渣,0实习经历,复习考研的时候学了一遍408,强化阶段学的心态崩了就边复习边投简历,之前投了好几次体面厂的测试岗都没进面试,投开发岗反而进了. 7.23官网投递简历 7.25接 ...

  5. 华为社招嵌入式软件面试_华为嵌入式软件开发面试经验

    面试过程: 本人是国内211,985高校的CS专业小硕,成绩还算凑合.去年十月份就感到临近毕业的焦虑,心里着急投了一堆简历,结果大部分都石沉大海.有几家公司给了反应,面试时才发现自己知识的薄弱.然后我 ...

  6. 华为社招嵌入式软件面试_华为OD社招面试(技术二面完)--总结复盘

    一.华为OD简介: 首先来解释一下什么是华为OD面试,OD一般是指的是华为的"外包"公司,比如像德科这种.网上其实有很多人都吐槽过这个招聘模式,因为招进去的人不直接是华为内部的人, ...

  7. 汽车嵌入式软件面试问题整理

    最近面了几场试,整理一下面试问题.面试问题中有一些能在网上比较方便的找到答案,我就不写如何回答了,对于一些非固定答案的问题,我会写一写我的理解,供大家参考. 一.RTOS 1. μC/OS中的Time ...

  8. Linux嵌入式软件面试整理

    嵌入式Linux软件工程师面试题一 题一,同步和异步有啥区别?  题二,TCP与UDP有啥区别?  题三,进程和线程有啥区别? 题一答案: 同步(Sync):所有的操作都做完,才返回给用户.这样用户在 ...

  9. 华为社招嵌入式软件面试_社招|华为嵌入式社招面经分享

    作者:北京周末相亲会 来源:牛客网 先介绍一下基本情况:本人2018年本科毕业,在原公司工作了差不多一年,受疫情影响,打算跳槽,然后就开始投简历.后面收到华为的面试通知,都是线上面试,下面给大家分享一 ...

  10. 朗驰欣创——嵌入式软件面试

    我是校招投的朗驰欣创,然后宣讲会的时候就进了我们学校的校招群,再做了嵌入式红外的笔试题后(一个工作日)就被电话通知去面试.也是秋招找工作的第一次面试,冲冲冲. 面试时间是上午的10点钟,然后我提前半个 ...

最新文章

  1. 矛与盾:二进制漏洞攻防思想对抗
  2. ans_rproxy 说明
  3. 实际开发什么场景用到线程池_线程池的具体业务场景分析
  4. 【算法】《algorithm-note》算法笔记中文版正式发布!
  5. 剑与远征新海盗版本10章怎么去过?Boss也会随着章节、等级提升
  6. linux下的二进制文件的编辑和查看
  7. 光纤传感器实验模块_飞秒激光制备异质光纤光栅的温度应变双参数传感器
  8. 如何有效申请TI的免费样片
  9. Solr 新增、更新、删除索引
  10. Learnopengl
  11. git提交代码到github
  12. Chrome开发者工具插件
  13. 利用ENVI自带全球DEM数据计算区域平均高程
  14. 记账时,如何对开销进行分类
  15. 步数精灵v4.0霸占好友排行榜首位 安卓版
  16. iPhone上塔罗牌测试软件,塔罗牌占卜:测Ta对你是用情至深还是一时兴起?准到没朋友!...
  17. 拒绝从网络访问这台计算机 注册表,拒绝访问的解决方法
  18. 你还在“朋克式”养生?快来看看美莱的熬夜补救指南吧!
  19. 视频编解码之常见GOP结构
  20. springboot +mybatis实现多表一对一查询

热门文章

  1. 案例-旋转中心(CSS3)
  2. 汇编语言复习~作业一(下)
  3. LinkButton的样式设置(背景图片问题)
  4. 瑞萨E1仿真器(R0E000010KCE00)支持的MCU系列--V850 Family
  5. [享学Jackson] 四、控制Jackson行为的特征们之JsonFactory.Feature、JsonGenerator.Feature、JsonParser.Feature
  6. python爬虫实战小项目
  7. 理解Object.assign
  8. Python “ValueError: incomplete format” upon print(“stuff %” % “thingy”) 解决方法
  9. 歪写数学史(只要真理——罗巴切夫斯基)
  10. 读《图解密码技术》(三):密钥、随机数和应用技术