自己在驱动中将定时器timer2的物理地址转化为虚拟地址之后访问会出现以下错误:
[root@lpc3250 tmp]# insmod timer2.ko
timer_test init...
Unhandled fault: external abort on non-linefetch (0x808) at 0xf4058004
Internal error: : 808 [#1] PREEMPT
Modules linked in: timer2(+) iso7816 nfs lockd sunrpc unix [last unloaded: timer
2]
CPU: 0 Not tainted (2.6.27.8 #400)
PC is at timer_init+0x30/0xcc [timer2]
LR is at release_console_sem+0x20c/0x248
pc : [<bf078030>] lr : [<c003a4ec>] psr: 60000013
sp : c3ab9ee8 ip : c3ab9e18 fp : c3ab9f04
r10: 00900071 r9 : c3ab8000 r8 : 00000000
r7 : 00000000 r6 : f4058000 r5 : bf0763e0 r4 : f4004000
r3 : 00000002 r2 : 00000000 r1 : 0000192a r0 : 00000016
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 0005b17f Table: 83b4c000 DAC: 00000015
Process insmod (pid: 367, stack limit = 0xc3ab8268)
Stack: (0xc3ab9ee8 to 0xc3aba000)
9ee0: 00000008 00000c06 bf0763e0 bf078000 c3ab9f7c c3ab9f08
9f00: c001c2d8 bf078010 00000023 00000023 c387e6c0 bf076428 bf0762dc c493c84c
9f20: bf0763ec 00000014 c493c874 c020e74c 00000000 00000000 00000000 00000000
9f40: 00000000 00000c06 bf0763e0 00136148 00000000 c001d56c c3ab9f7c 00000c06
9f60: bf0763e0 00136148 00000000 c001d56c c3ab9fa4 c3ab9f80 c005e310 c001c298
9f80: c3ab9fa4 c3ab9f90 00000000 00000000 00000000 00000080 00000000 c3ab9fa8
9fa0: c001cd40 c005e288 00000000 00000000 00900080 00136148 00000c06 00135f78
9fc0: 00000000 00000000 00000000 00135f78 00135f68 0011e265 0011bf51 bef50e84
9fe0: bef509b4 bef509a8 000173d8 00008f20 a0000010 00900080 00004d60 00000000
Backtrace:
[<bf078000>] (timer_init+0x0/0xcc [timer2]) from [<c001c2d8>] (do_one_initcall+0
x50/0x180)
r6:bf078000 r5:bf0763e0 r4:00000c06
[<c001c288>] (do_one_initcall+0x0/0x180) from [<c005e310>] (sys_init_module+0x98
/0x188)
r8:c001d56c r7:00000000 r6:00136148 r5:bf0763e0 r4:00000c06
[<c005e278>] (sys_init_module+0x0/0x188) from [<c001cd40>] (ret_fast_syscall+0x0
/0x2c)
r7:00000080 r6:00000000 r5:00000000 r4:00000000
Code: e59f6090 e3c33010 e58430c0 e3a03002 (e5863004)
---[ end trace 93626b9bcef0bd2d ]---
Segmentation fault
看了一下网上,很多这类错误。没有一个明确的解决方法。总之是MMU相关的错误。
最后问了一下炳哥,原来是要先在arm的功率管理模块打开timer2的电源使能,使之能够工作。
本来默认timer2是开机不工作的,这样可以节省电源。timer2没有开通电源,因此访问他的寄存器会失败,报non-linefetch 的错误。
分享到:
相关推荐
NX二次开发UF_ABORT_enable_abort 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE 分析等领域的专业人士...
NX二次开发UF_ABORT_disable_abort 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE 分析等领域的专业人士...
NX二次开发UF_ABORT_clear_abort 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE 分析等领域的专业人士,...
NX二次开发UF_ABORT_ask_flag_status 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE 分析等领域的专业...
中止控制器-polyfill 一个用于中止控制器的简单polyfill,具有适当的事件处理。 之所以创建该文件,是因为其他polyfill具有远远无法处理的事件处理功能,因此修复它们可能只是完全重写它们而已。...
节点异常终止控制器基于EventEmitter的Node.JS的AbortController Polyfill用法import fetch from 'node-fetch'import AbortController from 'node-abort-controller'const controller = new AbortController ( )...
在"abort-controller-test:用CodeSandbox创建"的项目中,我们可以推测这是一个关于如何在`CodeSandbox`上构建和测试`AbortController`的示例。这可能涉及到以下几个核心知识点: 1. **AbortController接口**:`...
import AbortController from "abort-controller" const controller = new AbortController ( ) const signal = controller . signal signal . addEventListener ( "abort" , ( ) => { console . log ( "aborted!...
安全调用-返回abort()攻击使用代码自省的一个小概念证明,可以使ROP开发确实很烂。 注意:此想法在实践中不可用,请参阅下面的问题。 尝试使./demo I Safecall-返回abort()攻击使用代码自省的一个小概念证明,...
其中包含一个别名、Redis实例的IP地址和端口,以及至少需要多少个Sentinel实例同意认定Redis实例已失效。 - `sentinel down-after-milliseconds`:指定Sentinel认为Redis实例出现异常的时间阈值。如果超过这个时间...
《PyPI官网下载 | dramatiq-abort-0.1b1.tar.gz——探索Python分布式处理新维度》 在IT领域,尤其是云计算和分布式系统中,高效、可靠的处理任务是至关重要的。PyPI(Python Package Index)作为Python生态系统的...
电脑还原系统报错出现:Decompression error Abort-.docx 本文档主要讲述了电脑还原系统报错出现 Decompression error Abort 的解决方法。该问题发生在还原系统镜像文件快完成的时候,出现 Decompression error ...
在Laravel框架中,"laravel-or-abort"通常指的是在代码中使用`orAbort`方法来处理异常或错误情况。这个方法可以帮助开发者快速中断执行流程,并返回一个HTTP错误响应,使得应用程序能够优雅地处理错误,提高用户体验...
SET XACT_ABORT { ON | OFF } 当 SET XACT_ABORT 为 ON 时,如果 Transact-SQL 语句产生运行时错误,整个事务将终止并回滚。为 OFF 时,只回滚产生错误的 Transact-SQL 语句,而事务将继续进行处理。编译错误(如...
先来看一个概念: 数据库事务(Database Transaction) ,是指作为... Set XACT_ABORT ON; --使用存储过程执行事务需要开启XACT_ABORT参数(默认为OFF) delete from table1 where name='' --删除数据sql1 begin tra
the Switch() operator is within a while loop, causing an error on the second iteration. (BZ 460) Disassembler - fix for error emitted for unknown type for target of scope operator. Now, ignore it and...
- 当客户端尝试通过`getInputStream().read()`方法读取服务端的响应数据时,如果服务端端口已经关闭或连接已被中断,Java会抛出“Software caused connection abort: recv failed”异常。 - 此类异常多发生在非阻塞...
在使用U盘进行系统安装的过程中,遇到“Decompression error, Abort”的错误提示,这通常是由于两个主要问题导致的:U盘与计算机USB接口接触不良或者是U盘内存储的系统映像文件损坏。针对这些问题,我们可以采取以下...
NX二次开发UF_CLONE_set_validation_abort_option 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE 分析等...
NX二次开发UF_CLONE_ask_validation_abort_option 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE 分析等...