随笔分类 - arm--裸机
摘要:首先看个makefile范例: 生产静态库的makefile: 链接器脚本:
阅读全文
摘要:晶振:时钟源(操作主要有两个,倍频,分频) A8的时钟源: 时钟域,每个时钟域(不同的最高频率和最低频率)管理着不同的电路模块: 不同的时钟域对应不同电路模块表 时钟电路:懂得看时钟电路(时钟源选择开关配置(MUX_apll),倍频的配置(APLL),分频的配置(DIV_apll)) 更具体可参看a
阅读全文
摘要:_start: 1、设置栈空间:防止之前的UBOOT代码被覆盖,应为c中需要栈空间 ldr sp, =0x40010000 2、设置CPSR的I,F位,A8打开IRQ,FIQ中断: mov r0, #0x53 msr CPSR_cxsf, r0 b main --main函数: 1、led灯引脚功能
阅读全文
摘要:概念:正常的程序执行过程中发生暂时的停止称为异常,如果发现异常情况,将会进行异常处理 作用:快速响应用户的行为,提高cpu的响应能力 异常类型: 异常处理的三个步骤: 1、保护现场: 工作模式保存:CPSR-->SPSR(自动完成)自能保存在SPSR中,其他寄存器不行 下一条要执行指令:lr<--p
阅读全文
摘要:arm常用指令主要包括以下六类: 1、数据处理指令:完成寄存器中数据的算术和逻辑运算操作 2、程序状态寄存器处理指令:MRS MSR 3、跳转指令:B和BL 4、load/store指令:用于寄存器和存储器之间数据传送的指令 5、异常中断指令:SWI和BKPT 6、协处理器指令:MRC MCR 二、
阅读全文
摘要:arm体系结构主要有五个部分: 1、arm的工作状态,工作模式,寄存器组 2、流水线 3、存储结构 4、指令系统(指令集) 5、异常处理结构 1、arm的工作状态,工作模式,寄存器组 包含:ARM状态:执行32位字对齐的arm指令, Thumb状态:执行16位半字节对齐的指令, 注意:两种状态可以相
阅读全文
posted @ 2016-04-08 13:12
高傲的monkey
摘要:1、开发板已启动从0x0获取数据(内部64k的硬盘,里面含有三星固化的BL0段代码),将其读到a8软核中,进行运算,主要用于初始化时钟,96k的内部IRAM.并负责 指定启动设备(通常为外部硬盘),从指定的启动设备中拷贝BL1段代码(不超过16k)到I RAM中(96k),并从BL1代码的启示位置开
阅读全文
摘要:准备工作: 1.源代码 led.c 2、交叉编译 arm-linux-gcc -c -nostdlib -nostdinc led.c -o led.o arm-linux-ld -Ttext=0x40000000 led.o -o led.elf arm-linux-objcopy -O bina
阅读全文
摘要:bootloader通常会分为两个阶段:第一阶段采用汇编语言来编写,主要是一些核心的初始化工作(内存,时钟的初始化),第二阶段使用C语言来编写,主要是它会完成一些板载硬件的初始化(串口,网口)然后其启动我们的操作系统。所以我们需要先搭建好C语言环境。-------------------------...
阅读全文
摘要:为什么要搬移代码?如何搬移代码?arm启动流程回顾:2440:这里我们分析的是从nand flash 启动。2440的启动主要依赖于一个部件(SRAM),又名stepping stone.它的地址为0x0,nand flash是不能参与地址编址的,所以它是在内存以外的,当处理器上电以后,2440会自...
阅读全文
摘要:内存分类:DRAM:它的基本原件是小电容,电容可以在两个极板上保留电荷,但是需要定期的充电(刷新),否则数据会丢失。缺点:由于要定期刷新存储介质,存取速度慢。SRAM:静止存取功能的内存,不需要定期刷新电路就能保存它内部存储的数据,优点:存取速度快,缺点:功耗大,成本高。用于stepping sto...
阅读全文
摘要:ARM系统时钟初始化:时钟脉冲信号:按一定的电压幅度,一定的时间间隔连续发出的脉冲信号。它是时序逻辑的基础,用于决定逻辑单元中的状态更新,数字芯片中众多的晶体管都工作在开关状态,它们的导通和关断动作都是按照时钟信号来进行的。时钟脉冲频率:在单位时间(1s)内产生的脉冲个数。时钟源:1.晶振(晶体震荡...
阅读全文
摘要:点亮指路灯:学习四环节:led原理图分析,芯片手册导读,思维导图设计,为什么要使用led:通常led是作为程序调试的重要手段。led原理图:led实质为发光二极管,当其两端电压一定时,即处于导通状态。OK6410核心板原理图-256MDDR-2g p4页找到nled所对应的引脚分别为GPM1,GPM...
阅读全文
摘要:异常向量表:异常:因为内部或者外部的一些事件,导致处理器停下正在处理的工作,转而去处理这些发生的事件。ARM Architecture Reference Manual p54页。7种异常的类型:Reset异常:突然按下重启键。Undefined Instruction:未定义指令。()softwa...
阅读全文
摘要:bootloarder设计蓝图(不想做设计师的程序员不是好程序员):bootloarder的作用:将linux内核启动起来设计方法:模仿u-bootu-boot:支持多种嵌入式cpu的bootloarder程序,自主模式,自动引导内核启动。u-boot还有一种开发模式建立U-Boot工程:-----...
阅读全文
摘要:为什么要学汇编程序:在bootloard和linux内核的初始化中都要用到汇编程序。还有一个就是汇编程序的效率更高。-----------------------------------------arm汇编的分类:arm标准汇编(windows下ADS),GNU汇编(linux平台)。------...
阅读全文