首页 > 国际新闻

2018年摩拜校招嵌入式工程师笔试卷

文章作者:来源:www.ecnprime.com时间:2020-03-13



扩展:

嵌入式工程师题库(适用于着名工厂的笔试、软考试和计算机等级考试)

问题1:以下代码片段中存在哪些隐患或错误?

应答:

1。当调用get2(m)函数时,没有返回,也不是全局变量。new申请的内存地址不能被转出,m的实际值也不能被修改。

2。当调用函数m=get1()时,函数中定义的数组是一个局部变量,相应的内存将在函数结束时释放。因此,返回buf返回的地址无效。调用这样的地址会导致严重的错误。

3。调用memcpy(m,' aaa ',3)函数,m是一个int指针,而不是指针数组,未经允许将数据复制到无效的内存空间是非法的。

问题2:使用变量A给出以下定义:

指向整数的指针;

一个有10个指向整数的指针的数组;

一个指向10个整数数组的指针。

回答:

?问题3:简要描述SPI、IIC和UART接口之间的区别以及它们接收和发送数据的方法。

回答:

SPI:串行同步外设接口,全双工通信,SPI是一个同步协议接口,所有传输都参考一个公共时钟,这个同步时钟信号是由主机(处理器)产生的,接收数据的外设(从机)使用时钟来同步串行比特流的接收。可能有许多芯片连接到主机的同一个SPI接口。此时,主机通过触发从机的芯片选择输入引脚来选择接收数据的从机。未选择的外围设备将不参与SPI传输。

SPI主要使用4个信号:主输出/从输入(MOSI)、主输入/从输出(MISO)、串行SCLK或SCK和外围芯片(CS)。一些处理器具有特定于SPI接口的芯片选择,称为从机选择(SS)。

主机和外设都包含一个串行移位寄存器,主机通过向其SPI串行寄存器写入一个字节来启动传输。寄存器通过MOSI信号线向外设传输字节,外设也通过MISO信号线向主机返回其移位寄存器的内容,如下图所示。这样,两个移位寄存器的内容被交换。外设的写操作和读操作是同步完成的,因此SPI成为一种非常有效的协议。

IIC:内部集成电路总线,半双工通信,只需要两条线:串行数据SDA线和串行时钟SCL线。IIC主线使用两条线路连接多分支总线中的多个设备。该总线是双向的、低速的,并且与公共时钟同步。一个设备可以直接连接到IIC总线或从其上移除,而不会影响其他设备。

使用IIC接口连接设备的两条线是SDA(串行数据)和SCL(串行时钟)。它们都是开漏极,并通过上拉电阻连接到正电源。因此,它们在不使用时可以保持高水平。IIC总线在数据传输过程中有三种信号,分别是起始信号、结束信号和响应信号。分析如下:

当启动信号: SCL为高电平时,SDA从高电平跳到低电平,开始数据传输;当

end信号: SCL处于低电平时,SDA从低电平转换到高电平,结束数据传输;

响应信号:接收8位数据后,接收数据的集成电路向发送数据的集成电路发送一个特定的低电平脉冲,表示数据已被接收。在向受控单元发送信号后,中央处理器等待受控单元发送响应信号,在接收到响应信号后,中央处理器根据实际情况判断是否继续发送信号。如果没有接收到响应信号,则判断受控单元出现故障。

发送方发送的每个字节都必须得到接收方的确认。一旦每个字节的第8个数据位被传送,发送方释放数据线SDA。然后,主机在SCL产生一个额外的时钟脉冲,通过将SDA设置为低电平,触发接收器向接收的字节进行指示。如果接收方未能将SDA设置为低电平,发送方将中断传输并采取适当的错误处理措施。

UART:通用异步发送器-接收器发送器,全双工通信,异步传输将每个字符作为独立信息并按照固定和预定的定时发送,但字符之间取决于字符和字符的任何定时。UART负责处理数据总线和串行端口之间的串行/并行、并行/串行转换,并定义帧格式。只要通信双方采用相同的帧格式和波特率,他们就可以仅用两条信号线(Rx和Tx)完成通信过程,而无需共享时钟信号。因此,它也被称为异步串行通信。

扩展学习:RS232、RS485、RS422、串行端口和握手的详细说明

问题4:选择以下无线通信模式之一,尽可能详细地描述它:ble、无线网络、近距离通信、物联网、eMTC。

回答:

举两个例子,互联网上有很多分析。

BLE:低功耗蓝牙,2.4千兆赫的ISM频段,IEEE 802.15.1标准,采用多种智能方式将功耗降至最低。蓝牙低功耗技术使用可变的连接时间间隔,根据具体应用,该间隔可以设置为几毫秒到几秒。此外,由于BLE技术使用非常快速的连接方法,它平时可以处于“断开”状态(节能)。此时,链接的两端只相互认识,只有在必要时才打开链接,然后在最短的时间内关闭链接。BLE技术的工作模式非常适合从其他外围设备传输数据,例如微型无线传感器(每半秒钟交换一次数据)或使用完全异步通信的遥控器。这些设备发送很少的数据(通常是几个字节)和很少的次数(例如每秒几次到每分钟一次甚至更少)。

扩展:关于物联网技术发展历史、实战发展背景和物联网综合项目平台的非正式讨论

主题5:尝试描述MQTT、CoAP和HTTP协议之间的差异。

回答:

请参阅:物联网协议比较(HTTP、websocket、XMPP、COAP、MQTT和DDS协议)

问题6:尝试描述TCP建立和断开时的三次握手和四波。

回答:

三次握手(Tri-Way Handshake)是指建立TCP连接时,客户端和服务器总共需要发送3个数据包来确认连接的建立,如下图所示:

第一次:客户端向服务器发送请求,服务器知道客户端正常发送和接收请求。SYN=1,seq=x;

第二次:服务器将其发送给客户端。客户端知道它的发送和接收是正常的,而服务器的接收和发送是正常的。ACK=1,ack=x 1,SYN=1,seq=y;

第三次:客户端向服务器发送:服务器知道客户端发送和接收正常,接收和发送正常。seq=x 1,ACK=1,ack=y 1。当

Four-Way Wavelhand终止了TCP连接时,客户端和服务器总共需要发送4个数据包来确认断开,如下图所示:

第一次:客户端请求断开FIN,seq=u

第二次:服务器确认客户端的断开请求ACK,ack=u 1。Seq=v

第三次:服务器请求断开FIN,seq=w,ack,ack=u 1

第四次:客户端确认服务器的断开ACK,ack=w1,seq=u1

问题7:长度为n的无序数组,求最小值,请用c语言代码实现以下功能

?回答(用C语言写):

问题mobike的工厂生产由两个过程组成。过程A每隔5分钟产生一个mobike。生产完成后,送至流程B进行测试,每隔1分钟测试一次。如果测试失败,需要将其返回到流程A进行复制。尝试多线程(多任务)机制,实现上述生产流程,最大化生产能力。

回答:

由于时间原因,后续更新。