文章目录
  1. 1. 名词解释
  2. 2. 填空
  3. 3. 选择题:
  4. 4. 判断题
  5. 5. 简答题
  6. 6. 程序题目
    1. 6.1. java程序
    2. 6.2. C语言程

干了这杯冷咖啡

  • 课程名称:《嵌入式系统应用开发实践》
  • 考试时间: 2016年12月20日**星期二**(14:00——16:00)
  • 考试地点:**学思楼1-B205**

    A+B卷,复习更全面

名词解释

1.) 什么是bootloader?

在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态, 以便为最终调用操作系统内核准备好正确的环境``。因此整个系统的加载启动任务就完全由BootLoader来完成。

2.) 什么叫同步通信?什么叫异步通信?根文件系统?UDP?

  • 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 同步是阻塞模式
  • 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。异步是非阻塞模式
  • 根文件系统: Linux只有一个文件树,整个文件系统是以一个树根”/“为起点的,所有的文件和外部设备都以文件的形式挂结在这个文件树上,包括硬盘,软盘,光驱,调制解调器等,这和以”驱动器盘符”为基础的Windows系统是大不相同的。
  • UDP:用户数据报协议(英语:User Datagram Protocol,缩写为UDP),又称使用者资料包协定,是一个简单的面向数据报的传输层协议,正式规范为RFC 768。 在TCP/IP模型中,UDP为网络层以上和应用层以下提供了一个简单的接口

3.) 在QT里什么叫插槽?

信号和插槽用于2个对象之间的通信,信号和插槽是Qt的核心特征。插槽会在连接它的信号被激发时调用。插槽是普通C++函数。


填空

1.) 一般而言,嵌入式系统的构架可以分为4个部分:分别是( 处理器 )、存储器、输入/输出和软件,一般软件亦分为操作系统相关和( 应用软件 )两个主要部分

2.) 嵌入式系统使用的微处理器可以将嵌入式系统分为

  • 嵌入式微控制器
  • 嵌入式微处理器
  • 嵌入式DSP处理器
  • 片上系统(SOC)

3) 操作系统是连接硬件与应用程序的系统程序,其基本功能有:

  • 进程管理
  • 内存管理
  • 文件系统管理
  • IO资源管理

4.) 从嵌入式操作系统特点可以将嵌入式操作系统分为

  • 实时操作系统
    硬实时/软实时 操作系统
  • 分时操作系统

6.) 内核负责管理各个任务,或者为每个任务分配CPU时间并且负责任务之间的通信,内核的基本服务是:任务调度

7.) 嵌入式开发一般采用宿主机和目标机的开发方式,其中宿主机是指 台式机或PC机

8.) 串口通信中最少需要连接3条线.

9.) zigbee网络拓扑的3种类型:星形、树形、Mesh型

10.) CC2530 io的反向设置的时候0为输入,1为输出

11.) 传感器按数据类型可以分为:模拟量、开关量、数字量

12.) Linux操作系统下修改文件属性命令是
chmod

13.) 安卓的应用程序开发环境的搭建包括
安装JDK 及配置环境变量、Eclipse安装,
ADT的安装和安卓SDK的安装和配置

14.) 嵌入式系统的设计过程包括:需求分析、规格说明、体系结构设计、构件设计、系统集成和系统测试。

**15.)**按操作系统的分类可以知道DOS操作属于顺序顺序执行的操作系统,UNIX操作系统属于分时操作系统,VxWorks 属于实时操作系统

16.) 插槽用来接受信号可以看作是普通成员函数 可以直接被调用支持public、protect、private

**17.)**B/S架构的全称是 Browser/Server, 即浏览器/服务器结构.B/S的三层架构指的是:客户浏览端、Web端、服务器端

送分题

**18.)**CC2530 IO口功能设置的时候1为通用,0为专用

19.) 传感器按数据类型分类的话,分别是模拟量类型、开关量、数字量

20.) Linux建立一个文件目录的命令是:mkdir


选择题:

