- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PIE模块配置和控制寄存器 PIEIFRx(x=1~12) PIEIERx(x=1~12) * PPT课件 PIE模块配置和控制寄存器 IFR IER * PPT课件 函数指针类型 在281x C语言中,使用interrupt 中断关键字定义如下数据类型: typedef interrupt void(*PINT)(void); //定义一个新函数型指针数据类型: PINT 。可以用自定义类型PINT 去定义“函数型指针”变量,指向中断函数。 函数型指针变量,其一般形式为:数据类型标识符 (*指针变量名) () ;注意:240x C语言中,interrupt 中断关键字不能 定义函数指针类型,即240x的C编译器编译下列语句出错:typedef interrupt void(*PINT)(void); * PPT课件 PIE中断向量表的定义 typedef interrupt void(*PINT)(void); //指向中断向量的指针类型定义 struct PIE_VECT_TABLE { // 定义了一个中断向量表的结构体类型。 PINT PIE1_RESERVED; // 成员为指向中断服务程序入口的指针 PINT PIE2_RESERVED; PINT PIE3_RESERVED; ······ PINT rsvd12_6; PINT rsvd12_7; PINT rsvd12_8; }; DSP281x_PieVect.h * PPT课件 PIE中断向量表在.cmd文件的地址定位 DSP281x_GlobalVariableDefs.c #pragma DATA_SECTION(PieVectTable,PieVectTableFile); struct PIE_VECT_TABLE PieVectTable; DSP281x_Headers_nonBIOS.cmd MEMORY { PAGE 0: /* 程序存储器 */ PAGE 1: /* 数据存储器 */ DEV_EMU : origin = 0x000880, length = 0x000180 PIE_VECT : origin = 0x000D00, length = 0x000100 ······ } SECTIONS { PieVectTableFile : PIE_VECT, PAGE = 1 ······ } * PPT课件 DSP F2812的C语言预编译命令 #pragma C/C++客体定位到数据命名段的预编译命令 #pragma格式为: C语言格式: #pragma DATA_SECTION ( symbol , section name ); symbol:表示C的客体 C++语言格式: #pragma DATA_SECTION (“ section name ” ); 语法功能:为下一个C++声明的symbol定位到数据命名段 客体定位到数据命名段目的:在.cmd文件中为该数据命名段( section name)分配与系统默认数据段分开的地址空间。 若没有#pragma DATA_SECTION预编译命令,则C/C++编译器就无法将C/C++函数以外声明的客体定位到用户命名数据段! * PPT课件 用户命名数据段的定位 .bss是系统默认未初始化数据段。C/C++编译源代码时,自动为全局变量或静态变量创建.bss段。而函数内部的局部变量使用堆栈段.stack。 .stack系统默认堆栈段。C/C++编译器自动创建的一定空间容量软件堆栈。 C/C++编译器不能自动创建.data段!对于需要定位到系统默认初始化数据段.data的数据表、结构变量等,用户可以用#pragma预编译命令指示C/C++编译器创建一个#pragma命令中所指定的命名数据段。 参考文献“spru514d.pdf” * PPT课件 PIE中断向量表的初始化 DSP281x_PieVect.c const struct PIE_VECT_TABLE PieVectTableInit = { PIE_RESERVED, //为未定义的中断矢量保留的空间 PIE_RESERVED, ······ T2PINT_ISR, // EVA中定时器T2的周期中断服务程序入口地址 T2CINT_ISR, // EVA中定时器T2的比较中断服务程序入口地址 ······ rsvd_ISR, rsvd_ISR
文档评论(0)