资源描述:
《嵌入式实验思考new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编指令2①不正确,立即数超出了这个操作②CMPR0,R1ORRHIR5,R5,R2ANDLSR5,R5,#0x000000FF③ ④ ADDS R5,R5,R2 ADC R6,R6,R3ARM处理器工作模式实验①由于用户模式和系统模式不是异常中断,所以它们没有SPSR.因此在用户模式和系统模式中不要访问SPSR,否则将会产生不可预知的结果。②只有在特权模式下才允许对当前程序状态寄存器CPSR的所有控制位直接进行读/写访问,而在非特权模式下只允许对CPSR的控制位进行间接访问,但可以读取CPSR的值。(在非特权模式下可以读取CPSR寄存器的值,但不能对其进行设置)③在中断初始化的时候设置C
2、PSR寄存器I-bit和F-bit位为1,例如:Msr cpsr_c, #0xdf④不能。如果这样做的话不会清空流水线,是不安全的。可以使用BX指令进行状态切换,程序跳转的同时进行状态切换,当程序发生跳转时流水线会被清空,流水线中按原来处理器状态进行取指和译码的指令(与当前处理器状态不符的指令)会被清除,也就不会引起处理器的错误。GPIO输出控制实验①①GPIO输入实验:按键去抖动2410时钟设置enum{idle,write,read}cmd;//UARTcontrolwrite&readenum{set,Nset,alarm}settime;//预设时钟闹铃enum{right,
3、wrong}setformat;//settimeformatflagintsetcount=-1;//用于设定时间闹铃计数enum{start,end}uartrtcflag;//串口设定时间闹铃数据开始结束标志typedefstructtime{charyear;charmon;chardate;charday;//dayofweekcharhour;charmini;charsec;}RTC;charRTCstr[17]="00-00-0000:00:00";/***********************************UART_int初始化ledIO端口GPBCON5-8
4、初始化GPBHCON为串口通信配置串口通信寄存器配置中断寄存器************************************/voidUART_int_init(void){//configurationLEDIOportrGPBCON&=~(0xff<<10);rGPBCON
5、=0x55<<10;//configurationGPHCONtoUARTrGPHCON&=~(0xf<<4);rGPHCON
6、=0xa<<4;//rGPHCON=0x00faaa;//rGPHUP=0x7ff;//configurationUART0communicationregister//8-bi
7、ts,1stopbit,noparityrULCON0=0x03;rUCON0=0x05;//configurationUARTbaudraterUBRDIV0=(int)(PCLK/baudrate/16)-1;//cleaninterruptbitrSUBSRCPND
8、=0x1;rSRCPND
9、=1<<28;rINTPND
10、=1<<28;//openUARTinterruptrINTSUBMSK&=~(0x1);rINTMSK&=~(0x1<<28);}voidUART_send_byte(charTx_data){while(!(rUTRSTAT0&0x2));//waitTxemp
11、tyif(Tx_data=='/n')//Tx'/n'{rUTXH0=0x0d;while(!(rUTRSTAT0&0x2));rUTXH0=0x0a;}else{rUTXH0=Tx_data;}}voidUART_send_string(constchar*str){while(*str){UART_send_byte(*str);str++;}}charUART_receive_byte(void){//chartemp;while(!(rUTRSTAT0&0x1));//waitRXready//temp=rURXH0;returnrURXH0;}/*************read
12、RTC***************readRTCdataifsecendis0re-readRTCdata**************readRTC**************/voidget_rtc(RTC*prtc){rRTCCON=1;prtc->year=rBCDYEAR;prtc->mon=rBCDMON;prtc->date=rBCDDATE;prtc->day=rBCDDAY;prtc->hour=rBC