摘要:
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平台)。------... 阅读全文