全球旧事资料 分类
件名:TESTIS;功能:实现两个寄存器相加;说明:使用ARMulate软件仿真调试AREAENTRYCODE32STARTMOVLOOPBMOVR1,10BLLOOPADD_SUBR0,0ExamplelCODEREADONLY;声明代码段Examplel;标识程序入口;声明32位ARM指令清除外部中断标识②0x40000000,8④0x7FFFE000,8
设置IO连接,PO16设置为EINTO
设置EINT0为电平触发模式
;设置参数;调用子程序ADD_SUB;跳转到LOOP;R0R0R1;子程序返回;文件结束
ADD_SUBADDSR0,R0,R1MOVEND程序清单42读取SMI立即数T_bitEQUSTMFDMRSSTMEDTSTLDRNEHBICNELDREQBICEQ……0X20SWI_Ha
dlerPC,LR
SP!,R0_R3,R12,LR;现场保护R0,SPSRSP!,R0R0,T_bitR0,LR,_2R0,R0,0xFF00R0,LR,_4R0,R0,0Xff000000;读取SPSR;保存SPSR;测试T标志位;若是Thumb指令,读取指令码(16位);取得Thumb指令的8位立即数;若是ARM指令,读取指令码(32位);取得ARM指令的24位立即数
fLDMFD
SP!,{R0_R3,R12,PC};SWI异常中断返回
程序清单43使用IRQ中断ENABLE_IRQMRSBICMSRMOVR0,CPSRR0,R0,0x80CPSR_C,R0PC,LR
程序清单44禁能IRQ中断DISABLE_IRQMRSORRMSRMOVR0CPSRR0,R0,0x80CPSR_C,R0PC,LR
程序清单45堆栈指令初始化INTSTACKWOVMSRLDRMSRLDR……程序清单46小范围地址的加载……ADRLDRB……DISP_TABDCB0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90R0,DISP_TABR1,R0,R2;加载转换表地址;使用R2作为参数,进行查表R0,LRCPSR_C,0xD3SP,stacksvcCPSR_C,0xD2SP,Stacklrq;保存返回地址;设置管理模式堆栈
;设置中断模式堆栈
程序清单47中等范围地址的加载……ADRBXLR,RETURNIR1……ADRLR1,Thumb_sub+1RETURNI
fCODE16Thumb_subMOV……程序清单48加载32位立即数……LDRLDR……LDRLDRSTR……程序清单49软件延时……DELAYINOPNOPNOPSUBSBNE……程序清单410ARM到Thumb的状态切换;文件名:TEST8S;功能:使用BX指令切换处理器状态;说明:使用ARMulate软件仿真调试AREAENTRYCODE32ARM_CODEBXCODE16THUMB_CODEMOVR0,10MOVADDBR1,20R0,R1;R010;R120;R0R0R1R0ADRR0,THUMB_CODE1;跳转并切换处理器状态Example8,CODE,READONLYR1,R1,1DELAYIR0,IOSETR1,0x00500500R1,R0;IOSET0x00500500R0,IOPINR1,R0;加载GPIO的寄存器IOPIN的地址;读取IOPIN寄存器的值R1,10
END
f第一章思考与练习1、举出3个书本中未提到的嵌入式系统的例子。答红绿灯控制数字空调机顶盒2、什么叫嵌入式系统嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、r
好听全球资料 返回顶部