发布时间 : 星期日 文章电子科技大学微机系统原理与接口第二版课后习题答案chapter10习题解答更新完毕开始阅读
“微处理器系统原理与嵌入式系统设计”第十章习题解答
10.2 简述以ARM微处理器为核心的最小硬件系统的组成?
? ? ? ? ? ?
ARM微处理器;
电源模块,包括CPU内核和I/O接口电源; 时钟模块,包括系统主时钟和实时时钟;
复位模块,包括系统加电复位、手动复位和内部复位; 存储器模块,包括程序保存存储器和程序运行存储器; JTAG调试接口模块。
10.4 简述S3C2440A芯片中各模块时钟信号产生及配置的原理。为降低系统功耗,可时钟信号进行哪些处理?系统复位信号与各时钟信号有什么关系?
当系统主时钟送入S3C2440A芯片后,进入其时钟发生模块,由锁相环进行相应的处理,最终得到FCLK,HCLK,PCLK和UCLK四组时钟信号。其中,FCLK信号主要供给ARM920T内核使用,HCLK主要供给AHB总线、存储器控制器、中断控制器、LCD控制器、DMA控制器和USB主机模块;PCLK主要供给访问APB总线的外设,例如WDT,I2S,I2C,PWM定时器,MMC接口,ADC,UART,GPIO,RTC和SPI模块;UCLK主要提供USB模块需要的48MHz时钟。
为降低系统功耗,可对时钟信号进行门控管理。最低功耗情况下,只开启FCLK信号,其他时钟信号关闭;若需对其他外设,只需使能相应总线及外设的时钟信号有效即可。
系统复位信号一般包括加电复位、手动复位和内部复位三类。其中,加电复位和手动复位信号均来自外部复位电路,内部复位信号一般来自系统内部事务处理(例如看门狗复位等)。因此,系统对外部复位信号波形有一定的要求,若不能满足要求系统将不能正常工作。在S3C2440A芯片中,要完成正确的系统复位,在处理电源保持稳定之后,该信号必须至少维持4个FCLK时钟的低电平状态。
10.6 利用S3C2440A的GPIO端口,设计包含8个LED的流水灯电路,每个LED间隔1S轮流点亮,试画出程序流程图并写出相关程序段。
假设利用S3C2440A芯片的GPIO端口G的第0~7引脚驱动8个LED电路,对应GPIO输出为0时LED灯亮,则相应程序流程图及相应程序段如下所示:
GPGCON EQU 0x56000060 GPGDAT GPGUP
EQU 0x56000064 EQU 0x56000068
;配置GPGCON寄存器,设置相关引脚为输出功能
LDR R0,=GPGCON LDR R1,[R0]
BIC R1,R1,#0x0000FFFF ORR R1,R1,#0x00005555 STR
R1,[R0]
;配置GPGUP寄存器,断开各上拉电阻
LDR R0,=GPGUP LDR R1,[R0] ORR R1,R1,#0x00FF
1 / 6
STR
R1,[R0]
;输出驱动数据,点亮对应LED等 LOOPSTAR
LDR R2,=GPGDAT LDR R3,[R2] BIC R3,R3,#0x00FF ORR R3,R3,#0x00FE STR LDR BL
R3,[R2] R0,=0xFFFFFF DELAY …
;初始计数值
配置禁止上拉GPGUP寄存器相应GPG0~GPG7段的值为0xFF配置控制GPGCON寄存器相应GPG0~GPG7段的值为0x5555开始 ;调用延迟子程序
LDR R2,=GPGDAT LDR R3,[R2] BIC R3,R3,#0x00FF ORR R3,R3,#0x007F STR LDR BL
R3,[R2] R0,=0xFFFFFF DELAY LOOPSTAR
;初始计数值
输出驱动数据GPGDAT寄存器相应GPG0~GPG7段的对应LED灯流水显示 ;调用延迟子程序
B
DELAY
SUB CMP BNE
R0,R0,#1 R0,#0x0 DELAY
MOV PC,LR
10.7 在上题中,如果要加入一个按键,实现按键按下时流水灯停止流动,按键放开时流水灯正常流转的功能,思考应怎样修改电路和程序?
在上题的基础上,添加一个GPIO口作为输入管脚(GPA的GPA[0]),按键按下GPA[0]值为1,否则为零。按键按下时流水灯停止流动,按键放开时流水灯重新启动。故需在每次对GPGDAT寄存器赋值前/后进行判断操作(答案是后进行判断,之前判断也是正确的),若判断有按键按下,则跳转出改程序段,否者继续执行。相应程序如下:
GPACON GPADAT GPAUP
EQU 0x56000000 EQU 0x56000004 EQU 0x56000008
GPGCON EQU 0x56000060 GPGDAT GPGUP
EQU 0x56000064 EQU 0x56000068
;配置GPACON寄存器,设置相关引脚为输出功能
LDR R0,=GPACON LDR R1,[R0]
BIC R1,R1,#0x00000003 ORR R1,R1,#0x00000000 STR
R1,[R0]
2 / 6
;配置GPAUP寄存器,断开各上拉电阻
LDR R0,=GPAUP LDR R1,[R0] ORR R1,R1,#0x0001 STR
;配置GPGCON寄存器,设置相关引脚为输出功能
LDR R0,=GPGCON LDR R1,[R0]
BIC R1,R1,#0x0000FFFF ORR R1,R1,#0x00005555 STR
R1,[R0] R1,[R0]
;配置GPGUP寄存器,断开各上拉电阻
LDR R0,=GPGUP LDR R1,[R0] ORR R1,R1,#0x00FF STR
R1,[R0]
;输出驱动数据,点亮对应LED等 LOOPSTAR
LDR R2,=GPGDAT LDR R3,[R2] BIC R3,R3,#0x00FF ORR R3,R3,#0x00FE STR
R3,[R2]
LDR R2,=GPGDAT LDR R3,[R2] BIC R3,R3,#0xFFFE CMP BEQ LDR BL
…
LDR R2,=GPGDAT LDR R3,[R2] BIC R3,R3,#0x00FF ORR R3,R3,#0x007F STR
R3,[R2] R3,#0x1 WAIT R0,=0xFFFFFF DELAY
;初始计数值
;调用延迟子程序
LDR R2,=GPGDAT LDR R3,[R2] BIC R3,R3,#0xFFFE CMP BEQ LDR BL
R3,#0x1 WAIT R0,=0xFFFFFF DELAY
;初始计数值
;调用延迟子程序
3 / 6
B LOOPSTAR
DELAY WAIT
LDR R2,=GPGDAT LDR R3,[R2] BIC R3,R3,#0xFFFE CMP BEQ B
R3,#0x1 WAIT LOOPSTAR
SUB CMP BNE MOV
R0,R0,#1 R0,#0x0 DELAY PC,LR
10.8 在某采用小端存储的S3C2440系统中,处理器外设时钟PCLK=66.68MHz,使用其UART1接口实现串行通信,要求传输速率19200bps,不使用FIFO,关闭流控制,帧格式:8位数据位,2位停止位,偶校验。试写出各初始化控制字,并编写初始化程序段。
;相关寄存器地址定义
CLKDIVN EQU 0x4C000014 ;CLKDIVN for PCLK and FCLK CAMDIVN EQU 0x4C000018 ;CANDIVN
ULCON1 EQU 0x50004000 ;UART line control register 0 UCON1 EQU 0x50004004 ;UART control register 0 UFCON1 EQU 0x50004008 ;UART FIFO control register 0 UMCON1 EQU 0x5000400C ;UART modem control register 0 UBRDIV1 EQU 0x50004028 ;UART baud rate divisor register 0 UTRSTAT1 EQU 0x50004010 ;UART TX/RX status register 0 UTXH1 EQU 0x50004020 ;UART transmit buffer register 0 URXH1 EQU 0x50004024 ;UART receive buffer register 0 MPLLCON EQU 0x4C000004 ;MPLL control register
AREA SerialCommunication,CODE,READONLY ENTRY
ldr r2,=MPLLCON ;设置MPLL为0x00076022 FCLK=Mpll=(2*m*Fin)/(p*(2的s次方)), Fin=16.9344MHz ; m=(MDIV+8), p=(PDIV+2), s=SDIV mov r3,#0x22 mov r4,#0x00076000 ADD r3,r3,r4
4 / 6