微处理器系统结构与嵌入式系统设计(第二版)答案全(7)

2019-04-14 23:45

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 str r3,[r2]

ldr r2,=CLKDIVN ; CLKDIVN 设置为 0x03, PCLK=FCLK/4 mov r3,#0x03 str r3,[r2]

ldr r2,=CAMDIVN ; CLKDIVN 设置为 0x0200, PCLK=FCLK/4 mov r3,#0x200 str r3,[r2]

ldr r2,=ULCON1 ; ULCON1设置为 0x07, 含义是正常操作模式,无校验,停止位2,8个数据位 mov r3,#0x07 str r3,[r2]

ldr r2,=UCON1 ;UCON1设置为 0x05 表示发送、接收数据都使用查询方式,该处初始化为中断模式也正确 mov r3,#0x05 str r3,[r2]

ldr r2,=UFCON1 ;UFCON1设置为 0x00 为不使用 FIFO mov r3,#0x00 str r3,[r2]

ldr r2,=UMCON1 ;UMCON1设置为 0x00 为不使用流控 mov r3,#0x00

str r3,[r2]

ldr r2,=UBRDIV1 ;UBRDIV1设置为216,含义为波特率设为 19200, 由下面公式算得:UBRDIVn = (int)(PCLK/bps*16)-1

;其中 PCLK =66.68MHz mov r3,#216 strh r3,[r2]

;或者16进制表示0XD8

10.9在上题中,若采用查询方式进行数据传输,要将位于地址 DATA处的100字节发送到其他设备,试画出程序流程图, 并写出相关程序段。

查询方式进行数据传输的代码段如下:

CHECK

LDR R2,=UTRSTAT1

LDR R3,[R2] AND R3,R3,#0X02 CMP R3,#0X02 BNE WAIT SET LDR R5,=DATA LDRB R3,[R5],#1 LDR R2,=UTXH1 STRB R3,[R2]

SUB R5,R5,#1 CMP R5,#0x64

BNE CHECK

10.10在10.8题中,若要实现处理器收到数据0xAA,则回应1字节数据0x55的功能,试画出采用查询方式传输的程序流程图,并写出相关程序段。进一步思考如果采用中断方式工作,需要对软件进行怎样的修改?

相应代码段如下:

CHECK

LDR R2,=UTRSTAT1 LDR R3,[R2] AND R3,R3,#0X01 CMP R3,#0X01 BNE CHECK WAIT

LDR R3,[R2] AND R3,R3,#0X02 CMP R3,#0X02 BNE WAIT SET LDR R2,=URXH1 LDRB R3,[R2]

CMP R3,#0xAA

MOVEQ R3,#0x55

开始 LDR R2,=UTXH1 STRB R3,[R2] B CHECK

配置控制初始化控制字查询收发状态寄存器UTRSTAT1的状态位UTRSTAT1[0] UTRSTAT0[0]=1

是 查询收发状态寄存器UTRSTAT1的状态位UTRSTAT1[1]

否UTRSTAT0[1]=1

是 取出接收寄存器URXH1里的值放入寄存器R5

R5=0xAA否

R5=0x55 将R5的值复位发送寄存器UTXH1

若采用中断方式工作的话,需要将UCON1配置寄存器设为中断工作模式;在接收到数据后触发中断,进入中断子程序,进行相应操作。

否“微处理器系统原理与嵌入式系统设计”第十一章习题解答

1. 简述嵌入式软件系统的分层结构,各层之间有何联系?

嵌入式软件系统主要包括驱动层、操作系统层、中间软件和应用层。 驱动层与硬件直接相连,其为操作系统和应用提供所需驱动支持。

操作系统层从驱动层得到所需的驱动支持,可以调度应用层中各个任务的执行。 中间软件为应用层提供一些面向应用领域的中间件软件。

2. 简述嵌入式软件系统的工作流程,系统引导及加载在该流程中位于何处,有哪些功

能?

工作流程由下图所示:

该执行流程主要分为5个阶段:1.上电复位、板级初始化阶段。2.系统引导/升级阶段。3.系统初始化阶段。4.应用初始化阶段。5.多任务应用阶段。 系统引导及加载在该流程中位于第二阶段,其主要作用是初始化硬件设备、建立内存空间的映射图,然后将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。

11.3 简述U-Boot第一阶段工作的主要任务,它与第二阶段如何衔接?

代码通常放在start.s文件中,用汇编语言写成,其主要功能是设置处理器状态、初始化中断和内存时序、对整个U-Boot目标代码进行重新定位。接着通过下列语句跳转到C代码执行,实现阶段一与阶段二的衔接: ldr pc, _start_armboot _start_armboot: .word start_armboot


微处理器系统结构与嵌入式系统设计(第二版)答案全(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:fluent作业王京辉

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: