interrupt相关内容

找出在x86引导程序中引导了哪个驱动器

我正在为x86编写游戏引导程序. 有一次,在启动的早期,我需要将某些部分从启动驱动器加载到内存中.我使用中断0x13(ah = 02)来执行此操作,当我在虚拟机中尝试时,它就像一个超级按钮.但是,当我将映像刻录到USB驱动器时,机器无法启动,并且将其固定到扇区加载指令中,显然我的USB驱动器不是驱动器0(软盘A),因此读取失败. 如何确定用于引导的驱动器? 谢谢! 解决方案 B ..
发布时间:2020-09-22 19:25:56 其他开发

AVR I2C故障

我正在尝试使用I2C与AT90CAN128进行通信,但是它并没有超出while循环的要求: while(!(TWCR & (1 ..
发布时间:2020-09-15 05:07:45 其他开发

XMega计时器和微秒

我正在尝试从atxmega128a3u中释放一些数据,并且需要以最快4us的速度切换一个引脚,但是到目前为止,我还没有找到一个接近它的地方... 在这里,我将计时器设置为88us,但是大约是146us. int main(void) { //CRYSTAL SETUP OSC_XOSCCTRL = OSC_FRQRANGE_12TO16_gc ..
发布时间:2020-09-15 05:05:12 其他开发

GCC在ISR中生成无用的代码

我有一个非常简单的中断服务例程(ISR),该例程是为atmega328编写的,并使用AVR Studio通过avrgcc(使用-Os)进行了编译. ISR (TIMER0_OVF_vect) { txofcnt++; //count overflows and store in uint16_t } 如果您注意到生成的程序集(如下所示),它将使用r24,r25来使volat ..
发布时间:2020-09-15 05:03:54 其他开发

易失性vs内存屏障的中断

让x和y是在主代码和中断代码之间共享的变量. 我对volatile的想法是,对于并且也在主代码中使用的硬件变量和中断变量,它始终是唯一需要的. 通过禁用中断,可以保证主代码中x和y的每种用法都是原子的. x和y确实需要为volatile,还是在使用它们强制从RAM重新加载变量之前放置内存屏障是否足够? A) volatile bool x; volatile int ..
发布时间:2020-09-13 19:21:46 其他开发

在BIOS中发出哔声

计算机启动时,它会从BIOS扬声器中发出蜂鸣声 . 如何在Assembly或C ++中做到这一点? 显然,我想通过BIOS Speaker发出蜂鸣声. 记住我的意思是BIOS扬声器 它为此有中断吗?我搜索了一下,但没有找到.. 我使用了一些中断,但是没有这样做.以下代码: int main(){ cout ..
发布时间:2020-09-13 01:52:27 C/C++开发

试图了解asm中断,特别是16h func 01H

这是家庭作业,我不希望您解决我的问题,只需要一些了解... 我必须在Dosbox中使用ASM和C.我的第一个问题是我不太了解如何使用bios中断(任何带有代码示例的优秀教程都将不胜感激),好吧,我到了那里,每个中断都有自己的功能和参数... 无论如何,我尝试过...我需要做的是,从理论上讲,很简单,我只需要从键盘上获取一个字符,如果它是1或0键,如果我有5次击键,就算一下键1,我打开扬 ..
发布时间:2020-09-13 00:47:14 其他开发

如何在DOS程序集中正确挂接Interrupt 28h并将其还原?

我试图将Interrupt 28h的处理程序设置为我自己的例程,恢复涉及的所有寄存器和标志,并恢复原始的Interrupt处理程序. 我正在VirtualBox的DOSBox和MS-DOS 6.22下使用NASM汇编器. 我已经考虑过调试,但是在TSR程序上进行调试听起来似乎是不可能的.我尝试将数据段推到代码段上,并保存原始数据段以供以后还原,但是即使还原了数据段后,它似乎仍挂起了计算机. ..
发布时间:2020-09-13 00:34:31 其他开发

如何清除屏幕而不必填充屏幕

是否存在中断服务程序来帮助我清除终端的屏幕?可以在Windows上使用吗? 解决方案 通过BIOS设置图形模式(int 10h,AH = 0)将清除屏幕. 通过BIOS向上或向下滚动屏幕(在AH = 6或7时为10h)也可以清除屏幕. 这仅在可以调用BIOS服务功能的地方起作用. MSDOS始终可以正常工作. 在Windows中,这仅在DOS应用程序中有效,并且Wi ..
发布时间:2020-09-12 23:18:55 其他开发

如何打印RTC使用汇编中断向量1ah

我需要输出一个中断1h. (RTC). 但是我不知道如何在控制台中打印RTC.我应该使用中断10h,还是有其他方法? 我已经尝试在Google中找到一些,然后直接将中断10如下所示. mov ah 0x02 int 0x1a 但是它不起作用.我知道代码很差. 请给我一些帮助.如果您能为我树立榜样,我将不胜感激. 解决方案 查看文档对于int 0x10,我们看到了许多功能.您没有指 ..
发布时间:2020-09-12 23:11:39 其他开发

在x86软件中断期间,究竟何时进行上下文切换?

我之所以这样问,是因为我试图在玩具内核中实现中断.因此,我知道发生中断时,CPU会将各种信息位压入堆栈.但是,我在网上进行搜索的每个地方都会以不同的顺序显示不同的信息.我也知道,如果中断发生在用户模式(Ring 3)中,则CPU必须先切换到内核模式(Ring 0),然后才能执行ISR.我认为这与TSS和ss和esp有关,但是我不确定.我已经在互联网上阅读了各种不同的解释,但尚未在其中找到任何统一之 ..
发布时间:2020-09-12 22:53:08 其他开发

ARM中断和上下文保存

我试图了解中断在ARM体系结构(具体来说是ARM7TDMI)中如何工作.我知道有七个异常(重置,数据中止,FIQ,IRQ,预取中止,SWI和未定义指令),它们以特定的模式执行(分别是Supervisor,Abort,FIQ,IRQ,Abort,Supervisor和Undefined).我有以下问题. 1.当CPSR(状态寄存器)中的I和F位设置为1以禁用外部中断和快速中断时,是否也禁用了其 ..
发布时间:2020-09-07 03:08:19 其他开发

ARM Cortex M4 SVC_Handler"UsageFault"

我正在为一个个人微型ARM内核项目创建一个上下文切换程序,并且上下文切换程序完全用Assembly编写.问题是当我进行SVC调用(svc 0)时,我输入了SVC_Handler,但是当我尝试执行下一条指令时,我随后输入了另一个处理程序("UsageFault_Handler").该错误发生在我可以弹出SVC_Handler中的任何寄存器之前. 这是我的gdb屏幕的寄存器转储(在我进入SVC_ ..
发布时间:2020-09-07 02:55:53 其他开发

STM32F4上的libopencm3中断表

我在我的STM32F4上的项目中使用libopenCM3.我以前使用过标准外围设备库和ST开发的较新的硬件抽象层. 在这些库中,您具有带有矢量表定义的汇编文件(启动文件). 这是我为libopenCM3所缺少的.您能告诉我在哪里可以找到这张桌子吗?还是以其他方式完成了? 我真的需要在项目中使用中断. 谢谢. 解决方案 您能告诉我哪里可以找到这张桌子吗? 中 ..
发布时间:2020-09-07 02:53:07 其他开发

中断在多核系统中如何工作?

我想为Raspberry pi 2上的按钮中断编写代码.此板使用QUAD Core Broadcom BCM2836 CPU(ARM架构).这意味着该板上只有一个CPU(Raspberry pi 2).但是我不知道如何在多核系统中进行中断.我想知道中断线是连接到每个内核还是一个CPU.因此,我通过Google找到了下面的段落. 多核系统上的中断 在多核系统上,每个中断都定向到一个(并且只有一 ..
发布时间:2020-09-07 02:45:26 其他开发