DSP28335四路PWM移相异常处理与中断向量解析

需积分: 48 12 下载量 37 浏览量 更新于2024-08-06 收藏 1MB PDF 举报
"Cortex-M0权威指南 Cortex-M0参考手册" 本文主要介绍了基于DSP28335处理器的异常处理机制,特别是针对Cortex-M0内核的中断和故障管理。Cortex-M0是ARM公司设计的一种低功耗、高性能的微控制器核心,广泛应用于嵌入式系统。 在Cortex-M0处理器中,异常处理被分为不同类型的中断和故障,具有不同的优先级和处理方式。异常类型包括: 1. **复位**:这是最高优先级的异常,处理器在上电或复位时进入复位状态,向量地址为0x00000004。 2. **非 maskable interrupt (NMI)**:NMI是一种不可屏蔽的中断,优先级仅次于复位,向量地址为0x00000008。 3. **HardFault**:HardFault是系统发生的严重错误,用于处理其他异常处理程序无法处理的情况,向量地址为0x0000000C。 4. **保留异常**:异常编号4-10和12-13是保留的,不供常规使用。 5. **SVCall (Supervisor Call)**:这是一种软件触发的服务调用,通常用于系统级操作,其优先级可配置,向量地址为0x0000002C。 6. **PendSV (Pending Supervisor Call)**:用于实现任务切换或高级调度,优先级可配置,向量地址为0x00000038。 7. **SysTick**:系统定时器中断,常用于实时操作系统(RTOS)的时基,优先级可配置,向量地址为0x0000003C。 8. **IRQ (Interrupt Request)**:中断编号16及以上的中断,中断优先级可配置,向量地址从0x00000040开始,按4字节步长递增。 异常处理程序分为三类: - **中断服务程序(ISR)**:用于处理IRQ0到IRQ31的中断事件。 - **故障处理程序**:HardFault是唯一由故障处理程序处理的异常。 - **系统处理程序**:NMI、PendSV、SVCall、SysTick和HardFault由系统处理程序处理。 处理器在异常触发后,可能会执行一些条件指令,然后跳转到相应的异常处理程序。异常的优先级可以通过中断优先级寄存器进行配置,允许软件根据需求调整中断处理的顺序。 **向量表**是处理器在异常发生时查找处理程序地址的关键数据结构。它包含了复位时的堆栈指针初始值以及所有异常向量的地址。每个向量的最低有效位必须为1,表示异常处理程序是用Thumb指令集编写的。 这个资料来源于广州周立功单片机发展有限公司,提供Cortex-M0的参考手册,帮助用户理解和使用该处理器进行嵌入式开发。该公司提供销售和服务支持,并在多个城市设有办事处,方便用户获取技术支持和产品购买。