key中断
1 中断,很短的时间过去,然后回来。
2 信号,软中断,而中断属于硬中断。
3 实时内核,和分时内核。
4 同步,预先知道发生,异步,预先不知道要发生,中断属于异步。
5 arm一次执行一个中断。
6 irq中断,2现在内核支持这个,fiq,快速中断请求。
7 问题:两个中断同时发生?
更具优先级,一个一个执行,一个执行完后,看PND里边还有中断没有。可以设置的优先级有32个,级联中断的发生顺序是固定的。
8 puts和gets不能同时,因为有两个while循环。
9 SRCPND,SUBSRCPDN,EINTPEND,这3个都是只要有中断发生就自动至1;INTPND里边只能有一个为 1.
10 INTMOD判IRQ,还是fiq
11 60个中断源,0~31号中断。
12 屏蔽0中断,有一种方式,INTMASK
屏蔽8中断,也是只有一种方式,EINTMASK;
13 s3c2440中的ADC和UART中属于片内级联,TIMER LCD属于一级中断,而2410中则不是,正好相反。
14 问题对于寄存器打的清0
void clear_srcpnd(int eintnum)
{
INTERRUPT.SRCPND |= (0x1<<eintnum);
}
void clear_intpnd(void)
{
INTERRUPT.INTPND = INTERRUPT.INTPND;
}
INTPND
INTPND Bit Description Initial State(默认状态)
INT_ADC [31] 0 = Not requested, 1 = Requested 0
INT_RTC [30] 0 = Not requested, 1 = Requested 0
INT_SPI1 [29] 0 = Not requested, 1 = Requested 0
INT_UART0[28] 0 = Not requested, 1 = Requested 0
INT_IIC [27] 0 = Not requested, 1 = Requested 0
INT_USBH [26] 0 = Not requested, 1 = Requested 0
这个寄存器的默认状态时0,没有命令,当有中断发生时,对应的位变1,而当你给他1时,他就行一个命令,这个命令就是清0.(相当于自动,置1,然后你在给他赋一次1,他就变0了,只能这样理解了) 15 只有 INTPND只可能出去一个位的变化,其他不行;所以清0的时候只有他可以自己给就行了。
16 INTMOD选择irq,fiq.
17 INTOFFSET属于方便型的寄存器,为了INTPND的方便,所以他是直接变化的不需要判断。
18 外部中断EXTINT1和EXTMASK放到9章的IO里边。
19 EXTINT0设置出发的方式,中断触发的方式一共有5中,低电平高电平,上升沿,下降沿,双边沿
EXTINT1,EXTINT2,因为3位控制一个触发方式,不够用,需要3个。
20 问题如果外部中断8设置为irq,那么9呢?
一定也是irq, 21 CPU有7张脸,就是异常向量表。
22 按键中断的执行流程。
GPGCON
EXTINT1 选择触发方式。这里有个过滤的寄存器,(就是为了防止外部中断的颤抖,如果有过滤的电容,那么设置的时候多设置 上面的那一位)
EXTMASK 外部中断使能。
INTMSK 中断使能
INTMOD 选择中断的方式irq,fiq(其实默认也行,害怕其他人改了)
23 start.s中
复位后到系统模式。
彼sp非彼SP,sp债地址。
irqhandle 头两行保护现场,最后一行恢复。
24 如果串口不初始化的情况下,用puts函数,的话,会出现一系列不能定位的编译不过去的库错误。 25 注意 SRCPND;INTMOD;INTMSK;INTPND;INTOFFSET;SUBSRCPND;INTSUBMSK;
EINTMASK;EINTPEND;EXTINT1;(外部中断的MASK,有A,PEND有E)。
26 大部分的设备都支持中端和轮询,时间特别的短的时候轮询比中端要好。
27 中端特性,异步和实时。
28 问题中端能进入死循环么? 不能;
29 寄存器内部,SUBSRCPND,
INTSUBMSK
key中断的更多相关文章
- TI CC2541的狗日的Key
被突如其来的一个bug困扰了好几天, 起因是, 按键接的红外接收器, 结果发现, 一旦按下之后, IEN1, P0IE的标识位bit5, 被不知道特么的谁归0了, 也就是说, 按键只能被按下一次, 再 ...
- LUA 利用#遍历表的问题
tb ={ } t = { "hello", , , 'w', , tb } --~ 1 hello --~ 2 1 --~ 3 2 --~ 4 w --~ 5 4 --~ 6 t ...
- 1.Linux电源管理-休眠与唤醒
1.休眠方式 在内核中,休眠方式有很多种,可以通过下面命令查看 # cat /sys/power/state //来得到内核支持哪几种休眠方式. 常用的休眠方式有freeze,standby, mem ...
- 1.Linux电源管理-休眠与唤醒【转】
转自:https://www.cnblogs.com/lifexy/p/9629699.html 1.休眠方式 在内核中,休眠方式有很多种,可以通过下面命令查看 # cat /sys/power/st ...
- MySQL主从复制中断,报“Error on master: message (format)='Cannot delete or update a parent row: a foreign key constraint fails' error code=1217” 错误
前几天,发现从库挂了,具体报错信息如下: 分析思路 1. 因为我采用的是选择性复制,只针对以下几个库进行复制: card,upay,deal,monitor,collect.所以,不太可能出现对于sa ...
- GPIOLED配置、key、中断NVIC配置
#include "stm32f10x.h" #include "stm32f10x_gpio.h" //内核,(NVIC) #include "mi ...
- myrocks复制中断问题排查
背景 mysql可以支持多种不同的存储引擎,innodb由于其高效的读写性能,并且支持事务特性,使得它成为mysql存储引擎的代名词,使用非常广泛.随着SSD逐渐普及,硬件存储成本越来越高,面向写优化 ...
- 记录一则ORACLE MOVE操作后重建索引过程被强制中断导致的ORA-8104案例
环境:SunOS + Oracle 11.2.0.3 对部分表进行Move操作之后,未重建对应的索引,会导致ORA-1502 索引不可用. 此时需要用下面的查询拼接出重建不可用索引的sql语句: ...
- STM32的USART中断死循环,形成死机。
作者:观海 QQ:531622 直接说重点:我用的是 STM32F103 芯片 USART2_IRQHandler 总是中断,程序死循环. 1.出现问题: 原程序的中断处理程序是: void USA ...
随机推荐
- flask扩展 -- flask-script
Flask-Scropt插件:为在Flask里编写额外的脚本提供了支持.这包括运行一个开发服务器,一个定制的Python命令行,用于执行初始化数据库.定时任务和其他属于web应用之外的命令行任务的脚本 ...
- python全栈开发从入门到放弃之异常处理
1.try except num = input('num : ') #try在阶段中处理异常 try: f = open('file', 'w') int(num) except ValueErro ...
- cdoj1580 简单图论问题
地址:http://acm.uestc.edu.cn/#/problem/show/1580 题目: 简单图论问题 Time Limit: 3000/1000MS (Java/Others) ...
- 【Linux学习】2.Linux常见命令行
记录学习Linux 系统的相关知识点,欢迎大家拍砖交流,一起成长:QQ:2712192471 作者背景:前端开发工程师 | Python | web安全爱好者 Linux命令行: 系统关机重启 s ...
- 20145316《Java程序设计》第十周学习总结
学习内容总结 网络编程 1.网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据. 2.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴. 3.在发 ...
- Cisco 交换Vlan配置
添加Vlan命令 #添加vlan100 config)#vlan 100 #重命名vlan100 config-vlan)#name vlan100 #返回上一层 config-vlan)#exit ...
- Elasticsearch+Kibana+Logstash安装
安装环境: [root@node- src]# cat /etc/redhat-release CentOS Linux release (Core) 安装之前关闭防火墙 firewalld 和 se ...
- 试编hello world
这里是一些vim的使用方法: 这时不知道怎么编译了 看了上面的知识 也问了志伟,我就知道了.是要“./hello”就可以了 自己敲了代码,今后也会多试运行,编译,得尽快安装虚拟机了.
- 超详细 Spring @RequestMapping 注解使用技巧 (转)
@RequestMapping 是 Spring Web 应用程序中最常被用到的注解之一.这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上. 在这篇文章中,你将会看到 @R ...
- 快用Visual Studio(四)- 主题 偏好与快捷键
使用$ CMD + ,打开快捷键设置窗口 使用$ CMD + SHIFT + ,切换默认配置 使用$ CMD + SHIFT + O打开搜索框搜索已配置选项 关于代码偏好设置有三种模式: 默认模式:C ...