210中断故障分析

1、把中断注销掉,采用轮询的方式,来使用按键,看它能否工作。

采用读取按键的状态来轮询;按键的状态有对应I/O口的数据寄存器保存,可以读取该寄存器来判断按下与否。

如果还出问题,反汇编之;arm-linux-objcump -D -S gboot.elf >dump 看它用到了fp寄存器,可知用到了栈,那么去检查。如果没问题,再去看内存的初始化,与uboot进行对照,参考错误会出现在哪儿。再恢复为中断的形式去测试。

时间: 2024-08-11 07:41:08

210中断故障分析的相关文章

15.210控制台故障分析(解决问题的思路)

15.210控制台故障分析(解决问题的思路) 对于串口的输出,210按照前面的操作是下面的乱码. 第一想到的很可能是波特率的问题,这是串口乱码的一般情况.排除这一点的是前面的putc函数是可以实现的.验证: 如上面,先把主函数里的printf信息给注释掉.加上putc函数.重新编译和加头: 开发板先格式化 再下载: 下载成功之后,却换到NandFlash启动,看看串口有没有输出: 可以看到终端上面有信息的正常输出,说明了putc是可以工作的,也就是波特率没有错. 上面就确保了波特率没有问题,接下

6.6410和210的按键中断编程

6.6410和210的按键中断编程 首先是打开6410底板原理图: 可以看到OK6410有六个按键: 可以看到OK6410的六个按键对应的引脚是KEYINT1.KEYINT2.KEYINT3.KEYINT4.KEYINT5和KEYINT6.接着在核心板的原理图里搜索这个词: 可以看到按键中断与GPN系列寄存器的引脚是互用的,接着就是在芯片手册里查看有关GPN系列寄存器的信息,重点是关注GPN控制寄存器:GPNCON: 这里我们使用到的按键对应的中断,需要配置成中断的方式,对应的GPN位设置为10

20150218【改进】IMX257实现GPIO-IRQ中断按键获取键值驱动程序

[改进]IMX257实现GPIO-IRQ中断按键获取键值驱动程序 2015-02-18 李海沿 一.使用struct pin_desc 管理按键的值 1.定义结构体 2.将前面我们申请中断时写的(void *)1修改为 &pins_desc[n] 在ioctl中,设置中断中修改 在key_release中释放中修改 3.在中断程序中利用我们定义的struc pins_desc判断并得到按键的值 4.得到按键键值后,唤醒程序,在read函数中返回键值 附上驱动源程序: 1 /***********

20150218【改进信号量】IMX257实现GPIO-IRQ中断按键获取键值驱动程序

[改进信号量]IMX257实现GPIO-IRQ中断按键获取键值驱动程序 2015-02-18 李海沿 前面我们使用POLL查询方式来实现GPIO-IRQ按键中断程序 这里我们来使用信号量,让我们的驱动同时只能有一个应用程序打开. 一.首先在前面代码的基础上来一个简单的信号 1.定义一个全局的整形变量 2.在打开函数中,每次进入打开函数canopen都自减1, 3.当我们不使用时,在realease 中canopen自加1 4.这样就实现了一个简单的信号量,我们编译,测试 当我们使用两个应用程序来

20150218【改进Poll定时查询】IMX257实现GPIO-IRQ中断按键获取键值驱动程序

[改进Poll定时查询]IMX257实现GPIO-IRQ中断按键获取键值驱动程序 2015-02-18 李海沿 按键驱动程序中,如果不使用read函数中使程序休眠的,而是还是使用查询方式的话,可以使用Poll函数,来控制一定时间内,如果有按键发生,则立即返回键值. 同时,poll也可以同时监控多个(比如说按键,鼠标,等)一旦发生事件则立即返回. 我们在linux查看帮助: 从帮助中的说明得知, poll, ppoll - wait for some event on a file descrip

主板常见故障分析

主板常见故障分析 一.开机无显示 微机开机无显示,首先我们考虑的是BIOS.主板的BIOS中储存着重要的硬件数据,也是主板中比较娇嫩的部分,极易受到破坏,一旦受损就会导致系统无法运行,出现此类故障一般是因为主板BIOS被CIH病毒破坏造成(当然也不排除主板本身故障导致系统无法运行.).一般BIOS被病毒破坏后硬盘里的数据将全部丢失,所以我们可以通过检测硬盘数据是否完好来判断BIOS是否被破坏,如果硬盘数据完好无损,那么还有三种原因会造成开机无显示的现象: 1.因为主板扩展槽或扩展卡有问题,导致插

S5PV210-arm裸机-异常中的中断实现过程

210中的异常中的中断实现过程: 首先异常分为很多种,异常中包含了中断异常,有一个东西叫做异常向量表,在异常向量表中有很多相应异常的的地址.异常向量表中的所有异常中断的地址是不会变化的.地址都是固定的,但这些地址都是一个基于基地址的一个地址.不同的CPU中,基地址是不同的. 在210中,CPU内部给了一个发生异常时的异常向量的基地址,查阅官方资料知道,这个基地址为0XD0037400,所以我们需要自己把异常向量表中的地址加在210给的发生异常时的异常向量的基地址上.比如:reset(复位异常)在

[自制简单操作系统] 2、鼠标及键盘中断处理事件[PIC\GDT\IDT\FIFO]

1.大致介绍: >_<" 大致执行顺序是:ipl10.nas->asmhead.nas->bootpack.c PS: 这里bootpack.c要调用graphic.c.dsctbl.c.fifo.c.int.c实现功能,其中有些函数还必须汇编来写,所以单独写一个汇编文件naskfunc.nas,为了方便看全部函数和结构体,所以写一个bootpack.h来写一些结构体和函数声明~ >_<" 下面是编译图解:最终生成的haribote.img可放在软盘

向linux内核中添加外部中断驱动模块

本文主要介绍外部中断驱动模块的编写,包括:1.linux模块的框架及混杂设备的注册.卸载.操作函数集.2.中断的申请及释放.3.等待队列的使用.4.工作队列的使用.5.定时器的使用.6.向linux内核中添加外部中断驱动模块.7.完整驱动程序代码.linux的内核版本为linux2.6.32.2. 一.linux模块的框架以及混杂设备相关知识 1.内核模块的框架如下图所示,其中module_init()(图中有误,不是modules_init)只有在使用insmod命令手动加载模块时才会被调用,