
ARM
文章平均质量分 71
cfy_phonex
这个作者很懒,什么都没留下…
展开
-
ARM CPSR/SPSR 的示意图
ENTRY EXPORT __main__mainSVC_StackMode_SVC EQU 0x13I_Bit EQU 0x80F_Bit EQU 0x40; Set up the SVC stack pointer and return to SVC mode MOV R0, #Mode_SVC:OR:I_Bit:O原创 2013-08-29 12:50:32 · 2092 阅读 · 0 评论 -
arm-eabi-gcc 4.7升级后的问题
某一段arm assembly code,之前用 arm-eabi-gcc 4.6版本编译。执行没问题。但是换成GCC 4.7后有两个问题。问题一: 生成的BOOTLOADER无法执行;问题二: 能执行后,某段指令产生ABORT错误。问题一:研究GCC 4.7 compiler 升级文档(http://gcc.gnu.org/gcc-4.7/changes.html)原创 2014-01-15 17:56:05 · 4258 阅读 · 0 评论 -
ARM 寄存器名字
The following register names are predeclared:• r0-r15 and R0-R15• a1-a4 (argument, result, or scratch registers, synonyms for r0 to r3)• v1-v8 (variable registers, r4 to r11)• sb and SB (sta原创 2014-03-11 10:04:42 · 1587 阅读 · 0 评论 -
64bit ARMv8 在 Linaro 3.10.x 上的移植
基本认知 1) int 在16位的CPU上是16位 在32位的CPU上是32位 在64位的CPU上是64位 2) __BITS_PER_LONG vs BITS_PER_LONG32bit / 64bit 架构中,都是#define __BITS_PER_LONG 32 32bit / 64bit 用户空间不能依赖于 CONFIG_64BIT 宏;而需原创 2014-02-12 13:02:47 · 2930 阅读 · 0 评论 -
一张好图描述内存数据类型
内存数据类型 内存数据模型转载 2014-02-12 13:09:12 · 1074 阅读 · 0 评论 -
ARM指令如何在thumb和arm模式切换
根据arm spec, 跳转地址最低位( lsb ) 为0表示 arm 指令;最低位为1表示thumb指令。一、绝对地址跳转进入 thumb模式如下指令可以切换到thumb模式。LDR R6, =0x24000ADD R6, #1 @ (set lsb to 1)BX R6如果已经知道 0x24000 地址存放的是 thumb 指令, 可以直原创 2014-01-22 17:58:13 · 16159 阅读 · 1 评论 -
Linux kernel crash analysis example (2)
Issue:Android monkey test assertion.Assertion log:[50281.798919] C0 [ swapper/0] Internal error: Oops - undefined instruction: 0 [#1] PREEMPT SMP ARM[50281.808074] C0 [ swapper/原创 2013-09-24 16:25:37 · 7869 阅读 · 3 评论 -
Linux kernel crash and analysis example (3)
BUG:Randomly, ARMv7 mobile crashed when USB OTG operations are executed.Context:[ 30.648925] C0 [m.android.phone] Unable to handle kernel paging request at virtual address 6b6b6b9f[原创 2013-10-10 10:11:47 · 2408 阅读 · 0 评论 -
推挽(Push-Pull) vs 开漏(Open-Drain)
作者:crifan (http://bbs.chinaunix.net)邮箱:green-waste@163.com【Open-Drain与Push-Pull】GPIO的功能,简单说就是可以根据自己的需要去配置为输入或输出。(General Purpose Input Output,简称为GPIO或总线扩展器,利用工业标准I2C、SMBus™或SPI™接口简化了I/O口的扩展。当微转载 2013-09-02 10:53:17 · 15291 阅读 · 1 评论 -
ARM Processor Exception
ARM Processor Exception虽然依赖于硬件实现,当一个给定的预定义事件发生时, 大多数ARM处理器都提供了专用硬件来进入调试模式。大多数较新的ARM处理器提供了捕捉异常的硬件单元。 如果使能该硬件单元,其效果类似于在选定的向量表入口放置一个断点, 这被成为是 vector catch。 然而,1) 一些ARM处理器, 例如 ARM7, 没有翻译 2013-08-31 11:10:00 · 1513 阅读 · 0 评论 -
ARM Hardware Breakpoint vs Software Breakpoint
对于ARM debugger工具,常用的有两种breakpoint. Hardware vs Software 类型。ARM 文档给出的相关定义如下。Hardware breakpoints:1) 依赖于目标processor实现, 大多数ARM processor都包含了特定的硬件资源,例如ARM EmbeddedICE 硬件逻辑, 来匹配特定的硬件事件。调翻译 2013-08-30 23:42:07 · 5224 阅读 · 0 评论 -
断点和PC地址
Breakpoints and Program CounterHardware data breakpoint如果硬件数据断点被命中, PC指针地址取决于被调试处理器。对于 ARM 处理器, 当数据断点命中时,一条或两条指令的“刹车行为” 产生。这意味着产生断点的指令,可能还包括其后的第二条指令,都被执行。调试器显示的 PC 值,可能并不是产生断点的指令地址。翻译 2013-08-31 11:30:39 · 2143 阅读 · 0 评论 -
ARM / Thumb 指令混合编程之代码交织 ( interworking )
本文翻译整理自 http://stuff.mit.edu/afs/sipb/project/egcs/src/egcs/gcc/config/arm/README-interworking针对ARM7T处理器,Cygnus GNU Pro ToolKit 支持在已编译的 arm 指令和 thumb 指令之间进行来回切换。虽然原文只针对相对古老的 ARM7T 处理器进行介绍,但是翻译 2014-01-23 09:48:54 · 7686 阅读 · 0 评论