"该资源提供了一组Cortex M3处理器的汇编程序示例,适用于LPC1768微控制器。这些示例代码带有详细的注释,旨在帮助初学者理解Cortex M3芯片和ARM汇编语言的基础知识。文件包括配置CPU设置、外设初始化以及中断处理等功能的代码段。" 在Cortex M3处理器的开发中,汇编语言常常用于编写关键性能敏感的代码或系统初始化部分,因为它们提供了对硬件的直接控制。LPC1768是一款基于Cortex M3内核的微控制器,常用于嵌入式系统设计,具有丰富的外设接口和高性能的处理能力。 此示例代码首先引入了几个配置文件,如"LPC1700Cfg.s",它可能包含了针对LPC1768的CPU设置;"LPC1700PinCfg.s"可能负责配置GPIO引脚以实现特定功能;而"TargetCfg.s"可能涉及系统的内存布局和时钟配置。接下来的"THUMB"指令指示使用THUMB指令集,这是ARM架构的一个子集,用于生成更小、更高效的代码。 "AREARESET,CODE,READONLY"这部分定义了一个只读的CODE区域,通常包含程序的机器码。然后是中断向量表,这是每个嵌入式系统的重要组成部分,它定义了处理器在发生中断时应跳转到的处理程序地址。例如,"Reset_Handler"是复位处理程序,"NMI_Handler"是非 maskable interrupt (NMI) 处理程序,"HardFault_Handler"处理硬故障,而"SVCall_Handler"则处理软件中断请求(SVC)。 接着,示例列举了一系列中断处理程序,如定时器中断和UART串行通信中断。这些中断处理程序的定义是处理设备事件的关键,当外部设备(如看门狗定时器或UART)触发中断时,处理器会跳转到相应的地址执行中断服务例程。 最后,示例中的"DCD..."语句定义了中断处理程序的地址,这有助于构建中断向量表。中断处理程序的顺序和编号通常与微控制器的数据手册中列出的一致。 通过分析和学习这个示例,开发者可以了解如何在Cortex M3微控制器上编写汇编代码,进行系统初始化,配置中断服务,并且掌握基本的汇编语法和编程技巧。这对于深入理解和优化Cortex M3嵌入式系统的性能至关重要。
GET ..\ASMFILE\LPC1700PinCfg.s ;包含芯片管脚功能定义文件
GET ..\ASMFILE\TargetCfg.s ;包含目标板常数内存定义文件
PRESERVE8
THUMB
;Vector Table Mapped to Address 0 at Reset复位后映射在地址0x00000000处的向量表
AREA RESET, CODE, READONLY
DCD Stack_Top ; 0: Top of Stack 堆栈顶端定义
DCD START ; 1: Reset Handler 复位入口地址
DCD NMI_Handler ; 2: NMI Handler 不可屏蔽中断
DCD HardFault_Handler ; 3: Hard Fault Handler 硬件失败中断
DCD MemManage_Handler ; 4: MPU Fault Handler 存储器管理失败
DCD BusFault_Handler ; 5: Bus Fault Handler 总线失败
DCD UsageFault_Handler ; 6: Usage Fault Handler 用法失败
DCD 0 ; 7: Reserved 保留[自生成校验和值]
DCD 0 ; 8: Reserved 保留
DCD 0 ; 9: Reserved 保留
DCD 0 ;10: Reserved 保留
DCD SVC_Handler ;11: SVCall Handler 调用SVC异常中断
DCD DebugMon_Handler ;12: Debug Monitor Handler 调试监视器请求中断
DCD 0 ;13: Reserved 保留
DCD PendSV_Handler ;14: PendSV Handler 系统设备挂起请求
DCD SysTick_Handler ;15: SysTick Handler 系统节拍定时器
;External Interrupts 外部中断
DCD WDT_IRQHandler ;16: Watchdog Timer 看门狗定时器中断
DCD TIMER0_IRQHandler ;17: Timer0 定时/计数器0中断
DCD TIMER1_IRQHandler ;18: Timer1 定时/计数器1中断
DCD TIMER2_IRQHandler ;19: Timer2 定时/计数器2中断
DCD TIMER3_IRQHandler ;20: Timer3 定时/计数器3中断
DCD UART1_IRQHandler ;22: UART1 串口1中断
DCD UART2_IRQHandler ;23: UART2 串口2中断
DCD UART3_IRQHandler ;24: UART3 串口3中断
DCD PWM1_IRQHandler ;25: PWM1 PWM1中断
DCD I2C0_IRQHandler ;26: I2C0 I2C0中断
DCD I2C1_IRQHandler ;27: I2C1 I2C1中断
DCD I2C2_IRQHandler ;28: I2C2 I2C2中断
DCD SPI_IRQHandler ;29: SPI SPI中断
DCD SSP0_IRQHandler ;30: SSP0 SSP0中断
DCD SSP1_IRQHandler ;31: SSP1 SSP1中断
DCD PLL0_IRQHandler ;32: PLL0 Lock (Main PLL) PLL0锁定中断
DCD RTC_IRQHandler ;33: Real Time Clock 实时时钟中断
DCD EINT0_IRQHandler ;34: External Interrupt 0 外部中断0
DCD EINT1_IRQHandler ;35: External Interrupt 1 外部中断1
DCD EINT2_IRQHandler ;36: External Interrupt 2 外部中断2
DCD EINT3_IRQHandler ;37: External Interrupt 3 外部中断3
DCD ADC_IRQHandler ;38: A/D Converter A/D转换器中断
DCD BOD_IRQHandler ;39: Brown-Out Detect 掉电检测中断
DCD USB_IRQHandler ;40: USB USB中断
DCD CAN_IRQHandler ;41: CAN CAN总线中断
DCD DMA_IRQHandler ;42: General Purpose DMA GPDMA中断
DCD I2S_IRQHandler ;43: I2S I2S中断
DCD ENET_IRQHandler ;44: Ethernet 以太网中断
DCD RIT_IRQHandler ;45: Repetitive Interrupt Timer 重复中断定时器
DCD MCPWM_IRQHandler ;46: Motor Control PWM 电机控制PWM
DCD QEI_IRQHandler ;47: Quadrature Encoder Interface正交编码器
DCD PLL1_IRQHandler ;48: PLL1 Lock (USB PLL) PLL1锁定中断
DCD USBActivity_IRQHandler ;49: USB Activity interrupt to wakeup USB活动
DCD CANActivity_IRQHandler ;50: CAN Activity interrupt to wakeup CAN活动
剩余38页未读,继续阅读
- 粉丝: 1
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全