1.) CC2530是片上系统主核采用的是 8051 芯片

2.) CC2530采用无线通信的协议是: ZigBee

**3.)**TCP/IP协议中路由器工作的层次称之为: 网络层

4.) CC2530 的处理器SDRAM容量最大是: 8K

5.) CC2530有21 个数字IO引脚

6.) CC2530有 2个 串口(UART)

7.) 光照传感器,当无光线的时候,传感器的阻值是 最大

8.) 人体的红外传感器是 开关量

9.) 温湿度传感器是 数字量

10.) Linux中需要加载硬件的需要创建节点,创建节点的命令是: mknod

**11.)**近距离小于15m的通信采用有线的方式有:RS22

12.) TCP/IP协议中双绞线工作的层次称作为物理层

13.) 异步通信是靠起始位和停止位来实现字符的界定。故称为起止式协议


判断题

1.) 所有的电子设备都属于嵌入式设备 (错)

**2.)**冯诺依曼体系结构将被哈佛体系所取代 (错)

3.) 嵌入式Linux操作系统属于免费的操作系统 (对)

4.) 移植操作系统时需要修改操作系统中与处理器直接相关的程序 (对)

5.) USB2.0接口最大的通信数据最大是12M/S (错)


简答题

1.) 请说出嵌入式linux开发的一般流程

请分点回答

**1.**建立交叉编译器开发环境

**2.**配置开发主机:MINICOM、NFS网络文件系统

**3.**建立引导装载程序Bootloader

**4.**下载别人已经移植好的Linux操作系统

**5.**建立根文件系统

**6.**建立应用程序的Flash磁盘分区

**7.**开发应用程序

**8.**烧写内核、根文件系统、应用程序

2.) 列举Qt开发中常见的布局方法

  • (1)使用水平布局类QHBoxLayout
  • (2)使用垂直布局类QVBoxLayout
  • (3)使用网格布局类QGridLayout
  • (4)使用表格布局类QFormLayout;
  • (5)使用分组布局类QStackLayout

3.) 请你描述建立一个嵌入式开发平台的步骤

  • (1)连接主机和目标板

  • (2)使用flash工具烧写bootloader

  • (3)配置并启动主机的bootp服务

  • (4)配置并启动主机的tftp服务

  • (5)使用tftp下载内核及根文件系统镜像到目标板,重启目标板

  • (6)配置并启动NFS服务

  • (7)在目标板使用mount挂载主机的目录

  • (8)再次使用bootp命令确认bootp服务是否建立,使用tftp命令确认tftp服务建立。

  • (9)将内核镜像和根文件系统cp到tftp根目录。

  • (10)重启目标板,确认嵌入式linux正常启动。

4.) 简述物联网的架构

物联网体系架构分为3个层次:

  • 最上层——应用层:根据底层采集的数据,形成与业务需求相适应

  • 第二层网络层: 实现广阔的互联网功能。

  • 底层-感知层:用来感知数据的感知层

5.) 请你写出串口通信:9600,8,N,1

9600:波特率
8:数据位
N:无校验位(奇偶校验)
1:有1个停止位


/* B卷简答题 */

1.) 请列举linux中常见的字符设备和块设备名称

字符设备:键盘、鼠标、串口、LED

块设备:U盘、硬盘、SD卡

2.) 请你描述QT开发中信号与插槽的特点

当一个信号被发射,它所连接的槽会被立即执行,就像一个普通函数调用一样。 信号/槽机制完全不依赖于任何一种图形用户界面的事件回路。
当所有的槽都返回后 emit也将返回。如果几个槽被连接到一个信号,当信号被发射时,这些槽就会被按任意顺序一个 接一个地执行。

3.) 嵌入式开发环境中主要包括哪些组件?

 宿主机 
 目标机(评估电路板) 
 基于JTAG的ICD仿真器、或调试监控软件、或在线仿真器ICE 
 运行于宿主机的交叉编译器和链接器、以及开发工具链或软件开发环境  嵌入式操作系统

