1、下面( B )特性不符合嵌入式操作系统特点。
A、实时性
B、不可定制
C、微型化
D、易移植
2. ARM嵌入式系统中,PC指向的是正在(C )的指令地址。
A 执行
B 译码
C 取指
D 都不是
3. ARM系统处理16-bit数据时,对应的数据类型是( B )。
A Byte
B Halfword
C Word
D 三者都不是
4、32位数0x12345678用小端格式表示,则在AXD调试器下观察数据在内存中分布的情况是(B)
A 12 34 56 78
B 78 56 34 12
C 21 43 65 87
D 87 65 43 21
5、以下ARM异常中,优先级最高的是(D )。
A Data abort
B FIQ
C IRQ
D Reset
6、哈佛结构和冯诺依曼结构的区别是( A)
A 指令和数据分开存储
B 不需要程序计数器
C 统一编址
D 单一数据总线
7.二极管具有单向导通性。该说法( A )
A.正确
B.错误
8. DSP是专门用于数字信号处理方面的处理器。该说法( A )
A.正确
B.错误
9. Nand Flash的特点是应用程序可以直接在闪存中运行,不需要把代码读到系统RAM中。该说法( B )
A.正确
B.错误
10、同CISC相比,下面哪一项不属于RISC处理器的特征_ D
A、采用固定长度的指令格式,指令规整、简单、基本寻址方式有2~3种。
B、减少指令数和寻址方式,使控制部件简化,加快执行速度。
C、数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率,同时简化处理器的设计。
D、RISC处理器都采用哈佛结构
11. ARM920T字必须是( B )字节边界对准。
A.2
B.4
12. S3C2410时钟和功率管理模块由( ABC )组成。
A。时钟控制
B.USB控制
C.功率控制。
13.根时钟源选择有关的引脚包括( CD )。
A.OM1
B.OM2
C.OM3
D.OM4
14.根引导方式选择有关的引脚包括( AB )。
A.OM1
B.OM2
C.OM3
D.OM4
15. S3C2410 若想设置FCLK为208.80MHz,应设置( D )。
A. CKTIME
B. CLKSLOW
C. CLKDIVN
D. MPLLCON
16.(填空)(MPLL)(英文)用于CPU及其他外围器件(UPLL用于USB 48MHZ)用于产生FCLK, HCLK, PCLK三种频率,这三种频率分别有不同的用途。
17.( C )是为AHB总线提供的时钟信号, Advanced High-performance Bus,主要用于高速外设,比如内存控制器,中断控制器,
A. FCLK
B. PCLK
C. HCLK
18. 英倍特EduKit-IV S3C2410实验箱,供主板I/O 端口使用的电压是( B )。
A. 1.8V
B. 3.3V
C. 5V
D. 12V
16. DRAM中的存储单元内容在通电状态下随着时间的推移会丢失,因而,其存储单元需要定期的刷新。CPU与其接口的信号线除了有与SRAM相同的信号线外,还有(填空1)(RAS)(英文)信号线和(填空2)(CAS)(英文)信号线。需要这些信号的原因是可以减少芯片地址引脚数,并且方便刷新操作。
1、下面哪条命令可用来确保文件“myfile”存在( B )
A. cp myfile /dev/null
B. touch myfile
C. create myfile
D. mkfile myfile
2、你用vi编辑器编写了一个脚本文件shell.sh,你想将该文件名称修改为shell2.sh,下列命令( B )可以实现。
A. cp shell.sh shell2.sh
B. mv shell.sh shell2.sh
C. ls shell.sh >shell2.sh
D. ll shell.sh >shell2.sh
3、删除文件命令为( D )
A. mkdir
B. rmdir
C. mv
D. rm
4、( B )命令可更改一个文件的权限设置?
A. attrib
B. chmod
C. change
D. file
5、下列(D)设备是字符设备。
A. hdc
B. fd0
C. hda1
D. tty1
6、在使用GCC编译器的过程中,以下(B)选项可用来指定生成的目标文件名
A.-c B.-o C.-S D.-E
7、为了使用生成的目标文件能够用于gdb调试,在编译时GCC应使用(C)选项。
A.-c B.-w C.-g D.-o
8、存盘并退出vi的指令是( D )。
A、q
B、q!
C、w
D、wq
9、嵌入式系统的开发通常是在交叉开发环境实现的,交叉开发环境是指( A )
A 在宿主机上开发,在目标机上运行B在目标机上开发,在宿主机上运行
C 在宿主机上开发,在宿主机上运行D在目标机上开发,在目标机上运行
10、终止一个前台进程可能用到的命令和操作是(B )。
A、kill
B、+c
C、shut down
D、halt
11、如果要将文件名file1修改为file2,下列命令( B )可以实现。
A. cp file1 file2
B. mv file1 file2
C. ls file1 >file2
D. ll file1 >file2
12、不存盘退出vi的指令是( B )。
A、q
B、q!
C、w
D、wq
13、在给定文件中查找与设定条件相符字符串命令为(A )
A、grep
B、gzip
C、find
D、sort
14.gcc的编译可分为__预处理____、编译、汇编和___链接___等四个阶段。
15.在Linux多线程编程时,需要包含头文件___pthread.h___。
16.VI编辑器有三种工作模式:命令模式、插入模式和___末行模式___。
17.某文件的权限位:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为_644 ,该文件属性是__目录 _。
1.在EduKit-IV中,这4个 LED的状态通过扩展(填空1)(I/O)(英文)接口进行控制。
2.( B )函数用于设备注册.
A. devfs_mk_cdev(MKDEV(keyMajor, 0), S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP, DEVICE_NAME);
B . register_chrdev(KEY_MAJOR, DEVICE_NAME, &eduk4_ key_fops);
3.卸载Linux内核模块使用命令(填空1)(rmmod)(命令)
4.加载Linux内核模块使用命令(填空1)(insmod)(命令)。
5.(填空1)(file_operations)(结构体名)结构体,给出与虚拟文件系统中文件操作函数相对应的、操作设备的具体函数。
6. 使用(填空1)(mknod)(命令)在文件系统上创建一个设备节点
7. (填空1)(module_init)()宏是内核在启动过程中运行设备的初始化函数,驱动程序的加载随内核的启动一起完成。
8.下面参数( A )表示下载文件。
tftp -g 192.192.192.190 -r./led_test -l./led_test
A. -g
B. -r
C. -l
9.下面是英蓓特EduKit-IV实验箱中LED驱动程序中用到的函数eduk4_led_exit,请完整程序语句:
static void __exit eduk4_led_exit(void)
{
unsigned char status;
status = inb(LED_BASE);
outb(status | 0xff,LED_BASE);
printk(DEVICE_NAME " remove\n");
devfs_remove(DEVICE_NAME);
(填空1)(unregister_chrdev)(LED_MAJOR, DEVICE_NAME);
}
1.下面是英蓓特EduKit-IV实验箱中中断驱动程序中用到的函数,用于设置中断触发类型/方式,请完整程序:
(填空1)(set_irq_type)(函数名)(IRQ_EINT9,IRQT_FALLING);
2.下面是英蓓特EduKit-IV实验箱中中断驱动程序中用到的函数,用于向系统注册中断服务,请完整程序语句:
ret = (填空1)(request_irq)(函数名)(IRQ_EINT9, key_interrupt, SA_SHIRQ, DEVICE_NAME, inode);
3.int request_irq(unsigned int irq,void (*handler)(int irq, void *dev_id, struct pt_regs *regs),unsigned long irqflags,const char * devname,void *dev_id);中断发生时,系统调用(填空1)(Handler)(函数名)函数。
4、在ARM体系构建的嵌入式系统中,由电平模式触发的中断,其对应的中断标准应该在何时被清除?A
A、当中断处理程序结束以后,才可以清除
B、进入相应的中断处理程序,即可以清除
C、产生IRQ中断的时候,处理器自动清除
D、任何时候都可以清除
5、在Linux 2.4或者2.6内核中,和ARM体系结构相关的中断处理程序的C代码在源码树的__B_文件中
A、kernerl/irq.c
B、arch/arm/kernel/irq.c
C、arch/arm/mach/irq.c
D、arch/arm/kernel/entry-armv.S
6.下面是英蓓特EduKit-Ⅳ型实验箱中断控制驱动中s3c2410_key_init函数,请完整程序:static struct file_operations s3c2410_key_fops = {
.owner = THIS_MODULE,
.open = s3c2410_key_open,
.release = s3c2410_key_release,
};
static int __init s3c2410_key_init(void)
{
int ret;
unsigned int bswcon = inl((unsigned int)S3C2410_BWSCON);
bswcon = (bswcon & 0xFFFCFFFF) | 0x00000000;
outl(bswcon,(unsigned int)S3C2410_BWSCON);
outb(0xFF,0xE0000000+0x02600000);
outb(0x(填空1)(F9),0xE0000000+0x02600000);
ret = (填空2)(register_chrdev)(keyMajor, DEVICE_NAME, &(填空3)(s3c2410_key_fops));
if (ret < 0)
{
printk(DEVICE_NAME " can't get major number\n");
return ret;
}
keyMajor = ret;
#ifdef CONFIG_DEVFS_FS
(填空4)(devfs_mk_cdev)(MKDEV(keyMajor,keyMajor),S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP,DEVICE_NAME);
#endif
printk(DEVICE_NAME " initialized\n");
return 0;
}
1. 完善EduKit-IV实验箱中模数转换的应用程序,实现0~3.3伏电压的测量。
fd = open("/dev/adc",O_RDWR);
#include
┋
#include "adc_test.h"
int main(int argc, char** argv)
{
int fd;
int buf;
float result;
struct ADC_DEV adcdev;
while(1)
{
{
adcdev.channel = 0;
adcdev.prescale = 49;
//文件写,对adc驱动进行写。
write(fd,&adcdev,sizeof(struct ADC_DEV));
read(fd,&buf,sizeof(int));
result = buf*3.3000/0x(填空1)(3FF)(十六进制);
printf("ADC Channel %d data = %0.4f \n",adcdev.channel,result);
usleep(1000*500);
}
}
close(fd);
return 0;
}
2.完善下面EduKit-IV实验箱中模数转换的驱动程序。
static ssize_t adc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
{
int data;
unsigned long tmp;
int channel = MINOR(((struct cdev *)(file->private_data))->dev);
tmp = readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START |
S3C2410_ADCCON_SELMUX((填空1)(channel)(变量名));
writel( tmp, base_addr+S3C2410_ADCCON);
do
{
tmp = readl(base_addr+S3C2410_ADCCON);
}while(!(((unsigned int)tmp)& 0x(填空2)(8000)(十六进制)));
//read data
data = readl(base_addr+S3C2410_ADCDAT0) & 0x3ff;
if((填空3)(copy_to_user) (buf, &data, sizeof(int)))
return -EFAULT;
return (sizeof(int));
}
3.英蓓特Ⅳ型实验箱S3C2410芯片的A/D 转换的转换时间计算:例如PCLK 为50MHz,PRESCALER=49;所有10 位转换时间为(C )us。
A.1
B.2.5
C.5
D.50
4.英蓓特Ⅳ型实验箱S3C2410芯片的A/D转换器的最大工作时钟为( C )MHz。A.1
B.2
C.2.5
D.5
5.模拟信号进行A/D 转换的时候,从启动转换到转换结束输出数字量,需要一定的转换时间,在这个转换时间内,模拟信号要基本保持不变。否则转换精度没有保证,特别当输入信号频率较高时,会造成很大的转换误差。要防止这种误差的产生,必须在A/D 转换开始时将输入信号的电平保持住,而在A/D 转换结束后,又能跟踪输入信号的变化。因此,一般的A/D 转换过程是通过取样、保持、(填空1)(量化)(中文)和编码这四个步骤完成的。1.(填空1)(中间件)(中文)是操作系统与应用程序的沟通桥梁。包括向下驱动程序的接口,向上Java程序的接口。
2.(A)中文为Java本地编程接口,其源文件为普通的cpp文件,编译后为so文件。
A. JNI
B. SO
C. Android.mk
D. apk
E. NDK
3. (B)文件,是C/C++被编译后生成的动态库文件,被Java代码载入调用。可以和应用程序一起打包在apk文件里。
A. JNI
B. SO
C. Android.mk
D. apk
E. NDK
4. (C)该文件向编译系统描述你的源代码,是GNU Makefile的一小部分,每个需要被编译的代码文件都有与之对应的mk文件。
A. JNI
B. SO
C. Android.mk
D. apk
E. NDK
5. 每个要安装到Android平台的应用都要被编译打包为一个单独的( D )文件。如果应用代码需调用自己实现的JNI,需将so文件打包到该文件中。
A. JNI
B. SO
C. Android.mk
D. apk
E. NDK
6. Android (E )是一套工具,允许Android应用开发者嵌入从C、C++源代码文件编译来的本地机器代码到各自的应用软件包中。就是将JNI的so文件和java应用一起打包成apk。如果不使用NDK工具,so和java应用的打包工作由Android.mk描述给交叉编译系统通过资源打包的方式实现。
A. JNI
B. SO
C. Android.mk
D. apk
E. NDK
7. (填空1)(cygwin )是一个在windows平台上运行的unix模拟环境,是cygnus solutions 公司开发的自由软件。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对其产生了兴趣。
8. NDK工具包不需要安装,但需要设置NDK的运行(填空1)(环境变量)。
9. JNI源文件(中间件向下的驱动接口层)中,定义函数规则:
JNIEXPORT JNICALL
Java_PackageName_ClassName_FunctionName(JNIEnv *env,jobject obj)
其中固定格式的关键字是( C )
A. PackageName
B. FunctionName
C. Java
D. ClassName
10. JNI源文件(中间件向下的驱动接口层)中,定义函数规则:
JNIEXPORT JNICALL
Java_PackageName_ClassName_FunctionName(JNIEnv *env,jobject obj)
其中( D )实际上是路径,是中间件向上Java语言的接口层文件的路径。
A. JNIEXPORT
B. JNICALL
C. Java
D. PackageName
E. ClassName
F. FunctionName
11. JNI源文件(中间件向下的驱动接口层)中,定义函数规则:
JNIEXPORT JNICALL
Java_PackageName_ClassName_FunctionName(JNIEnv *env,jobject obj)
其中( D )是中间件向上Java语言的接口层文件的类名。
A. JNIEXPORT
B. JNICALL
C. Java
D. PackageName
E. ClassName
F. FunctionName
12. JNI源文件(中间件向下的驱动接口层)中,定义函数规则:
JNIEXPORT JNICALL
Java_PackageName_ClassName_FunctionName(JNIEnv *env,jobject obj)
ClassName是类名,打开LEDControler.java文件,里面有public class LEDControler,就是指导这个类名,同样如果类名中包含“_”,则用“( C )”代替;
A. _0
B. _1
C. _2
D. _3
13. Android.mk中( A )变量必须定义,以标识你在Android.mk 文件中描述的每个模块。名称必须是唯一的,而且不包含任何空格。注意编译系统会自动产生合适的前缀和后缀,换句话说,一个被命名为'foo'的共享库模块,将会生成'libfoo.so'文件。注意:如果把库命名为‘libhelloworld’,编译系统将不会添加任何的lib 前缀,也会生成libhelloworld.so。
A. LOCAL_MODULE
B. LOCAL_SRC_FILES
14. Android.mk中( B )变量必须包含将要编译打包进模块中的C 或C++源代码文件。不用在这里列出头文件和包含文件,编译系统将会自动找出依赖型的文件,当然对于包含文件,你包含时指定的路径应该正确。
注意,默认的C++源码文件的扩展名是‘.cpp’。指定一个不同的扩展名也是可能的,只要定义LOCAL_DEFAULT_CPP_EXTENSION 变量,不要忘记开始的小圆点(也就是定义为?‘.cxx’,而不是‘cxx’)
A. LOCAL_MODULE
B. LOCAL_SRC_FILES
1.阅读下面中间件向上Java接口层,完整程序。
package com.friendlyarm.AndroidSDK;
import android.util.Log;
public class LEDControler
{
static public native int openLED();
static public native int turnOn();
static public native int turnOff();
static public native int closeLED();
static {
try {
System.( B )("friendlyarm-LEDControler");
} catch (UnsatisfiedLinkError e) {
Log.d("LEDControler", "libfriendlyarm-LEDControler library not found!");
}
}
}
A.load
B.loadLibrary
2.阅读下面Android应用程序,完整应用程序。
package com.friendlyarm.LEDDemo;
┋
public class LEDTestingActivity extends Activity (填空1)(implements)OnClickListener {
private Button btnLED1On;
private Button btnLED1Off;
private Button btnQuit;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(https://www.360docs.net/doc/9e17091161.html,yout.main);
if( 0==LEDControler.openLED())
showDialog(2);
else
showDialog(3);
btnLED1On = (Button)(填空2)(findViewById)(R.id.btnLED1On);
┋
btnLED1On.setOnClickListener(this);
┋
}
@Override
protected Dialog onCreateDialog(int id)
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
if( id == 2 )
builder.setMessage("LED设备打开成功");
else
if( id == 3 )
builder.setMessage("LED设备打开失败");
builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
return builder.create();
}
public void onClick(View v) {
switch (v.(填空3)(getId)()) {
case R.id.btnLED1On:
LEDControler.turnOn();
break;
case R.id.btnLED1Off:
LEDControler.turnOff();
break;
case R.id.btnQuit:
LEDControler.closeLED();
this.finish();
break;
default:
break;
}
}
}
3.( A )是Android组件中最基本也是最为常用的组件,在一个android应用中,通常就是一个单独的屏幕。
A.Activity
B.View
4.用Eclipse开发Android应用程序,界面层实现绝对布局的元素是( D )。A.LinearLayout
B.RelativeLayout
C. FrameLayout
D. AbsoluteLayout
E. TableLayout
5. 用Eclipse开发Android应用程序,界面层代码如下: