06 2017 档案
摘要:本部分使用汇编来进行编写 在第三节时才可以进入C语言编程环境 每一部分都称为一个栈帧,合起来称为栈。每一部分都通过函数分割。 main函数(任何调用函数的函数)的上边界下边界保存在它调用的函数的栈帧里面,可以看到这里func有一个SP,有一个FP,对应下界和上界 栈的作用: 1、保存局部变量 首先编
阅读全文
摘要:前面已经详细分析过启动流程, 因为启动代码必须放到相应位置来让启动程序启动(BL1\BL2) 所以代码搬移非常重要。 我们需要解决代码搬移的起点、终点、搬移方式的问题 今天我们要讲的代码搬移的起点是SRAM(垫脚石),不是NAND FLASH 这是因为: 首先我们没有对nand flash初始化,不
阅读全文
摘要:210采用8位的存储单元,每四片级联形成32位512MB的存储片 这里有两个内存控制器,DMC0控制512MB,DMC1控制1GB 现在我们只对512MB进行初始化 我们照着芯片手册的步骤做,代码参考。
阅读全文
摘要:6410内存划分: 保留区:暂时不需要的区域 外设区:放的主要是6410里面的寄存器 在主存储区中分为五个区域,boot映像区内容参照前面,它是不固定的。 内部存储区分为两部分。垫脚石是在I_SRAM 静态存储区由6个bank组成 动态存储区 才是真正意义上的内存,平时说的放到内存就是放到这里 内存
阅读全文
摘要:本节按照这样的过程来 在2440手册第五章有启动后内存的设置情况 左边是用nand flash启动的,右边是nor flash启动的 片选6,7一般用来安排SROM或SRAM,所以内存一般放在片选6上面,也就是0x30000000 存储控制器用来将具体地址转化为处理器可以识别的行号、列号、l-ban
阅读全文
摘要:这一部分将从2440,6410,210的顺序来进行讲解 一下就是两种内存的信息。2440主要用sram,6410和210主要用ddr和ddr2 而在内存中找到一个基本存储单元需要l-bank序号、行号、列号三个数据。和硬件的硬盘数、角度、轨道没关系。 内存容量计算:
阅读全文
摘要:时钟脉冲信号提供度量 这是两种产生信号的方式,晶振全称是晶体震荡器,是石英晶体精密切割磨削后焊接上电极引线 2、1 2440时钟体系 1、 时钟频率——12MHZ,在图中找不到 2、 有几个PLL——两个,UPLL和MPLL 3、 产生了几个时钟 4、 产生的时钟是用来做什么的 1、2440 (第7
阅读全文
摘要:LED是因为前面学习的bootlooder和内核都不能显示出结果,哪怕错了也不知道,所以我们要加入调试的手段,就是LED灯来调试 1、找出底板上的LED原理图 二极管导通就是需要让二极管上承担一定的电压差 在核心板原理图上 以nLED_1为例,问题就转化为GPK4输出高低的问题 GPIO为通用输入/
阅读全文
摘要:cache作用就是存放曾经使用过的数据的拷贝,如果第二次要用就直接从cache中取,不用再到内存里面拿了 mmu就是完成虚拟地址转换到物理地址。 这里把它们关闭是因为如果没有正确配置会导致错误 第二个 第一个中0,2位必须disable掉,而12位不一定必须disable。所以这里就去掉两项 res
阅读全文
摘要:在Part5.2开启svc时已经将I、F置一,屏蔽了中断和快速中断 现在需要关闭中断屏蔽寄存器 下面是处理屏蔽的请求过程,在其中MASK就是屏蔽中断字寄存器(写入1相应中断就被屏蔽,这里屏蔽所有中断,写入全1) 首先将第三课的代码复制到第四课,使用cp lesson3 lesson4 -rf指令 地
阅读全文
摘要:不一定工作在没有干扰的情况下,添加了看门狗防止死机,让系统在死机的时候自动重启。 看门狗工作方式: 在硬件上实现一种定时器功能。当计时结束时就默认为系统死机,进行重启。 程序必须在计时结束前重新开始计时,俗称 喂狗 这是看门狗的原理图 关闭看门狗是因为我们BootLoader是比较简单的,基本上不会
阅读全文
摘要:从前面我们认识到 (ARM Architecture Reference Manual 2.2模式代号 2.5程序状态字寄存器 然后用汇编指令操作) 需要设置svc模式,就需要设置SPCR 这里采用的方法使用MSR和MRS指令 然后使用bic(清零)和orr(位或)指令清零置一 reset: //因
阅读全文
摘要:异常和平时讨论的异常一样,都是去执行异常中断程序,然后再回去执行原来的程序中断处。 这段代码放在start.s刚开始地方,和DSP中讲的一样,放在程序最前面的地方异常向量表 手把手教你写代码 1、start.s 2、gboot.lds 3、makefile 创建start.S文件(touch sta
阅读全文
摘要:6410板子和上面没什么区别,就是加了一个 外设基地址初始化 同理,210
阅读全文
摘要:分三块讲解,因为U-boot有几千个文件,所以需要梳理一下思路和构成。 第一阶段是BootLoader1,第二阶段是BootLoader2 本部分会按照2440,,6410,210顺序进行分析 1、2440处理器初始化 其中最重要的文件是“Makefile”文件 重要的开发板都有配置选项。 比如说2
阅读全文
摘要:最好把所有的都看一下,对比同时看看其他处理器是怎样工作的,以后也知道其他处理器是怎样工作的,看哪里 1、2440处理器支持从nor flash,nand flash 启动 但是nor flash 只有2MB, 在手册中有nand flash mapping.左边是从nor flash 启动的内存布局
阅读全文
摘要:1、BootLoader作用 BootLoader作用就是最先起作用的模块,把内核设置好,启动内核让其开始工作。相当于助推器 2、BootLoader设计方法 在这里一块板子上已经烧写好了Linux内核与uboot uboot自主模式就是自动的启动Linux,不用人工干预 还有一种开发模式,需要在菜
阅读全文
摘要:1、协处理器 协助主处理器完成程序的小处理器。比如下面这张CPU图中,ARM9是主处理器,旁边的CP15就是协处理器 1、1 CP15作用 系统控制协处理器,提供了一些额外的寄存器来配置和控制MMU,时钟模式这些对系统非常重要的东西 通过MCR\MRC访问CP15里面的寄存器来访问CP15 CP15
阅读全文

浙公网安备 33010602011771号