为什么在写中断函数时要写#pragma CODE_SEG __NEAR_SEG NON_BANKED这句话,是不是没什么实际作用的啊'中断函数置于非分页区内'这是什么意思啊,非分页区是什么啊

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/20 04:26:58
为什么在写中断函数时要写#pragmaCODE_SEG__NEAR_SEGNON_BANKED这句话,是不是没什么实际作用的啊''中断函数置于非分页区内''这是什么意思啊,非分页区是什么啊为什么在写中断函

为什么在写中断函数时要写#pragma CODE_SEG __NEAR_SEG NON_BANKED这句话,是不是没什么实际作用的啊'中断函数置于非分页区内'这是什么意思啊,非分页区是什么啊
为什么在写中断函数时要写#pragma CODE_SEG __NEAR_SEG NON_BANKED这句话,是不是没什么实际作用的啊
'中断函数置于非分页区内'这是什么意思啊,非分页区是什么啊

为什么在写中断函数时要写#pragma CODE_SEG __NEAR_SEG NON_BANKED这句话,是不是没什么实际作用的啊'中断函数置于非分页区内'这是什么意思啊,非分页区是什么啊
是这样的,飞思卡尔单片机.拿s12系列的来说,NON_BANKED一般位于0xc000-0xffff区域,而这个区域是16位单片机可以直接寻址的区域,而__NEAR_SEG告诉编译器函数放在固定页中,只有固定页中的函数才能访问其他页的数据,同时CODE_SEG定义了一个代码段.
所以,你可以这样理解:中断函数存放在CPU可以直接寻址的范围内,这样就可以节省中断函数的访问时间,方便调用中断函数(因为中断函数要求的就是实时性)...顺便再多说一句,如果你不写这一句,默认的是将函数存放在分页的flash里面,此时函数为far函数,访问far函数是相当耗费时间的一件事,中断函数毫无实时性可言.
一般只有中断函数时才用__NEAR_SEG,对于一般函数来说__NEAR_SEG毫无作用...
回答你的问题:非分页区是不能进行分页的区域(不需要设置PPAGE寄存器),cpu可以直接对其进行访问,访问速度快...

为什么在写中断函数时要写#pragma CODE_SEG __NEAR_SEG NON_BANKED这句话,是不是没什么实际作用的啊'中断函数置于非分页区内'这是什么意思啊,非分页区是什么啊 C语言中断函数和普通的C语言函数的区别在哪里?中断函数主要用于什么操作 请分条指出为什么中华文明差点在本土中断,而又没有中断的原因. 位错线为什么不能在晶体内中断呢 为什么中华文明没有中断 嵌入式系统uc/os-II移植中OS_TASK_SW()函数做任务切换时候用中断调用OSCtrxSw()时,为什么要用中断调用而不是直接调用函数呢?此处用中断有什么特别的用处? 为什么中断函数中会有P1=~P1这句,请问他有什么作用啊 中国为什么历史没中断 为什么中华文明是唯一没有在本土中断的古文明为什么中华文明是唯一一个没有在本土中断的古文明? #pragma pack(1) and #pragma pack(push, 中断函数的标准形式是什么意思 谢谢 单片机定时器1的中断函数 为什么要写函数在L上有界 arduino做循迹智能小车的问题用的红外传感器,检测地面的白纸黑线循迹,传感器不听话··很难调好怎么办?定义在void setup的中断是同级中断吗如果要中断嵌套,是把attachInterrupt写在中断函数里面 中国古代历史记载为什么没有中断? 为什么日全食会使短波通讯中断 为什么地震会导致通信中断? STM32为什么进入了中断函数还要检查中断标志位啊?void DMA1_Channel6_IRQHandler(void){/* Test on DMA1 Channel6 Transfer Complete interrupt */if(DMA_GetITStatus(DMA1_IT_TC6)){/* Get Current Data Counter value after complete transfer */