4.) 列出一个智能家具系统框架图

智能系统框架图

5.) 为什么在linux操作系统编译针对ARM处理器的时候,为什么需要引入交叉编译工具?

因为

**1.**在ARM上使用本地的编译器来编译程序会产生大量的中间文件,这会占用很大的内存和磁盘空间,通常ARM的CPU处理速度达不到编译程序的要求

**2.**宿主机和目标机的体系结构不同,在宿主机X86平台上可以运行的程序在目标机ARM平台上无法运行


程序题目

(2题,1个java程序一个C程序)(18分)

java程序

阅读下面问题,回答问题(10分)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import com.suninfoch2_1.R;
import android.os.Bundle;
...
public class LoginActivity extends Activity{
privae EdiText userName,passWord;
...
private SharedPreferences sp;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInsanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_login); //获取实例对象
sp=this.getSharedPreferences("userInfo",Context.MODE_WORLD_READABLE);
userName=(EdiText)findViewById(R.id.edt_userName);
......
final Intent intent=new Intent(this,SecondActivity.class);
//判断记住密码多选框的状态
......
if(userNameValue.equals("admin")&pwdValue.equals("admin")){
Toast.makeText(LoginActivity.this,"登入成功",Toast.LENGTH_SHORT).show();
startActivity(intent);
//登入成功且保存密码为选中状态时保存用户信息
if(rem_pw.isChecked()){
Editor editor=sp.edit();
......
editor.commit();
}}
else{
......
auto_login.setOnCheckedChangeListener(new OnCheckedChangeListener()
{ @Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){
if(auto_login.isChecked()){
System.out.println("自动登入已选中");
sp.edit().putBoolean("AUTO_ISCHECK",true).commit();
}else{
System.out.println("自动登入没有选中");
sp.edit().puBoolean("",false).commit();
}}});
}}

java题目照片01

java题目照片02

问题

(1) 语句 final intent intent=new Intent(this,SecondActivity.class)中Intent是什么意思?发回它作用的语句是什么?
答:

  • Intent:意图,主要用于android应用的各个组件之间的通讯。它包含发生请求的组件中的一组信息送给被请求的对象

  • 发回它作用的语句是startActivity(intent);

**(2)**该程序是通过什么方式存储用户和密码的?定义它的语句是什么,存储密码的语句是什么?
答:

  • 该程序使用使用SharedPreferences储存用户名和密码;

  • 定义它的语句是 private SharedPreferences sp;

  • 存储密码的语句

    1
    2
    3
    4
    5
    if(rem_pw.isChecked()){
    Editor editor=sp.edit();
    ......
    editor.commit();
    }}

B卷问题
(1) 语句 setContenView启什么作用?
答:
setContenView:

是设置一个Activity的显示界面,这句话就是设置这个这句话所在的Activity采用R.layout下的main布局文件进行布局,把登入窗体显示出来

(2) private SharedPreferences sp;的作用是什么?

答:使用这个SharedPreferences接口可以很容易的实现对设置值得保存和获取

(3) SecondActivity.class在什么情况下会启动?启动它的语句是什么?
答:登入成功时会启动;启动它的语句是startActivity(intent);

C语言程

**(1)**接收到什么字符串就停止接受?为什么?

答:接收到quite就退出因为strncmp将输入的缓冲流buff与quit对比如果相同则返回0,则结束循环关闭fd

**(2)**就本程序而言需要定义哪些宏?各代表什么意思?
答:

  • BUFFER_SIZE:buff数组长度
  • TARGET_COM_PORT:宏定义具体端口号

(3) read函数是什么功能?buff的数据来源于什么地方?4个参数的含义?
答:read是读函数,buff通过read函数读入;

文章目录
  1. 1. 名词解释
  2. 2. 填空
  3. 3. 选择题:
  4. 4. 判断题
  5. 5. 简答题
  6. 6. 程序题目
    1. 6.1. java程序
    2. 6.2. C语言程