- 博客(7)
- 资源 (18)
- 收藏
- 关注
转载 ldr与adr的区别
ldr r0, _start adr r0, _start ldr r0, =_start nop mov pc, lr_start: nop 编译的时候设置 RO 为 0x0c008000↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
2016-01-09 14:34:54 326
转载 ARM 指令集
ARM可以用两套指令集:ARM指令集和Thumb指令集。本文介绍ARM指令集。在介绍ARM指令集之前,先介绍指令的格式。1 指令格式 (1)基本格式 {}{S} ,{,} 其中, opcode 指令助记符,如LDR,STR 等 cond 执行条件,如EQ,NE 等 S 是否影
2016-01-09 14:32:27 466
翻译 ARM MCR MRC
在ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为0~15。访问CP15寄存器的指令MCR ARM寄存器到协处理器寄存器的数据传送MRC 协处理器寄存器到ARM寄存器的数据传送MCR指令和MRC指令只能在处理器模式为系统模式时执行,在用户模式下执行MCR指令和MRC指令将会触发未定义指令的异常中断
2016-01-09 14:27:52 529
原创 Linux内核tag分析
const struct machine_desc * __initsetup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr){ struct tag *tags = (struct tag *)&default_tags; const struct machine_desc *mde
2016-01-05 22:36:14 1034
原创 启动过程内存check和vmalloc大小设置
在Linux内核启动过程中,内核根据系统配置来设置虚拟地址空间的布局,如PAGE_OFFSET的起始地址,PHYS_OFFSET等。对于宏PHYS_OFFSET来说,其描述的是物理内存的起始地址,一般由硬件给出。如下面一些设置:ARM:arch/arm/include/asm/memory.h#define PLAT_PHYS_OFFSET UL(CONFIG_PHYS_OFFS
2016-01-05 22:33:37 3581
原创 平台对象建立过程
函数setup_machine_fdt()对struct machine_desc对象初始化。函数参数dt_phys给出了设备树的物理地址。const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys){ const struct machine_desc *mdesc, *mdesc_
2016-01-05 22:29:46 398
原创 Linux下ARM SoC信息描述
在linux kernel中,各个ARM下平台都会实现一个描述平台的对象struct machine_desc,这是一个很重要的数据结构,各个平台都需要实现这样的一个对象,系统初始化过程中,会对这里定义的函数回调,已完成对系统的初始化。我们这里先列出基本数据结构,下面将逐一介绍这些函数调用处理。arch/arm/include/asm/mach/arch.hstruct machi
2016-01-05 22:05:43 648
没有程序语言是完美的.甚至没有一个唯一最好的语言,只有对于特定目的,比较适合和不适合
2010-06-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人