isr相关内容

ISR 和函数调用的区别?

我想了解 ISR(中断服务程序)和函数调用之间的区别. 我觉得从硬件的角度来看,函数调用和 ISR 是一样的.如果我错了,请纠正我.我能找到的关于 ISR 和函数调用的所有信息如下: ISR: 在执行过程中随时可能发生的异步事件程序 将 PC、标志和寄存器保存在堆栈中,并禁用所有中断并加载 ISR 的地址 ISR 不能有可传递给它的参数 无法返回值 启用中断 ..

是否可以在运行时在 M0+ 上设置 ISR 处理程序

我的 SAMD21 ARM M0+ 有一个“默认"resetVectors.c 文件.它看起来像: __attribute__ ((section(".vectors")))const DeviceVectors exception_table = {...}; 其中定义了不同处理程序存根的位置.出于测试目的,我想使用其中一个未使用的外设 IRQ. 默认情况下,未使用的地址设置为 NUL ..
发布时间:2021-11-17 22:34:12 其他开发

FIQ和IRQ中断系统有什么区别?

我想知道FIQ和IRQ中断系统在任何微处理器,例如:ARM926EJ. 解决方案 现代 ARM CPU(和其他一些 CPU)的一个特性. 来自专利: 一种快速执行的方法数字数据处理器中的中断有能力处理更多提供的中断不止一个.当一个收到快速中断请求标志被设置并且程序计数器和条件代码寄存器是存储在堆栈中.在结束时中断服务程序返回从中断指令检索条件码寄存器包含数字的状态数据处理器并检 ..
发布时间:2021-11-17 21:37:38 其他开发

ISR 和中断处理程序之间有区别吗?

我正在研究操作系统,并且遇到了 ISR 和中断处理程序这两个术语.它们是同一机制的两个词吗?如果不是,有什么区别? 解决方案 中断处理程序和 ISR 没有区别. Wiki 说: 在计算机系统编程中,中断处理程序,也称为中断服务例程或 ISR,是一个回调函数 [...] ..
发布时间:2021-06-12 20:37:02 其他开发

在32位Open Watcom C中生成FAR跳转指令

我需要生成一个远跳转指令以跳转到另一个ISR(中断服务程序).我正在开发32位FreeDOS应用程序. 阅读OW手册( cguide.pdf 和 clr.pdf ),我想出了两种成功编译w/o任何警告或错误. /* Code Snippet #1 */ #pragma aux old08 aborts ; void (__interrupt __far *ol ..
发布时间:2020-06-26 19:45:55 其他开发

是否可以在M0 +上的运行时设置ISR处理程序

我的SAMD21 ARM M0 +有一个“默认" resetVectors.c文件.它的外观如下: __attribute__ ((section(".vectors"))) const DeviceVectors exception_table = { ... }; 其中定义了不同处理程序存根的位置.出于测试目的,我要使用未使用的外围IRQ之一. 默认情况下,未使用的地址 ..
发布时间:2020-06-26 19:45:52 其他开发

使用类方法的C ++ ISR?

是否可以将类方法用作中断服务程序? 我有一个ISR编写并使用以下函数在C中工作: static void interrupt far ISR(...) {} 我已经尝试在C ++中创建一个方法(原型): void interrupt far ISR(...); 然后执行: #pragma interrupt void interrup ..
发布时间:2020-06-26 19:45:50 C/C++开发

ISR中可以使用断点吗?

可以在中断服务程序(ISR)中使用断点吗? 解决方案 是-在模拟器中. 否则,不可以.很难实现,无论如何都是一个坏主意.通常,ISR应该与硬件一起使用,并且每条指令之间只有半秒的间隔,硬件的行为很容易就大不相同. 改为设置某种日志记录系统. ISR还会恶意地从其他进程中“窃取" CPU,因此许多操作系统建议您将ISR保持极短的状态,并仅执行严格的必要操作(例如处理任何紧急 ..
发布时间:2020-06-26 19:45:45 其他开发

静态定义的IDT

我正在从事一个对启动时间有严格要求的项目.目标架构是在32位保护模式下运行的基于IA-32的处理器.可以改进的领域之一是当前系统动态初始化处理器的IDT(中断描述符表).由于我们没有任何即插即用设备,并且系统是相对静态的,因此我希望能够使用静态构建的IDT. 但是,这对于IA-32拱门来说是麻烦的,因为8字节的中断门描述符会分割ISR地址. ISR的低16位出现在描述符的前2个字节中,其他一 ..
发布时间:2020-06-26 19:45:42 其他开发

无法修改数据段寄存器.尝试抛出“常规保护错误"时

