arm程序分析和设计

上传人:第*** 文档编号:38820131 上传时间:2018-05-08 格式:DOC 页数:10 大小:29.09KB
返回 下载 相关 举报
arm程序分析和设计_第1页
第1页 / 共10页
arm程序分析和设计_第2页
第2页 / 共10页
arm程序分析和设计_第3页
第3页 / 共10页
arm程序分析和设计_第4页
第4页 / 共10页
arm程序分析和设计_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《arm程序分析和设计》由会员分享,可在线阅读,更多相关《arm程序分析和设计(10页珍藏版)》请在金锄头文库上搜索。

1、一、一、 程序分析:给以下程序主要过程加注释,幷写出程序功能程序分析:给以下程序主要过程加注释,幷写出程序功能1.1. 程序段程序段 1 1:p80p80void TimerlINT_Init(void) if(rINTPNDBIT_TIMERI) ) ;发出中断请求rSRCPND | = BIT_TIMER1; ;清楚中断源pISR_TMER1=(int)Timerl_ISR; ;写入中断服务子程序的入口地址rINTMSK (BIT_TIMERI) ; ;开中断功能:定时器接口使能,中断初始化2.2. 程序段程序段 2 2:p81p81IsrIRQsub sp,sp,#4; /为保存 PC

2、预留堆栈空间stmfd sp!, r8r9ldr r9, INTOFFSET ;中断偏移量寄存器ldr r9,r9; /加载 INTOFFSET 寄存器值到 r9ldr r8,HandleEINT0;/加载中断向量表的基地址到 r8add r8,r8,r9,lsl #2;/获得中断向量ldr r8, r8; /加载中断服务程序的入口地址到 r8str r8,sp,#8 ; /保存 sp,将其作为新的 pc 值ldmfd sp!,r8-r9,pc; /跳转到新的 pc 处执行,即跳转到中断服务子程序执行功能:中断分发,寻找中断服务子程序的地址3.3. 程序段程序段 3 3:D D MAMA p8

3、3p83rDISRC2 = (int) (Buf + 0x30); /0x31000030(Remove header) ;传输的源数据的起始地址rDISRCC2 = (04) start piling. 接收 FIFO 访问模式为 DMA 模式,接收 FIFO 使能控制为使能rIISCON |= 0x1; /start IIS return MMSYSERR_NOERROR;IIS 总线接口相关寄存器初始化二、二、 程序设计程序设计1.设计程序,写出实现 LED1LED4 轮流闪烁的程序代码。 void dely(U32 tt) U32 i;for(;tt0;tt-)for(i=0;i12)

4、 ChangeClockDivider(key, 12); MMU_DisableICache();MMU_DisableDCache();rGPBCON = 0x155555;data = 0x06;while(1)rGPBDAT = (data5);dely(120);data =data; return 0; 2. 使用 S3C2410A 的 A/D 转换器进行模拟信号到数字信号的转换。int ReadAdc(int ch) int i;static int prevCh=-1;rADCCON = (114)|(preScaler6)|(ch3); /setup channelif(pr

5、evCh!=ch) rADCCON = (114)|(preScaler6)|(ch3); /setup channel for(i=0;iLOOP;i+);/delay to set up the next channel prevCh=ch;rADCCON|=0x1; /start ADCwhile(rADCCON /check if Enable_start is lowwhile(!(rADCCON /check if EC(End of Conversion) flag is highreturn ( (int)rADCDAT0 3. 用 S3C2410 的 I/O 口 B 实现 4

6、 个按键的键盘接口程序。/* * 1X6 矩阵键盘 六个输入引脚: EINT8 -( GPB0 ) EINT11 -( GPB3 ) EINT13-( GPB5 ) EINT14-( GPB6 ) * * U8 Key_Scan( void ) Delay( 80 ) ; if( (rGPBDAT else if( (rGPBDAT else if( (rGPBDAT else if( (rGPBDAT else return 0xff; static void _irq Key_ISR(void) U8 key; U32 r;EnterCritical( if(rINTPND=BIT_EIN

7、T8_23) ClearPending(BIT_EINT8_23);if(rEINTPEND if(rEINTPEND if(rEINTPEND if(rEINTPEND key=Key_Scan(); if( key = 0xff ) Uart_Printf( “Interrupt occur. Key is released!n“) ; elseUart_Printf( “Interrupt occur. K%d is pressed!n“, key) ; ExitCritical( 4. 用 S3C2410A 或 S3C2440 的串口 0 实现串口通信。包括初始化程序,发送 程序或接收

8、程序。 void Uart_Init(int pclk,int baud)int i;if(pclk = 0)pclk = PCLK;rUFCON0 = 0x0; rUMCON0 = 0x0; rULCON0 = 0x3; rUCON0 = 0x245; rUBRDIV0=( (int)(pclk/16./baud+0.5) -1 ); 5. 完成触摸屏测试程序设计。void Test_Touchpanel(void)rADCDLY=50000;/Normal conversion mode delay about rADCCON=(114)+(ADCPRS6); /ADCPRS En, AD

9、CPRS Valuep121 分频器使能,分频器数值设置Uart_Printf(“ADC touch screen testn“);rADCTSC=0xd3; /Wfait,XP_PU,XP_Dis,XM_Dis,YP_Dis,YM_En p121pISR_ADC = (int)AdcTsAuto; 中断向量设置rINTMSK=BIT_ADC; /ADC Touch Screen Mask bit clearrINTSUBMSK=(BIT_SUB_TC);开中断Uart_Printf(“nType any key to exit!n“);Uart_Printf(“nStylus Down, p

10、lease. n“);Uart_Getch();rINTSUBMSK|=BIT_SUB_TC;关中断rINTMSK|=BIT_ADC;Uart_Printf(“Touch Screen Test is Finished!n“);以上编程中用到的 S3C2410A 或 S3C2440B 的相关寄存器在考试中会给出表格,如下形式:UFCONn 的位功能位描述发送 FIFO 的触发条件选择7:600:空;01:4 字节;10:8 字节;11:12 字节接收 FIFO 的触发条件选择5:400:4 字节;01:8 字节;10:12 字节;11:16 字节保留3保留位Tx FIFO 复位位2该位在 FIFO 复位后自动清除。0:正常;1:Tx FIFO 复位Rx FIFO 复位位1该位在 FIFO 复位后自动清除0:正常;1:Rx FIFO 复位FIFO 使能控制00:禁止;1:使能

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号