- 博客(17)
- 收藏
- 关注
原创 第12课-LCD
注:以下内容学习于韦东山老师arm裸机第一期视频教程参考文章http://www.cnblogs.com/shangdawei/p/4760933.html一.LCD硬件原理 1.1 LCD可以看作是一个电子枪一边移动一边发出颜色 1.1.1 电子枪如何移动? LCD上有一条CLK信号线,每来一个CLK电子枪就会移动一个像素 ...
2018-06-26 18:30:39 577
原创 小结-2440上NOR和NAND的操作区别
NOR和NAND的操作区别 1. 初始化操作 a.2440没有NOR FLASH控制器,不需要进行初始化操作,2440的地址总线直接与NOR相连(注意2440的bit1连接到NOR的bit0),因此在向NOR发地址的时候需要将地址左移一位发出 b.2440有NAND FLASH控制器,需要对NAND FLASH控制器进行初始化(初始化控制器来设置操作NAND的时序)。...
2018-06-24 13:42:04 295
原创 第11课-NAND FLASH
注:以下内容学习于韦东山老师arm裸机第一期视频教程一.NAND_FLASH操作原理 1.1 NAND FLASH是一个存储芯片 那么: 这样的操作很合理"读地址A的数据,把数据B写到地址A" 问1. 原理图上NAND FLASH和S3C2440之间只有数据线, 怎么传输地址? 答1.在DATA0~DATA7上既传输数据,又传...
2018-06-24 13:37:51 441
原创 第10课-NOR FLASH
注:以下内容学习于韦东山老师arm裸机第一期视频教程 一.nor Flash原理及硬件操作 使用UBOOT体验NOR FLASH的操作(开发板设为NOR启动,进入UBOOT) 先使用OpenJTAG烧写UBOOT到NOR FLASH 1.1 读数据 md.b 0 1.2 读ID ...
2018-06-22 18:50:16 488
原创 第9课,按键中断和定时器中断
注:以下内容学习于韦东山老师arm裸机第一期视频教程一.中断的处理 1.1 中断初始化 1.1.1 设置中断源,让他能够发出中断信号 a.以按键中断为例,按键原理图如下,4个按键分别接到EINT0,EINT2,EINT11,ENIT19对应GPF0,GPF2,GPG3,GPG11 b.配置GPFCON,GPGCON使得GPF0,GPF2,GPG3...
2018-06-13 22:56:35 7137
原创 第8课,arm架构的异常与中断
注:以下内容学习于韦东山老师arm裸机第一期视频教程一.arm架构的异常与中断的处理 1.1 ARM对异常的处理流程 1.1.1 初始化 a. 设置中断源,让他可以产生中断 b. 设置中断优先级 c. 设置中断总开关 1.1.2 正常执行程序 对于不同的异常跳...
2018-06-13 11:21:27 2975
原创 第7课,代码重定位
注:以下内容学习于韦东山老师arm裸机第一期视频教程一.段的概念和重定位的引入 1.1 重定位的引入 2440框架图如下 CPU发出的地址可以直接到达SDRAM,SRAM,NOR但是无法直接到达NAND 因此我们的程序可以直接放在NOR,SDRAM直接运行,假设我们把程序烧录到NAND中,CPU无法直接从NAND取地址运行. ...
2018-06-09 19:04:09 1083
原创 第6课,SDRAM
注:以下内容学习于韦东山老师arm裸机第一期视频教程如果想要完全了解SDRAM,参考: 高手进阶,终极内存技术指南-完整/进阶版 一.SDRAM的访问方法 1.1 SDRAM结构图 a.由4个BANK组成,可以看作是表格 b.里面的每个格子有16位数据(2440接有两片SDRAM,每一片提供16位数据) ...
2018-06-08 22:54:12 815
原创 第5课,内存控制器
注:以下内容学习于韦东山老师arm裸机第一期视频教程 一.内存接口介绍 1.1 内存控制器的引入 2440是一个SOC,其中外设分为多种类型 1. 门电路类:GPIO 2. 协议类接口: UART I2C SPI 但是对于CPU来说只需要将值写给寄存器,CPU通过地址来区分不同...
2018-06-08 16:52:30 2714
原创 第四课,自己实现printf函数
注:以下内容学习于韦东山老师arm裸机第一期视频教程 实现了简单的printf函数,可以实现 %d,%o,%u,%x,%c,%s格式的输出,具体代码如下,已对其中代码大部分进行注释/* my_printf.c */#include "my_printf.h"//=============================================================...
2018-06-06 17:08:56 609
原创 第三课,变参函数的详细分析
注:以下内容学习于韦东山老师arm裸机第一期视频教程一.变参函数分析 我们利用printf函数来搞懂变参函数,我们知道printf函数的原型为 int printf(const char *format, ...); 其中...代表了变参,我们通过printf函数入手来确定固定参数,可变参数,最后引出变参函数。 1.1 确定固定参数参数 固定参...
2018-06-06 16:12:09 186
原创 第二课,2440串口的学习
注:以下内容学习于韦东山老师arm裸机第一期视频教程一.uart(Universal ASynchronous Receiver and Transmitter)简介 1.1 串口的作用 1.1.1 打印调试信息 1.1.2 外接各种模块,例如GPS,蓝牙等 1.2 串口使用 1.2.1 设置波特率 1.2.2 数据格式(...
2018-06-06 15:08:06 260
原创 第一课,ARM芯片的时钟体系
注:以下内容学习于韦东山老师arm裸机第一期视频教程 一. 2440时钟简介 1.1 2440是一个SOC(system on chip)系统,不仅有很多CPU,还有很多外设,在2440芯片手册有系统框架图如下: 2440框架图中,不仅有CPU,而且有很多外设,其中外设分为两部分,一部分是AHB总线,一部分是APB总线 ...
2018-06-06 10:39:08 4104 2
原创 arm裸机学习预备知识五:解析C程序内部机制
注:以下内容学习于韦东山老师arm裸机第一期视频教程以JZ2440点灯的C程序为例来解析C程序的内部机制 一.JZ2440点灯C程序 1.1 启动代码start.S .text .global _start _start: ldr sp, =4096 /* main只需要一...
2018-06-05 23:08:24 224
原创 arm裸机学习预备知识三:Makefile
一.Makefile的引入及规则 1.1 在keil,mdk,avr等工具开发程序时点点鼠标就可以编译了,他的内部机制就是使用Makefile来组织管理程序,决定编译哪一个文件. 1.2 如下例: a.c文件 #include<stdio.h> int main() { ...
2018-06-05 22:29:40 368
原创 arm裸机学习预备知识二:gcc编译器相关知识
一.编译过程简介 一般C程序编译过程: 预处理->编译->汇编->链接 1.1 预处理: C/C++源文件中,以#开头的命令被称为预处理命令,包括#include,#define,#if,#endif等。 预处理就是将要包含的文件插入到源文件中,将宏定...
2018-06-05 15:40:55 300
原创 arm裸机学习预备知识一:arm汇编及机器码
一.常用arm汇编指令 1.1 ldr,读地址指令 ldr R0,[R1] 假设R1的值是x,那么这条语句:读地址x上的数据(4字节),保存到R0中 1.2 str,写地址指令 str R0,[R1] 假设R1的值是x,把R0的值写到地址x(4字节) ...
2018-06-05 10:21:47 2200
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人