写出下列英文缩写的中文含义:USB RIOS RISC TCP IPC GPIO
USB:通用串口总线
RTOS:实时操作系统
RISC:精简指令集计算机 s
TCP:传输控制协议
IPC:进程间通信
GPIO:通用输入输出
比较嵌入式系统与通用计算机的区别
耗能小、体积小、专用性强;融合了计算机技术、半导体技术和电子技术,技术密集、资金密集的知识集中系统;软硬件设计要求高效精简;空间资源相对不足,所以软件存放在存储芯片而非磁盘;本身不具备开发能力
中断处理经过了哪几个阶段
禁止其他中断;
保存上下文;
中断处理程序;
中断服务程序;
恢复上下文;
允许新的中断
寄存器Load/Store指令 STR LDR
Load:LDR 将存储器中的数据读入寄存器当中
Store:STR 将寄存器中的数据保存到存储器当中
什么是交叉编译?为什么要使用交叉编译?
交叉编译是指在一个平台上编译可以在其他平台上运行的代码
因为对于嵌入式系统而言,它的空间和资源相对不足无法运行开发和调试工具
根据对Bootloader的理解,简要设计stage1和stage2需要完成的功能
Stage1:
1)初始化硬件设备
2)为加载stage2准备RAM空间
3)复制stage2到RAM
4)设置堆栈指针sp,为stage2使用C语言做准备
Stage2:
1)使用C语言实现更复杂的功能和更好的代码可读性和可植性
2)初始化本阶段的硬件,在初始化之前可以打印一些信息
3)检测系统的内存映射
4)加载内核映像和根文件系统映像
5)设置内核启动参数
什么是进程?怎么区别子进程和父进程?
进程是指一个具有独立功能的程序一次动态执行的过程;
子进程的返回值为0,父进程的返回值为子进程的PID
什么是僵尸进程?什么是孤儿进程?
僵尸进程:僵尸进程是指它的父进程已经退出(父进程没有等待(调用wait/waitpid)它),而该进程dead之后没有进程接受,就成为僵尸进程,也就是(zombie)进程。
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。
什么是进程描述符?怎样获得进程描述符?
进程描述符是非零的正整数,通过getpid()这个函数获得当前进程的PID
Socket类型有哪三类,简单描述
字节流套接字:基于TCP协议的连接和传输方式,能提供通信流,保证数据传输的正确性和顺序性。
数据报套接字:基于UDP协议的连接和传输方式,定义的是一种无连接服务,数据通过相互独立的提出报文进行传输。
原始套接字:运行是对于底层协议直接访问,能提供能量。
简单说明TCP和UDP协议有什么区别
TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,发送数据要经过三次握手。
UDP协议是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单信息传送服务。它发送数据宝不必等待接收端响应,速度比较快。
Linux内核的功能由哪几个部分组成?
进程管理、内存管理、文件管理、设备控制、网络功能
设备驱动程序的作用是什么?
设备驱动是操作系统的一部分,主要作用是让操作系统正确识别和使用设备
简要说明用户应用程序与Linux设备驱动程序之间的区别
用户应用程序有main函数,从头到尾只执行一次任务,而设备驱动程序没有main函数,他只能通过用户空间的insmod指令将设备驱动程序的初始化函数加入内核中,在内核执行初始化函数实现驱动程序的初始化和注册,驱动之后停止,等待用户应用程序的调用。
用户应用程序在用户空间执行,而设备驱动程序在内核运行
字符设备驱动程序开发的流程主要是什么?
1)编写设备接入点
2)编写设备驱动程序
3)编写Makefile文件,编译设备驱动程序
4)编写用户程序,编译用户程序
5)加载设备驱动程序
6)运行用户应用程序