自己在驱动中将定时器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 的错误。
分享到:
相关推荐
节点异常终止控制器基于EventEmitter的Node.JS的AbortController Polyfill用法import fetch from 'node-fetch'import AbortController from 'node-abort-controller'const controller = new AbortController ( )...
中止控制器-polyfill 一个用于中止控制器的简单polyfill,具有适当的事件处理。 之所以创建该文件,是因为其他polyfill具有远远无法处理的事件处理功能,因此修复它们可能只是完全重写它们而已。...
return-to-abort() - 使用代码内省来防止堆栈崩溃
api-test-vercel 用CodeSandbox创建
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 安装 主从配置 redis 选举机制说明,
Laravel开发-laravel-or-abort 向类中添加orabort函数的特性
shutdown 后面可接参数immediate、normal、transactional 、abort 。 --immediate 在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。 --normal 需要在所有连接用户断开后才执行关闭数据库任务,...
SET XACT_ABORT { ON | OFF } 当 SET XACT_ABORT 为 ON 时,如果 Transact-SQL 语句产生运行时错误,整个事务将终止并回滚。为 OFF 时,只回滚产生错误的 Transact-SQL 语句,而事务将继续进行处理。编译错误(如...
资源来自pypi官网。 资源全名:dramatiq-abort-0.1b1.tar.gz
先来看一个概念: 数据库事务(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...
电脑还原系统报错出现:Decompression error Abort-.docx
使用U盘装系统过程中,中途突然弹出错误警告:“Decompressionerror,Abort“,出现这种情况一般是由U盘与电脑USB接口松动或是U盘中的系统映像文件损坏导致,可以重新插拔U盘,换个系统文件试试。 本文来源于:u大师...
GHOST还原系统出现 “Decompression error,Abort-”.docx
How to user ARM's data-abort exception. A data-abort exception is a response by a memory system to an invalid data access. The data-abort exception handler is a program that can inform the programmer...
Dracula 描述部分(A-C)ABORT-P-G-SHORTABORT-P-G-SHORT = YES/NO/ALL/SHORT/OPEN描述:指定当power与ground节点短接或开路时是否停止当前工作。如果描述作为power/ground节点短接或开路时,在POSATT模式时停止工作。...
Software caused connection abort: recv failed
该PPT详述XACT_ABORT为ON和OFF的情况,讲解事务和批操作的区别