嵌入式基础知识总结


前言

       本篇为嵌入式知识点总结,花费了大概一两天时间整理的,现在分享给大家!!!


一、选择题

1.以下哪个不是嵌入式系统的特点?( )
A.面向特定应用 B.高质量高可靠
C.可裁剪性 D.具备二次开发能力

解析:嵌入式系统本身不具备二次开发能力,即设计完成后用户通常不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行再次开发。

2.下列产品中不属于嵌入式系统的是( )
A.无线鼠标 B.数码相机
C.个人笔记本 D.行车记录仪

解析:常见的嵌入式产品:数码相机、手机、PDA、路由器、鼠标、键盘,扫描仪、打印机

3.栈是一种数据结构,对其最常见的操作为“压栈”和“出栈”,其出入规则是( )。
A.可以保护现场 B.先进后出
C. 对其最常见的操作为“压栈”和“出栈” D.只出不进

解析:栈是一种数据结构,对其最常见的操作为“压栈”和“出栈”,其出入规则先进后出。

4.ARM 是基于__架构的___位处理器。
A.CISC,16 B.RISC,32  C.RISC,16 D.CISC,32 

解析:ARM 是基于32位,RISC处理器结构。

5.在Ubuntu操作系统中,把一行程序注释掉可以是( )。
A.// B.* C./ D.~

解析://为注释

6.Vi编辑器,当前处于插入模式,如果想保存退出vi,则( )。
A.使用“:q!”命令 B. 先按ESC键,使用“:wq!”命令
C.使用“:wq!”命令 D.先按ESC键,使用“:q!”命令

解析:先按ESC键,使用“:wq!”

7.Linux下,将/mnt/hgfs/file.c复制到目录/home/nfs下的命令( )。
A.cp file.c /home/nfs B.cp /file.c /home/nfs
C.cp /mnt/hgfs/file.c /home/nfs D.cp /home/nfs /file.c /mnt/hgfs/

解析:cp +当前文件路径 +复制后文件路径

8. 关于进程,描述错误的项是( )。
A.fork()函数执行一次返回一个值
B.使用fork()函数可以生成子进程
C.父进程为子进程“收尸”
D.在父子进程可各自执行不同的任务

解析:执行一次返回两个值。
fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:
(1)在父进程中,fork返回新创建子进程的进程ID;
(2)在子进程中,fork返回0;
(3)如果出现错误,fork返回一个负值。

9.文件filename的权限是664,文件的用户所有者对其操作权限是( )。
A.rw- B.r-x C.-wx D.–x

解析:421分别代表读(r)写(w)执行(x)
第一个数字代表文件所有者(Owner),用户组(Group),其他用户(other Users)

10.把file.c文件,编译成一个可以在开发板上执行的程序file,其命令是( )
A.gcc file.c B.arm-linux-gcc file.c
C.gcc file.c -o file D.arm-linux-gcc file.c -o file

解析:arm-linux-gcc为交叉编辑工具

二、填空题

1.嵌入式系统总体上是有硬件和()两大部分组成,其中硬件的核心是()。

答案:软件 微处理器

2.ARM处理器有()和ARM两种工作状态。

答案:Thumb
解析:ARM处理器的两种工作状态:
1、ARM状态:32位,ARM状态执行字对齐的32位ARM指令。
2、Thumb状态,16位,执行半字对齐的16位。

3.ARM 存储器中,数据的高字节存放在低地址,是() 存储方式, 数据的低字节存放在低地址,是() 存储方式。

答案:大端存储 小端存储
解析:大端存储:大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放。
          小段存储:小端模式, 是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内在的低地址中,这种存储模式将地址的高低和数据位 权有效结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致;

4.为了获得线程本身ID号的函数是()。

答案:pthread_t pthread_self();
解析:Linux下获取当前线程ID号函数:pthread_t pthread_self();
返回:当前线程的ID号

5. 将套接字和某个地址绑定是用()函数。

答案:bind();
解析:int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen);

6. 在Ubuntu中,一般用()命令来检查主机间网络连通情况。

答案:ping命令

7. 网络编程时涉及的传输层协议是()和()。
答案:TCP UDP

三、简答题

1.列举国产的嵌入式处理器和国产的操作系统(每个列举3种)。

答案: 处理器:飞腾(ARM)、海思(ARM)、展讯(ARM)
操作系统:统一操作系统(UOS) 深度Linux (Deepin) 优麒麟(UbuntuKylin)

2.写出3种进程间通信的方式。

答案:消息队列 信号 套接字( socket )
管道、消息队列、共享内存、信号及信号集等

3.解释写出下列专业术语的含义:(1)ARM (2)CISC (3)SPSR。

答案:ARM:ARM处理器
CISC:复杂指令集计算机
SPSR:程序状态保存寄存器

4.解释ssize_t write (int fd, const void * buf, size_t count);中各参数的含义。

答案:fd:是文件描述符(write所对应的是写,即就是1)
buf:通常是一个字符串,需要写入的字符串
count:是每次写入的字节数

四、综合题

1.对文件进行打开,写入,读取,关闭等操作
请大家务必掌握open(),close(),write(),read()等函数
2.(1)SIGQUIT ----ctrl+\
            SIGINT------ ctrl+c
   (2)I have get SIGQUIT
            I have get SIGINT

多线程编程

主要功能要求:创建两个线程,线程1,执行函数func1,打印自己的姓名信息 ;线程2,执行函数func2,打印自己的学号信息;线程执行完退出。
代码如下:

#include <stdio.h>
#include <pthread.h>
void *func1(void)
{
    
    
  printf("chenfeifan!!!");
}
void *func2(void)
{
    
    
  printf("201805090213");
}
int main()
{
    
    
  int i=0,ret=0;
  pthread_t id1,id2;
  ret=pthread_create(&id1,NULL,(void*)func1,NULL);
  if(ret) {
    
    printf("Create pthread1 error!\n");return 1;}
  ret=pthread_create(&id2,NULL,(void*)func2,NULL);
  if(ret) {
    
    printf("Create pthread2 error!\n"); return 1;}
  pthread_join(id1,NULL);
  pthread_join(id2,NULL);
  return 0;
}

运行结果如下:
在这里插入图片描述


总结

      整理部分内容仅是嵌入式基础内容,如想深入学习建议进行系统学习。
未经本人许可,不得转载!!!

猜你喜欢

转载自blog.csdn.net/weixin_44935259/article/details/112068212