L9-D17中断控制器

目录

17.1中断控制器

17.2Exynos4412

17.3中断控制器寄存器详解

17.4中断控制器编程

作业


17.1中断控制器

 中断控制器作用:

  • 多个中断同时产生时可对这些中断挂起排队,然后按照优先级依次发送给CPU处理  
  • 可以为每一个中断分配一个优先级  
  • 一个中断正在处理时若又产生其它中断,可将新的中断挂起,待CPU空闲时再发送  
  • 可以为每一个中断选择一个CPU处理  可以为每一个中断选择一个中断类型(FIQ或IRQ)  
  • CPU接收到中断信号后并不能区分是哪个外设产生的,此时CPU可查询中断控制器  
  • 来获取当前的中断信号是由哪个硬件产生的,然后再进行对应的处理  
  • 可以打开或禁止每一个中断  ... ...

17.2Exynos4412

 

17.3中断控制器寄存器详解

### VS运行程序时输出窗口一闪而过的原因分析 当在Visual Studio中编写并运行控制台应用程序时,可能会遇到输出窗口快速关闭的现象。这是因为默认情况下,在调试模式下启动的应用程序会在执行完成后立即退出[^1]。 --- ### 解决方案概述 以下是几种常见的解决方法: #### 方法一:通过修改项目设置保持窗口打开状态 可以在项目的属性配置中启用“Ctrl+F5”运行选项(即不附加调试器)。这种方式可以让程序运行完毕后暂停直到手动关闭窗口[^3]。 #### 方法二:使用代码实现等待操作 可以通过向代码中添加特定函数来阻止窗口自动关闭。这些函数可以捕获用户的键盘输入或其他交互信号后再继续执行下一步动作。具体如下: ##### 使用 `getchar()` 函数 适用于C/C++语言开发场景下的简单处理方式之一便是调用标准库头文件 `<stdio.h>` 中定义好的`getchar()` 功能[^5]: ```c++ #include <stdio.h> int main() { printf("Hello, world!\n"); getchar(); // 等待用户按键 return 0; } ``` ##### 调用 `system("pause")` 这是另一种常见做法,它依赖于操作系统命令提示符工具完成相同效果: ```cpp #include <cstdlib> #include <iostream> using namespace std; int main(){ cout << "Hello World!"<< endl; system("pause"); // 显示&#39;Press any key to continue...&#39; return 0; } ``` 需要注意的是该指令仅限Windows平台有效,并且可能带来安全风险因此并不推荐作为长期解决方案[^2]。 ##### 利用 `cin.get()` 或者 `std::getline(std::cin,...)` 对于更现代化的标准流接口应用场合,则可考虑采用上述两种形式其中之一达成目的: ```cpp #include <iostream> using namespace std; int main(){ int num=42; cout<<"The answer is "<<num<<"\n"; cin.get();//或者也可以写成 getline(cin,str); //这里str是一个string类型的变量名 return 0; } ``` #### 方法三:加入专门用于读取输入的语句 如果是基于.NET框架构建出来的C#类库工程的话,那么可以直接利用内置静态成员方法——Console.ReadLine()[^4]: ```csharp class Program{ static void Main(string[] args){ System.Console.WriteLine("This message will stay visible."); // Wait until Enter pressed. System.Console.ReadLine(); } } ``` 以上任意一种技术手段都能够有效地防止终端界面迅速消失不见的情况发生。 --- ### 总结 针对不同编程环境以及个人偏好可以选择合适的策略应对这一现象。无论是调整IDE行为还是适当改造源码逻辑均能取得良好成效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值