测试题0及参考答案
(1) ARM匚编程序由—机器____指令、—汇编___指令和__伪——指令构成。
(2) ARM伪指令可以分为以下几类: 符号定义伪指令 数据定义伪指令汇编控制伪指令 信息
报告伪指令宏指令以及其他伪指令 。
C (A.0X12 B.0X34 C.0X56 D.0X78 )(采用小端模式进行存储)
(4) 一般情况下,ARM微处理器异常处理模式共有 7 种,机器启动后第一
条指令执行的是 _A_(A.复位异常处理函数指令 B.中断异常处理指令 C.IRQ 异常处理指令D.指令预取终止异常)。
(5) 调用函数FUN(X,Y,Z),则实参值分别通过 _r0_、_r1_、_r2_寄存器 来进行传递,如果参数超过 4个,则参数传递规则为 通过栈进行传递
。
(6) 举例列出一款 ARM7TDM微内核的嵌入式微处理器 _S3C44B0X_ ARM920T微
内核的嵌入式微处理器 _S3C2410_ ARM11内核的嵌入式微处理器 __S3C6410___ 并列举 2 款 64 位 ARM微 内核 _ Cortex -A53 _、_ Cortex -A57 。
(7) 利用汇编和C混合编程,设计代码完成求 a,b,c中最大值功能,要求写出 汇编启动代码和C代码。
(略)此知识点不需要掌握
测试题1及参考答案
1.嵌入式 Linux 操作系统包括 bootloader 、内核 、文件系统 三部分组成。
2.在PC机上Linux系统编译使用的编译器名为 gcc ,ARM处理器嵌入式编译器名为 arm-linux-gcc 。
3.bootloader 的功能: ①引导操作系统内核启动②提供辅助命令工具 。
4.列出最常用的 bootloader : 、 、 、 、 、 。
5.在uboot中,打印开发板上环境变量值的命令为 printenv
setenv ,假如嵌入式内核名为 vmlinux,通过tftp 加载内核的命令为
tftp vmlinux 内存地址 ,启动嵌入式Linux内核的命令为 bootm 。
6.从C语言角度来理解,嵌入式 Linux内核仅是众多 函数 的集合体,其有一个类似于 main的函数,名称为
start_kernel 。
7.嵌入式Linux内核裁剪命令为 make menuconfig ;裁剪完成后生成配置选择文件 .config ;编译内核
命令为 make zImage 。
8.启动linux后常用的命令如ifconfig 、cp、ls等通常位于 C (A.bootloaderB.内核C.文件系统)中;嵌入
式Linux环境下生成文件系统的常用工具为 mkyaffs2img ;以yaffs方法为例,将嵌入式文件夹压
缩成一个yaffs2格式的文件系统命令为 mkyaffs2img 文件夹镜像文件名 。
9.构建嵌入式Linux系统时,烧写bootloader的工具为hjtag ;烧写Linux内核一般使用
A (A.bootloader B. 文件系统C.交叉编译器)来烧写,烧写文件系统一般使用
A (A.bootloader B. 文件系统C.交叉编译器)来烧写。
10.简述构建嵌入式Linux系统基本过程
略,见实验材料
测试题2及参考答案
学号: 姓名: 日期:
1.Linux 中自动生成 makefile 的工具集名称为 autotools ;工具集包括 aclocal、autosc
an、autoconf、
autoheader和_automake _等几部分组成。
2.一个源码文件hello.c利用自动生成makefile的工具集后得到文件一批文件后,利用命令 _#./configure
| 生成 Makefile,利用命令 #make dist
3.嵌入式Linux应用程序移植常用 configure 命令生成Makefile, 一般来说,指定安装目录为 /opt/soft 的命令
为 _./configure --prefix=/opt/soft I ;如果待生成的可执行目标板为ARM处理器,则命令
为 _ ./c on figure --prefix=/opt/soft --HOST=arm-li nux 。
4.以web服务器boa移植为例,简述其基本过程。
[略]见实验材料
5.嵌入式数据库经常使用 sqlite ,为可以在开发板上运行的轻型数库。通常情况下 sqlite 提供
|命令_和|函数编程_两种使用方式。
6.在sqlite 下创建数据库stu.db命令为 sqlite3 stu.db ;创建包含学号,姓名和电话号码的数据
表 StuPhone 命令为 _create table StuPhone( id integer primary key, nametext, phoneNotext ); _ _insert into 。
测试题3及参考答案
1.嵌入式Linux内核是可裁剪系统,通常情况下使用 模块 机制进行设计。模块程序和应用程序分别位于 Linux
系统的 内核 空间和 用户 空间。
2.嵌入式Linux系统模块程序hello.c 被编译成模块hello.ko 后,动态插入内核的命令为 #ins
mod hello.ko ,
查看Linux内核中有哪些模块的命令为 #lsmod ,删除内核中模块 hello.ko 的命令为#rmmod hello 。
3.编写一模块,向内核中添加两整数相加功能函数和两整数相减功能函数,并要求在加载模块时打印出“ hello,I
am in kernel now! ”,卸载模块时打印“ hello, I will leave from kernel now! ” ,编写 Makefile,并简述加载
到内核和卸载岀内核的基本命令。
(1)模块文件
(2) Makefile
obj-m:=hello.ko
all:
测试题4及参考答案
1.在嵌入式Linux开发过程中,EmbeddedQT通常情况下用于 C (A.内核代码B.驱动代码 C.图形
应用程序)设计。EmbeddedQT^用工具开发包的形式提供给用户, 一般情况下包括 |图形设计器_、QT的C++
类库和Makefile 制作工具,字体国际化工具等。
嵌入式linux开发书籍2.QT开发中采用 信号和插槽 机制来连接两个对象之间的通讯,假设对象 a的clicked 信号和对象 b的
handleFunction ()相关联,对应语句为: _co nn ect(&a,SIGNAL(clicked()),&b,SLOT(ha ndleFu nctio n()));
3.假设有嵌入式LED报警灯驱动设备文件/dev/led ,点亮led灯调用函数ioctl(fd,LEDON), 熄灭led灯调用函数 ioctl(fd,LEDOFF), 请设计QT应用程序完成如下任务,点击 ON按钮点亮LED灯,点击OFF按钮熄灭LED灯。写出 这两个按钮的相关联的函数。假设 ON按钮名称为m_on,OFF按钮名称为m_off。
关联函数:
conn ect(m Wi n,SIGNAL(clicked()),m on ,SLOT(Led OnFun()));
conn ect(m_Wi n,SIGNAL(clicked()),m_off,SLOT(LedO 肝un ()));
void Led OnFun( )~|
{]
int fd;
fd=open( “/dev/leddev ”,O RDWR);
ioctl(fd, LEDON);
close(fd);
}
void LedO肝un() |
{]
int fd;
fd=open( “/dev/leddev ”,O RDWR);
ioctl(fd ,L EDOFF);
close(fd);
}
测试题5及参考答案
1.嵌入式Linux驱动设备分为_字符设备___、_块设备__和网络设备三种类型,其中通常情况下键盘、鼠标、 LCD
屏等设备驱动属于 字符设备,硬盘设备属于_块_设备。
2.设备要能被使用,通常需要设备驱动软件,在 Linux系统中,设备驱动驱动软件位于 _ A _(A.内核空间B.用
户空间),假设有LED报警灯设备驱动软件leddrv.ko ,则加载该驱动软件到内核命令为 _#insmod leddrv.ko_ _, 测试完成后,将该软件从内核中卸载命令为 _#rmmod leddrv __。
3.除网络设备外,设备驱动通常采用 —文件__方式进行访问,一般包括 __打开设备__、读写控制设备,最后 关闭
设备__。在Linux中设备文件名本质上是设备号, 将两者之间建立关联的命令为 mknod,假设LED设备驱动主设备 号为253,次设备号为0,设备名为leddev,则建立设备文件的具体命令为 _#mknod /dev/leddev c 253 0 。
4•简述编写看门狗驱动基本步骤
编写硬件驱动代码,包括:
I—编写硬件接口函数
建立文件系统与硬件接口函数的关联
注册字符设备
添加模块代码
编译设备驱动并加载到内核,包括:
| 编写 Makefile
编译
加载
创建设备节点
编写应用程序访问底层设备驱动
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论