13. ARM寄存器总结:
? ARM有16个32位的寄存器(r0到r15)。
? r15充当程序寄存器PC,r14(link register)存储子程序的返回地址,r13存储的是堆栈地址。
? ARM有一个当前程序状态寄存器:CPSR。
? 一些寄存器(r13,r14)在异常发生时会产生新的instances,比如IRQ处理器模式,这时处理器使用r13_irq和r14_irq
? ARM的子程序调用是很快的,因为子程序的返回地址不需要存放在堆栈中。
14. 存储器重新映射的原因:
? 使Flash存储器中的FIQ处理程序不必考虑因为重新映射所导致的存储器边界问题;
? 用来处理代码空间中段边界仲裁的SRAM和Boot Block向量的使用大大减少;
? 为超过单字转移指令范围的跳转提供空间来保存常量。
15. 存储异常向量表中程序跳转使用LDR指令,而不使用B指令的原因:
? LDR指令可以全地址范围跳转,而B指令只能在前后32MB范围内跳转;
? 芯片具有Remap功能。当向量表位于内部RAM或外部存储器中,用B指令不能跳转到正确的位置。
16. 锁相环(PLL)注意要点:
? PLL在芯片复位或进入掉电模式时被关闭并旁路,在掉电唤醒后不会自动恢复PLL的设定;
? PLL只能通过软件使能;
? PLL在激活后必须等待其锁定,然后才能连接;
? PLL如果设置不当将会导致芯片的错误操作。
17. ARM7与ARM9的区别:
? ARM7内核是0.9MIPS/MHz的三级流水线和冯?诺伊曼结构;ARM9内核是五级流水线,提供1.1MIPS/MHz的哈佛结构。
? ARM7没有MMU,ARM720T是MMU的;ARM9是有MMU的,ARM940T只有Memory protection unit.不是一个完整的MMU。
? ARM7TDMI提供了非常好的性能——功耗比。它包含了Thumb指令集快速乘法指令和ICE调试技术的内核。ARM9的时钟频率比ARM7更高,采用哈佛结构区分了数据总线和指令总线。
18. VIC的基本操作如下:
答:设置IRQ/FIQ中断,若是IRQ中断则可以设置为向量中断并分配中断优先级,否则为非向量IRQ。然后可以设置中断允许,以及向量中断对应地址或非向量中断默认地址。当有中断后,若是IRQ中断,则可以读取向量地址寄存器,然后跳转到相应的代码。当要退出中断时,对向量地址寄存器写0,通知VIC中断结束。当发生中断时,处理器将会切换处理器模式,同时相关的寄存器也将会映射。
19. 使用外部中断注意
? 把某个引脚设置为外部中断功能后,该引脚为输入模式,由于没有内部上拉电阻,所以必须外接一个上拉电阻,确保引脚不被悬空;
? 除了引脚连接模块的设置,还需要设置VIC模块,才能产生外部中断,否则外部中断只能反映在EXTINT寄存器中;
? 要使器件进入掉电模式并通过外部中断唤醒,软件应该正确设置引脚的外部中断功能,再进入掉电模式。
20. UART0的基本操作方法
? 设置I/O连接到UART0;
? 设置串口波特率(U0DLM、U0DLL);
? 设置串口工作模式(U0LCR、U0FCR);
? 发送或接收数据(U0THR、U0RBR);
? 检查串口状态字或等待串口中断(U0LSR)。
21. I2C的基本操作方法
答:I2C主机基本操作方法:
? 设置I2C管脚连接;
? 设置I2C时钟速率(I2SCLH、I2SCLL);
? 设置为主机,并发送起始信号(I2CONSET的I2EN、STA位为1,AA位为0);
? 发送从机地址(I2DAT),控制I2CONSET发送;
? 判断总线状态(I2STAT),进行数据传输控制;
? 发送结束信号(I2CONSET)。
I2C从机基本操作方法:
? 设置I2C管脚连接;
? 设置自身的从机地址(I2ADR);
? 使能I2C(I2CONSET的I2EN、AA位为1);
? 判断SI位或等待I2C中断,等待主机操作;
? 判断总线状态I2STAT,进行数据传输控制。
22. PWM基本操作方法:
? 连接PWM功能管脚输出,即设置PINSEL0、PINSEL1;
? 设置PWM定时器的时钟分频值(PWMPR),得到所要的定时器时钟;
? 设置比较匹配控制(PWMMCR),并设置相应比较值(PWMMRx);
? 设置PWM输出方式并允许PWM输出(PWMPCR)及锁存使能控制(PWMLER);
? 设置PWMTCR,启动定时器,使能PWM;
? 运行过程中要更改比较值时,更改之后要设置锁存使能。
使用双边沿PWM输出时,建议使用PWM2、PWM4、PWM6;使用单边PWM输出时,在PWM周期开始时为高电平,匹配后为低电平,使用PWMMR0作为PWM周期控制,PWMMRx作为占空比控制。
文章评论(0条评论)
登录后参与讨论