[问题1]
1)检查程序中.h文件所在的目录,将其加入系统PATH中; 2)执行C编译:#gcc [源文件名] -o [目标文件名]
3)改变目标文件为可执行文件:#chmod +x [目标文件名]
4)如需将多个可执行文件连续执行,可用vi生成批处理文件,最后记得将该批处理文件属性改为可执行(同上一步) [问题2]
调试:在编译时使用-g参数,就可以使用gdb进行调试。
6、 什么是交叉编译,为什么要用使用交叉编译 答:
简单地说,交叉编译就是在一个平台上生成在另一个平台上执行的代码。这里的平台包括体系结构(Architecture)和操作系统(OS)。同一个体系结构可以运行不同的操作系统,同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,x86 Linux平台是Intel x86 体系结构和Linux for x86操作系统的统称。
使用交叉编译的原因主要有两个:一是目标平台所需要的bootloader以及OS核心还没有建立时,需要作交叉编译。二是目标机设备不具备一定的处理器能力和存储空间,即单独在目标板上无法完成程序开发,所以只好 求助宿主机。这样可以在宿主机上对即将在目标机上运行的应用程序进行编译,生成可以在目标机上运行的代码格式,然后移植到目标板上,也就是目前嵌入式程序开发的Host/Target模式。
7. 简述进程的启动、终止的方式。 答:
在Linux中启动一个进程有手工启动和调度启动两种方式: (1)手工启动
用户在输入端发出命令,直接启动一个进程的启动方式。可以分为: ①前台启动:直接在SHELL中输入命令进行启动。
②后台启动:启动一个目前并不紧急的进程,如打印进程。 (2)调度启动
系统管理员根据系统资源和进程占用资源的情况,事先进行调度安排,指定任务运行的时间和场合,到时候系统会自动完成该任务。
8、简述进程调度的功能 参考答案:
进程调度的功能包括:
(1)记录系统中所有进程的执行状况;
(2)根据一定的调度算法,从就绪队列中选出一个进程来,准备把CPU分配给它; (3)把CPU分配给进程。将原来运行的进程的状态保存,并将新选择的进程的运行环境载入寄存器。
9. 简要描述嵌入式Web服务器的系统结构(可用图描述),并简单描述客户机与服务器的交互过程。 答:系统结构见图
工作过程:
1、客户机利用浏览器使用TCP/IP协议,与服务器建立连接,发送URL请求;
2、HTTP引擎使用一定的应用接口技术(如CGI)根据客户机传递的参数进行相应的信息处理,比如,交给一定的嵌入式设备进行处理。
3、应用接口技术将处理结果返回给HTTP引擎,从而得到动态数据信息。HTTP引擎也可以通过静态Web页面得到静态数据信息。
4、HTTP引擎使用TCP/IP协议栈把处理结果返回给客户机。
10. bootloader有哪些操作模式,具体说明两种方式 答:
大多数BootLoader都包含两种不同的操作模式。“启动加载”模式和“下载”模式,这种区别仅对于开发人员才有意义。但从最终用户的角度看,BootLoader的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。
启动加载(Boot loading)模式:这种模式也称为“自主”(Autonomous)模式,也即BootLoader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是BootLoader的正常工作模式。因此在嵌入式产品发布的时候,BootLoader显然必须工作在这种模式下.
下载(Down loading)模式:在这种模式下 目标机上的BootLoader将通过串口连接或网络连接等通信手段从主机下载文件,比如:下载应用程序、数据文件、内核映像等.从主机下载的文件通常首先被BootLoader保存到目标机的RAM中然后再被BootLoader写到目标机上的固态存储设备中。BootLoader的这种模式通常在系统更新时使用。工作于这种模式下的BootLoader通常都会向它的终端用户提供一个简单的命令行接口
三、问答题
请下列shell程序加注释,并说明程序的功能和调用方法: #!/bin/sh #
# /etc/rc.d/rc.httpd #
# Start/stop/restart the Apache web server. #
# To make Apache start automatically at boot, make this # file executable: chmod 755 /etc/rc.d/rc.httpd #
case \ 'start')
/usr/sbin/apachectl start ;; 'stop')
/usr/sbin/apachectl stop ;; 'restart')
/usr/sbin/apachectl restart ;; *)
echo \esac 答: 1)程序注释
#!/bin/sh 定义实用的shell #
# /etc/rc.d/rc.httpd 注释行,凡是以星号开始的行均为注释行。 #
# Start/stop/restart the Apache web server. #
# To make Apache start automatically at boot, make this # file executable: chmod 755 /etc/rc.d/rc.httpd #
case \结构开始,判断“位置参数”决定执行的操作。本程序携带一个“位置参数”,即$1
'start') #若位置参数为start
/usr/sbin/apachectl start ;; #启动httpd进程 'stop') #若位置参数为stop
/usr/sbin/apachectl stop ;; #关闭httpd进程 'restart') #若位置参数为stop
/usr/sbin/apachectl restart ;; #重新启动httpd进程 *) #若位置参数不是start、stop或restart时
echo \显示命令提示信息:程序的调用方法 esac #case结构结束
(2)程序的功能是启动,停止或重新启动httpd进程 (3)程序的调用方式有三种:启动,停止和重新启动。
四、设计题
用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。 答: #!/bin/sh FILENAME=
echo “Input file name:” read FILENAME if [ -c \ then
cp $FILENAME /dev fi
嵌入式实时系统试卷及答案
一、概念题(20%)
1、简述EMCU
答:EMCU(Embedded Microcontroller Unit)嵌入式微控制器的简称,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成
ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等各种必要的功能和外设。 2、简述MPU
答:MPU(Microprocessor Unit)特指嵌入式微处理器,包括算术逻辑单元和控制单元,在应用中,将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的母板功能,这样可以大幅度地减小系统体积和功耗。 3、简述DSP
答:DSP(Digital Signal Processor),数字信号处理器,一种特别用于快速处理数字信号的微处理器。DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。 4、简述SOPC
相关推荐: