摘要:
S3C6410中断控制器由两个VIC(Vectored Interrupt Controller, ARM PrimeCell)组成和两个TZIC’s(TrustZone Interrupt Controller SP890)。两个TZIC’s和VIC’s很好的接合起来支持64个中断源。但是单从三星提供的硬件手册上,很彻底了解VIC中断的工作方式,还需要从ARM公 司下载VIC控制器说明手册,ARM PrimeCell Vectored Interrupt Controller (PL192),通读该手册才能帮助我们很好理解VIC中断控制原理。 --摘之前由于不能使用 __irq 而是使用了 阅读全文
摘要:
general purpose i/os3c64101 gpa-2 b3 c4 d5 e6 f7 g8 h9 i10 j11 k12 l13 m14 n15 o16 p17 gpqGPxCON: configureGPxDAT: dataGPxUD: up/down (是否使用上拉电阻)GPxCONSLPGPxPUDSLPSLP=sleepGPIO consists of two part, alive-part and off-part. In Alive-part power is supplied on sleep mode,but in off-part it is not the s 阅读全文
摘要:
符号定义的伪指令全局GBLA 数 0GBLL 逻辑 FAULSEGBLS 串局部LCLALCLLLCLS赋值SETASETLSETSRLIST {列表}RegList RLIST {r0-r5, r8, r15}BCB (b=byte)str DCB "This is a test!"str = "This is a terst!" 阅读全文
摘要:
1 跳转指令 1 直接修改pc指针 2 跳转指令 b b {condition} target_addr ; b eq label bl bl {conditon} target_addr ; before jump; save pc-pointer to r14 blx bx2 mov 指令 mov {condition}{S} target, source S是否影响标志位 mvn r0, #0xff ; r0=0xffffff003 TST TST r0, #%1 ; (%表示二进制)4 add简单, 要好好学习 阅读全文
摘要:
3 down vote acceptedI recommend getting gdb from the Linaro toolchain rather than the Ubuntu repositories. Download gcc-linaro-arm-linux-gnueabihf-4.7-2012.10-20121022_linux.tar.bz2 from here and you'll find:bin/arm-linux-gnueabihf-gdbarm-linux-gnueabihf/debug-root/usr/bin/gdbserverThe latter is 阅读全文
摘要:
1 立即数寻址 #1 '#'add r0, r0, #12 寄存器寻址add r0, r1, r23 寄存器间接寻址 '[]'add r0, r1, [r2]ldr r0, [r1]4 基址变子寻址ldr r0, [R1, #4]ldr r0, [R1, #4]! ; 还要 r1=r1+45 多寄存器寻址6 相对寻址 跳转时7 堆栈寻址(递增, 递减)(满堆栈, 空堆栈) 阅读全文
摘要:
37个 32-bit的寄存器31个通用寄存器 6个状态寄存器arm 模式下 16个通用寄存器 2个状态寄存器r15(pc)r13, r14较特殊the unbanked registerr0-r7the banked registerr8-r14低5为 1 2 3 7 11 15I 中断位F 快速终端T 模式为 T=1 thumb模式r15 --pcr13 --- spr14 =lr =link register指向函数的返回地址spsr* 是 cpsr的备份 阅读全文
摘要:
arm 状态 32-bit : 32位对齐thumb 状态 16-bit : 半字对齐 ?可以相互的切换arm 存储器格式32-bit --- 4G4字节对齐有大端, xscale有小端, here模式1 用户模式(Usr)2 FIQ : fast3 irq : interrupt4 svc5 abt6 sys7 und1 可以是软件(认为)改变2 被动的改变用户模式 与 非用户模式(特权模式)除 用户与系统模式 5中异常模式 阅读全文
摘要:
^^ARM Assembler is very easy to learn due to the very flexible three operand opcodes. After MIPS it is the most straight forward assembler dialect out there. If you know one dialect of assembler you can become a fluent ARM-assembler programmer over a weekend.AREA Example, CODE, READONLY ; declare... 阅读全文
摘要:
.├── bin│ ├── busybox│ └── sh -> busybox├── dev│ └── console└── lib ├── ld-2.11.so ├── ld-linux.so.3 -> ld-2.11.so ├── libc-2.11.so ├── libcrypt-2.11.so ├── libcrypt.so.1 -> libcrypt-2.11.so ├── libc.so.6 -> libc-2.11.so ├── libm-2.11.so └── libm.so.6 -> libm-2.11.sobusybox 是交叉编译的一个fi 阅读全文