在此之后,我一直在尝试创建一个ISR处理程序 James Molloy的教程,但我知道了卡住.每当我抛出软件中断时,通用寄存器和数据段寄存器都会被CPU自动推入的变量压入堆栈.然后,将数据段更改为0x10的值(内核数据段描述符),以便更改特权级别.然后,在处理程序返回后,将对这些值进行pop运算.但是,只要更改ds中的值,就会引发错误代码为0x2544的GPE,并在几秒钟后重新启动VM. (链接器 ..
发布时间:2020-06-26 19:45:39 其他开发

进行微操作的顺序是什么?

请考虑以下微操作顺序. MBR ← PC MAR ← X PC ← Y Memory ← MBR 以下哪个是该序列可能执行的操作? 指令提取 操作数获取 条件分支 启动中断服务 答案是选项(4). 我的尝试: 指令提取:提取指令:从PC中的地址读取指令代码,并将其放置在IR中. (IR←内存[PC]) 操作数获取:如有必要,从内存中 ..

PLP:计时器和按钮中断服务程序

所以我在弄清楚如何触发定时器中断(每200个周期)和按钮中断时遇到了麻烦.当我按下按钮中断时,似乎要做的只是暂时暂停计数器一秒钟,然后继续计数.然后,无论我在PLP上单击它的频率如何,它都永远不会注册另一个按钮中断.假定按钮中断要做的是将寄存器$ a1设置为1(或非零数字),该寄存器用于复位计数器.假定计时器中断每200个周期使LED闪烁一次,然后在另外200个周期后熄灭,依此类推.已经提供了七段 ..
发布时间:2020-05-09 23:06:30 其他开发

ISR如何作为回调函数

维基百科条目指出: 在计算机系统编程中,中断处理程序(也称为中断服务程序或ISR)是微控制器固件,操作系统或设备驱动程序中的回调函数,其执行是通过接收中断来触发的. /p> ISR如何回调.堆栈中存储的PC值本身就是回调函数吗? 也就是说,ISR会回调被中断的函数.因此,中断的函数是回调. 解决方案 一些设置代码将ISR函数的地址存储在中断向量表中,在该地址说"给我回电"当中 ..
发布时间:2020-05-09 19:46:54 其他开发

如何衡量ISR执行时间?

我在Linux内核2.6.32上. 我面临的一个问题是,在一些我不知道的情况下/某些情况下,两个ISR(串行和以太网)之一要花费更多的时间(数百微秒).我想得到每次ISR执行时的时差. 最好的方法是什么(就所涉及的开销而言,这是最便宜的).我看不到ARM体系结构具有某些TSC寄存器(read_tsc api),因为它可以在其他体系结构上提供给我直接访问时间的权限. 所以想法是 1)调用 ..
发布时间:2020-05-02 03:19:31 其他开发

发出信号并中断比较

基于各种参考,我在Linux中对 signals的主观定义是“用于将特定事件的发生通知进程的触发器.此处的事件可能是指软件异常.此外,信号也可能是用于IPC机制." 我的问题是 我假设只有异常(软件中断)是通过信号通知的.硬件中断的情况如何? 信号的各种来源是什么?在我看来,内核始终是信号的来源.(用于IPC时除外) 信号处理程序和ISR之间有什么区别?. 信号阻止和中断屏蔽之间有区别 ..
发布时间:2020-05-01 09:19:49 服务器开发

ISR和函数调用之间的区别?

我想了解ISR(中断服务程序)和函数调用之间的区别。 从硬件的角度来看,我觉得函数调用和ISR都是一样的。请纠正我错了 我可以找到有关ISR和函数调用的内容如下: ISR: 程序 执行 期间可能发生的异步事件>将PC,标志和寄存器保存在堆栈中, 禁用所有中断并加载ISR的地址 ISR不能有参数可以传递给它 无法返回值 启用中断 一般小因为他们正在花时间进行 ..

可以在ISR中使用断点吗?

可以在中断服务程序(ISR)中使用断点? 解决方案 是 - strong>。 否则,否。在任何情况下都难以脱身,是一个坏主意。 ISR(通常)应该与硬件一起工作,而当您在每个指令之间留下半秒的时间时,硬件可能会有很大差异。 设置一些ISR也不幸地从其他进程“窃取”CPU,所以许多操作系统建议保持您的ISR非常短暂,只做什么是 >严格必需(例如处理任何紧急硬件的东西,并安排将正确 ..
发布时间:2017-04-21 20:42:37 开发方法

8086大会键盘执行ISR

我不明白为什么键盘中断服务程序,我写我的程序(应打印“Hello World”的每个I PSS的关键$ P $时间),当我执行上的DOSBox中的.exe只发生一次。 这里是code: NAME KEYB桩段STACK DB 20 DUP('LA桩“) 桩ENDS DONNEE段 消息分贝“你好世界国际!$” DONNEE完段计划 承担CS:计划,DS:DONNEE,ES:没事,SS ..
发布时间:2016-07-18 21:26:19 .NET Framework