You are on page 1of 5

嵌入式系统作业及论文

作业
一、选择
(一)对 ARM 处理器的状态描述错误的是( )
A、BL 指令可以实现状态切换
B、Thumb 状态执行半字对齐的 16 位指令
C、异常可以将处理器从 Thumb 状态切换到 ARM 状态
D、当寄存器 Rx 的位[0]=0 时,执行指令 BX Rx,处理器进入 ARM 状态
(二).若 R0=0x4000,R1=0x4008,存储单元(0x4000)=0x01,(0x4008)=0x20,则执行指
令 LDR R1,[R0,#8]! 后 R1 的值为( )
A、0x01       B、0x20 C、0x4000    D、0x4008
(三).S3C2410A 中断系统中用于中断源屏蔽设置的寄存器是( )
A、SRCPND
B、INTPND
C、INTMOD
D、INTMSK
(三).以下对 S3C2410 存储器描述不正确的是( )
A、存储空间有 6 个存储器 Bank
B、支持 NAND Flash 启动方式
C、片上集成有存储管理单元(MMU)
D、NAND Flash 的写/擦除速度快于 Nor Flash
(四)Linux 下用于挂载文件系统的命令是( )
A、ifconfig B、mount C、mkdir D、insmod
(五)嵌入式中运行的第一段用于初始化基本软硬件、引导操作系统的程序叫做( )
A、cache
B、Kernel
C、Bootloader
D、File system

二、填空
(一)在用户模式、IRQ 模式和系统模式中,属于异常模式的是 1. 。
(二)异常发生时用于保存程序状态寄存器 CPRS 值的寄存器是 2. 。
(三)ARM 指令 ADDNE 中,条件码 NE 的含义是 3. 。
(四)S3C2410 采用 4. (ARM9TDMI/ARM920T/ARM940T)内核。
(五)Linux 设备驱动程序有静态加载和动态加载两种方式。动态加载命令是 5. 。
三、简答
(一)简述寄存器 R13 和 R15 的功能。
(二)解释指令 LDMFD 和 STMFD 的含义。
(三)写出在 vi 编辑器中,命令模式和输入模式之间相互切换的方法。
(四)键盘和网卡分别属于 Linux 操作系统中哪种设备类型?
(五)写出嵌入式 Linux 开发时除 Bootloader 以外,一般还需要移植哪两部分?
四、程序分析
(一)若 C=1,写出以下程序执行后,寄存器 R0~R2 以及 C 的值。要求逐句注释。
AREA TT , CODE , READONLY
ENTRY
MOV R1 , #2
MOV R2 , #7
SUB R2,R2,#4
ADDS R1,R2,#2
AND R0,R1,#3
END
(二)分析下面程序段实现了什么功能,要求逐句注释。
#define UTRSTAT0(*(volatile unsigned*)0x50000010)
#define UTXH0(*(volatile unsigned char*)0x50000020)
#define URXH0(*(volatile unsigned char*)0x50000024)
….
unsigned char i;
…..
for(i=0;1<3;i++)
{ while(!(UTRSTAT0&0x2));
UTXH0=0x30+i;
}
…..

标准 ASCII 码表
字符 0 1 2 3 4 5 6 7 8 9
十六进制 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39
UART0 相关寄存器

寄存器 地址 读/写 描述 复位值


UTRSTAT0 0x50000010 读 UART0 状态寄存器 0x6
UTXH0 0x50000020 写 UART0 发送缓冲寄存器 –
URXH0 0x50000024 读 UART0 接收缓冲寄存器 –
UART0 状态寄存器 UTRSTAT0

位名 位 描述 初始值
1=传送缓冲区没有合法数据要传送,并
Transmitter empty [2] 1
且传送移位寄存器为空; 0=非空
Transmit buffer empty [1] 1=传送缓冲区为空; 0=传送缓冲区非 1

Receive buffer data ready [0] 1=接收缓冲区接收到有效数据;0=空 0
UART0 发送缓冲寄存器 UTXH0

UTXH0 位 描述 初始值
TXDATA0 [7:0] UART0 发送数据 –
UART0 接收缓冲寄存器 URXH0

URXH0 位 描述 初始值
RXDATA0 [7:0] UART0 接收数据 –

(三)注释下面 Makefile 文件。编译器 arm-linux-gcc 和 gcc 有何区别?


CC=arm-linux-gcc
ff: f1.o f2.o
$(CC) f1.o f2.o -o ff
f1.o:f1.c
$(CC) -c f1.c -o f1.o

f2.o:f2.c
$(CC) -c f2.c -o f2.o
clean:
-rm -rf *.o
(四)分析下面动态加载字符设备的部分驱动程序,补充横线上内容。
struct file_operations zn_ops=
{ read:zn_read,
write:zn_write,
};
static int _ _init zn_init(void)
{
int ret;
ret= (MAJOR_NUM,"zndev", ); // 注册该字符设备
if(ret)
("ZN dev register failed!\n");
else
("ZN dev register success!\n");
return ret;
}
static void _ _exit zn_exit(void)
{
int ret;
ret= (MAJOR_NUM,"zndev"); // 注销该字符设备
if(ret)
("ZN dev unregister failer!\n");
else
("ZN dev unregister success!\n");
}
........
........
........

module_init( );
module_exit( );

五、设计题
假设一个基于 S3C2410 的嵌入式系统,其中一部分功能为压力检测。要求从 S3C2410 片内
A/D 转换器的通道 0 采集压力传感器输出的模拟电压信号(假设电压范围为 0-3.3V,对应压力
范围为 100-200MPa)。如果压力超过 150MPa,要求引脚 GPF0 输出高电平触发蜂鸣器,引脚
GPF1 输出低电平点亮 LED。采用最低位启动方式,查询法判断 A/D 转换是否结束,AD 转换 50

分频。画出电路图并编程实现。
ADC 控制寄存器

寄存器 地址 读/写 描述 复位值


ADCCON 0x58000000 R/W ADC 控制寄存器 0x3FC4
位名 位 描述 初始值
ECFLG [15] 1 = 转换结束;0 = 转换正在进行 0
PRSCEN [14] 1 =使能预分频;0 =禁止预分频 0
PRSCVL [13:6] A/D 转换预分频值 1~255 0xFF
SEL_MUX [5:3] 模拟输入通道选择 000
000 = AIN 0 001= AIN 1
010 = AIN 2 011 = AIN 3
100 = AIN 4 101 = AIN 5
110 = AIN 6 111 = AIN 7
STDBM [2] 1 = 休眠模式;0 = 正常模式 1
READ_ START [1] 1 = 读启动使能;0 = 读启动禁止 0
ENABLE_ START [0] 1 = A/D 转换启动;0 = 不工作 0
ADC 数据寄存器

寄存器 地址 读/写 描述 复位值


ADCDAT0 0x5800000C 读 ADC 转换数据寄存器 -
ADCDAT0 位 描述 初始状态
普通 ADC [9:0] 转换结果: 0 ~ 3FF -
端口 F 相关寄存器

寄存器 地址 读/写 描述 复位值


GPFCON 0x56000050 读/写 配置端口 F 引脚 0x0
GPFDAT 0x56000054 读/写 端口 F 数据寄存器 不确定
GPFUP 0x56000058 读/写 配置端口 F 上拉电阻 0x0
端口 F 配置寄存器(GPFCON)
引脚 位 描述
GPF7 [15:14] 00=输入 01=输出 10=EIN7 11=保留
GPF6 [13:12] 00=输入 01=输出 10=EIN6 11=保留
GPF5 [11:10] 00=输入 01=输出 10=EIN5 11=保留
GPF4 [9:8] 00=输入 01=输出 10=EIN4 11=保留
GPF3 [7:6] 00=输入 01=输出 10=EIN3 11=保留
GPF2 [5:4] 00=输入 01=输出 10=EIN2 11=保留
GPF1 [3:2] 00=输入 01=输出 10=EIN1 11=保留
GPF0 [1:0] 00=输入 01=输出 10=EIN0 11=保留

端口 F 数据寄存器(GPFDAT)
引脚 位 描述
GPF[7:0] [7:0] 当端口被配置成输入口时,该位的值是对应引脚的状态;
当端口被配置成输出口时,对应引脚的状态和该位的值相同;
当端口被配置成功能引脚时,如果读该位的值将是一个不确定的
值;
端口 F 上拉寄存器(GPFUP)

引脚 位 描述
GPF[7:0] [7:0] 1: 不允许上拉电阻连接到对应引脚;0:允许上拉电阻连接到对应引脚

论文: 嵌入式技术在电力系统的应用现状及展望
(字数:4000~5000 字)

You might also like