随笔分类 - 裸奔-ARM
摘要:说明: 根据物理结构上的区别 , NandFlash主要分为如下两类:1)•SLC (Single Level Cell): 单层式存储2)•MLC (Multi Level Cell): 多层式存储@:SLC在存储格上只存一位数据, 而MLC则存放两位数据。 1.nand.c #define NF
阅读全文
摘要:以下是主要代码: 1.led.c #define GPBCON (volatile unsigned long*)0x56000010#define GPBDAT (volatile unsigned long*)0x56000014void led_init(){ *(GPBCON) = 0x40
阅读全文
摘要:C内嵌汇编-格式: __asm__(汇编语句部分:输出部分:输入部分破坏描述部分);C内嵌汇编以关键字”__asm__”或”asm”开始, 下辖四个部分, 各部分之间使用 ":"分开, 第一部分是必须写的,后面三部分是可以省略, 但是分号:不能省略! 1.汇编语句部分: 汇编语句 的集合, 可以包含
阅读全文
摘要:1.gboot.lds OUTPUT_ARCH(arm)ENTRY(_start)SECTIONS { . = 0x30008000; . = ALIGN(4); .text : { start.o (.text) *(.text) } . = ALIGN(4); .data : { *(.data
阅读全文
摘要:1.gboot.lds OUTPUT_ARCH(arm)ENTRY(_start)SECTIONS { . = 0x30008000; //起始地址 . = ALIGN(4);//4字节对齐 .text : //代码段 { start.o (.text)//以.o开始执行 *(.text) } .
阅读全文
摘要:ARM汇编指令集 指令、伪指令 (汇编)指令: 是机器码的助记符,经过汇编器编译后,由CPU执行。 (汇编)伪指令:用来指导指令执行,是汇编器的产物,最终不会生成机器码。 有两种不同风格的ARM指令 1).ARM官方的ARM汇编风格:指令一般用大写,Windows中的IDE开发环境。 2).GNU风
阅读全文
摘要:@注:黄色部分代表根据不同的开发板进行处理。
阅读全文
摘要:按图分析: ARM处理器有七种工作模式,为的是形成不同的使用级别,以防造成对系统的破坏。不同模式可以访问的寄存器不同,可以运行的指令不同。 (1)user(10000):普通应用程序运行的模式(应用程序),普通程序时运行在此模式下。 (2)FIQ(10001):快速中断模式,以处理快速情况,高速数据
阅读全文
摘要:SECTIONS { //段 . = 0x30008000;//执行脚本的起始地址 . = ALIGN(4);//实现四字节对齐 .text : //代码段 { led.o (.text) //代码段的开始 *(.text) } . = ALIGN(4); .rodata : { *(.rodata
阅读全文
摘要:1.Makefile格式 //最终目标 all: led.o //依赖 arm-linux-ld -Tled.lds -o led.elf led.o //命令 arm-linux-objcopy -O binary led.elf led.bin //命令 //目标 led.o : led.S//
阅读全文
摘要:步骤如下: 1.编译 arm-linux-gcc -g -o xx.S 2.链接 arm-linux-ld -Txx.lds -o xx.elf xx.o... 3.arm-linux-readelf -a(all)/-d(查看程序使用的库) xx.elf 4.反汇编 arm-linux-objdu
阅读全文