ARM裸机开发
文章平均质量分 50
lincuiting06
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ARM寻址方式
一。指令从哪里找操作数呢? 通过寻址 二。寻址方式 1.立即数寻址(立即数也不是随便给的,除以4的结果在0-255之间就可以) 操作数本身就在指令中。前面加# 例子:ADD R0,R0,#0x3f; 2.寄存器寻址 操作数在寄存器中。效率较高 例子:ADD R0,R1,R2; 3.寄存器间接寻址 操作数在内存中。加中括号,代表地址 例子:LDR R0,[R2]; LDR原创 2015-12-11 17:18:01 · 523 阅读 · 0 评论 -
ARM接口编程的准备工作
一。了解开发板资源 第一步1.找到CPU,什么架构的CPU,为了找到系统上电后,第一条执行的代码该放到哪里。0x0 第二步2.0x0接什么芯片?可读可保存的。有flash(norflash)和rom 3.异常和中断? 异常:CPU自己主动终止。有个异常向量表。其中复位异常比较重要。 中断:外部打断CPU 4.SOC片上系统等于CPU加一堆控制器 看datasheet block,在ov原创 2015-12-11 17:21:42 · 622 阅读 · 0 评论 -
ARM裸机开发学习方法
一。概念:没有操作系统 二。为什么学裸机程序?什么时候用到? 1.bootloader的设计 bootloader本身就是一个大型的裸机程序 2.Linux驱动设计 软件方面:必须遵循硬件的接口规范 硬件方面:积累硬件知识 三。重要能力:裸机知识的串联能力 四。课程目标:设计一个属于自己的bootloader(参照uboot) 五。五步学习法 1.硬件相关理论 2.导读芯片手册原创 2015-12-11 17:12:08 · 718 阅读 · 0 评论 -
初识ARM
一。名词归类 1.芯片 6410、2440、210 2.ARM核 A8、arm9、arm11 3.指令架构 armv6、armv7 二。三类关系 2440芯片包含arm9核,指令架构armv4 6410芯片包含arm11核,指令架构armv6 210芯片包含A8核,指令架构armv7三。ARM核演变 两大阵营:ARM和Coretex 对比:Coretex比ARM性能高很多四。原创 2015-12-11 17:15:37 · 371 阅读 · 0 评论 -
ARM汇编
一。为什么要学习ARM汇编? 1.bootloader初始化代码汇编效率高 2.Linux内核初始化汇编效率高 3.汇编和C语言混合编程 二。ARM汇编分类 1.ARM标准汇编 适合windows平台,如ADS中使用 2.GNU汇编 适合Linux平台,使用GNU交叉编译器 三。汇编程序框架 入口:_start: 标示:.global _start(方便外部文件引用) 代码原创 2015-12-11 17:16:55 · 404 阅读 · 0 评论 -
ARM伪指令
一。ARM机器码 反汇编工具:arm-linux-objdump -D -S start.elf 查看手册ARM Architechture Reference Manual的指令集那一章The Arm Instruction Set ARM机器码是一个32位的整数,8个段 1.condition段:条件,4位 2.保留位:2位,00 3.shift operand:是立即数还是寄存器原创 2015-12-11 17:19:24 · 349 阅读 · 0 评论 -
ARM寄存器
一。寄存器分类 看手册A2.3 ARM处理器总共有37个寄存器,31个通用,6个状态 1.通用寄存器(31个) 1.1 未分组通用寄存器(R0-R7)可以用作任何目的 1.2 分组通用寄存器(R8-R12)在切换到FIQ模式的时候,使用它们的影子寄存器(shadow) 特殊寄存器:R13、R14、R15 1.2.1:R13用来当SP栈指针,存储栈地址 1.2.2:R14用来当链接寄原创 2015-12-11 17:20:15 · 554 阅读 · 0 评论 -
GPIO实验
一。裸机程序两种烧写方法 1.直接烧写到SD卡 不需要superboot,地址0x00 代码:1.leds_s 其中mkv210_image.c是校验前16K start.S里面是汇编代码,需要查看datasheet write2sd是拷贝脚本 把编译好的.bin文件拷贝到SD卡里面 make ./write2sd 把SD卡插到开发板 SD卡启动 可以看到灯亮 2.用minitoo原创 2015-12-11 17:22:45 · 561 阅读 · 0 评论
分享