MATLAB模拟动力系统:指定中断向量与异常处理
需积分: 49 105 浏览量
更新于2024-08-09
收藏 3.92MB PDF 举报
"MPLAB XC16 C 编译器 用户指南 - 指定中断向量在模拟动力系统吸引子中的应用"
在MATLAB中模拟动力系统吸引子时,可能会涉及到微控制器的中断处理机制,尤其是对于16位器件。在微控制器硬件中,存在一个主中断向量表,部分设备还配备了可选的备用中断向量表。中断向量是处理器在响应中断时跳转到的内存地址,它指向相应的中断服务函数。
14.4.1 中断向量使用的关键在于设置中断处理函数。当INTCON2寄存器的ALTIVT位被置1时,系统将使用备用中断向量表。对于支持可禁止和移动的备用中断向量表的器件,可以通过配置字AIVTDIS和BSLIM进行设置。`#pragma config AIVTDIS = OFF` 可启用向量表,`#pragma config BSLIM = 0x1FFD` 定位向量表的边界。之后,可以定义中断服务函数,如`void __attribute__((interrupt)) _AltT1Interrupt(void) {}`。
中断服务函数需要保护系统资源并在完成后使用RETFIE指令返回到原来的执行流程。C语言可以用来编写中断处理程序,编译器会自动处理资源保护和正确返回。函数命名需遵循向量表中的格式,例如`void __attribute__((interrupt(auto_psv))) _StackError(void);` 将自动填充堆栈错误向量。未指定处理程序的中断会自动连接到默认的中断处理程序,这个默认处理程序通常会导致器件复位。
中断向量表的布局取决于具体器件系列,每个异常向量占用一个程序字。在编程时,可以参照器件系列的中断向量表进行中断函数的命名和分配。需要注意的是,器件复位不通过中断向量表,而是直接将程序计数器设为0,启动执行位于地址0的代码,通常是C运行时启动模块。
在使用MPLAB XC16 C编译器时,用户指南提供了详细的中断处理和配置指导,确保了程序的正确运行和中断服务的高效管理。虽然编译器和微控制器的代码保护功能提供了一定程度的安全性,但用户仍需了解可能存在代码篡改的风险,并遵循最佳实践来保护知识产权。
2021-05-30 上传
2022-07-14 上传
494 浏览量
391 浏览量
597 浏览量
点击了解资源详情
点击了解资源详情
龚伟(William)
- 粉丝: 31
- 资源: 3899
最新资源
- FX1S-30MT.zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例
- guitar-tuner:基于浏览器的吉他调音器
- exemplo-placeholder
- 行业分类-设备装置-可预置于建筑外墙体的排烟、通气设备连接组件.zip
- 2.2版本EDEM+FLUENT耦合接口编译工具.rar
- Signal-Processing:关于压缩感知和小波变换的一些项目
- leb_data_viz
- 自定义剪贴板数据类型的应用-易语言
- 行业分类-设备装置-可视智能卡擦写设备.zip
- raspberry-pi:测试Mono存储库
- Eventor:课程的最终项目(团队项目2)
- Quantify:迄今为止,这是我最好的项目之一-动态壁纸应用
- LinkedInClone-CC-HU
- aframe-sandbox:每个虚拟主机框架的区域测试/每个VR的A-Frame
- matebook 13 14 2018-2020 黑苹果 最新 EFI opencore版 Monterey 12.3
- 行业分类-设备装置-可移动式井字形型钢脚手架.zip