摘要: 19.液晶屏的原理 LCD工作原理解析: 1.LCD硬件体系架构: LCD硬件体系:可以看到LCD控制器是在ARM处理器里的,用排线将LCD液晶屏和处理器连接在一起。中间是通过了LCD驱动芯片。 1.1液晶: 液晶属于一种有机化合物,分子形状为长棒状,在不同的电流作用下,分子会做有规律的旋转,这样对 阅读全文
posted @ 2016-02-14 11:09 cestlavie 阅读(868) 评论(0) 推荐(0) 编辑
摘要: 18.DMA-6410 对于6410的DMA控制器和2440的DMA控制器有很大不一样。 S3C6410中DMA操作步骤: 1、决定使用安全DMAC(SDMAC)还是通用DMAC(DMAC); 2、开启DMAC控制,设置DMAC_Configuration寄存器; 3、清除传输结束中断寄存器和错误中 阅读全文
posted @ 2016-02-14 11:08 cestlavie 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 17.DMA-2440 首先在前面的实例中,在dev文件夹下增加dma.c文件,然后把它加入到该目录的Makefile里面: 这样就框架就好了,接下来打开dma.c来实现: 首先打开2440的芯片手册: 我们要操作的是串口0,对应的是通道0: 对应的源寄存器: 对应的控制寄存器: 该寄存器只有两个位 阅读全文
posted @ 2016-02-14 11:07 cestlavie 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 16.6410DMA简述 1.为什么需要DMA 首先看串口来传递信息:发送字符串。 发送函数:在uart.c里增加下面发送函数: 接下来在main.c里调用: 编译make, 烧写到开发板: 制作SD卡,设置开发板从SD卡启动,设置好minicom后给开发板上电,紧接着按着空格键: 选择[1]格式化 阅读全文
posted @ 2016-02-14 11:05 cestlavie 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 15.210控制台故障分析(解决问题的思路) 对于串口的输出,210按照前面的操作是下面的乱码。 第一想到的很可能是波特率的问题,这是串口乱码的一般情况。排除这一点的是前面的putc函数是可以实现的。验证: 如上面,先把主函数里的printf信息给注释掉。加上putc函数。重新编译和加头: 开发板先 阅读全文
posted @ 2016-02-14 11:04 cestlavie 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 14. 串口控制台建立 串口控制台建立这一节的主要有三个内容: 1.控制台框架搭建 1.1控制台的分类介绍: 1.1.1菜单型控制台:就是选中设置好的数字或者字母选项后执行相应功能的控制台: 例如刚进入uboot之后的界面,就是菜单型控制台: 等待我们输入命令,来执行相应的操作。例如上面,如果此时我 阅读全文
posted @ 2016-02-14 11:02 cestlavie 阅读(745) 评论(0) 推荐(0) 编辑
摘要: 13.Smart210串口驱动基于12的补充 上面的12节里,已经讲了2440有关串口的设置和操作。本来,2440,6410和210的串口操作应该是几乎一样的。在进行6410和210的设置的时候,发现在波特率的设置,6410和210的原理是一样的,但是跟2440有点不一样。所以下面以210为例子,说 阅读全文
posted @ 2016-02-14 11:00 cestlavie 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 12.2440串口驱动程序设计 串口的功能就是接受数据跟发送数据的,在上一节已经了解串口的引脚信号。但是数据的收发需要一定的条件,也就是串口的初始化。所以所以今天的内容就会被划分为三个部分: 1.串口的初始化: 创建一个uart.c来对串口进行处理,然后把它加入到Makefile工程文件里: 接着就 阅读全文
posted @ 2016-02-14 10:59 cestlavie 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 11.串口基本知识 大纲: 串口角色:1.数据传输。2.充当控制台。 数据传输:两个嵌入式设备,除了使用usb和网络来实现数据的传输外,就是可以使用串口来实现数据传输。 控制台:在pc机里,我们使用键盘来输入命令和信息等,通过显示器来显示查询的结果或者信息等。在嵌入式里,是通过终端控制台来输入命令来 阅读全文
posted @ 2016-02-14 10:56 cestlavie 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 9.NandFlash的驱动_读操作 在Makefile里添加nand.o,然后新建一个nand.c来实现NandFlash的读操作。 对NandFlash的读方式有两种: 按页读(需要提供页地址,也就是行地址)。 随机读(就是读取页里的某一列,需要提供页地址,也就是行地址和列地址)。 实现页读需要 阅读全文
posted @ 2016-02-14 10:55 cestlavie 阅读(702) 评论(0) 推荐(0) 编辑
摘要: 10.NandFlash的驱动_写操作 上一节,学习了NandFlash的按页读的操作,下面是实现NandFlash的按页写。首先还是查看NandFlash芯片K9F2G08U0A的时序图 根据I/O pin角的信号信息,知道要实现NandFlash的写操作需要的步骤如下: 最后实现按页写的函数: 阅读全文
posted @ 2016-02-14 10:55 cestlavie 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 8.NandFlash原理分析 该节里主要是将NandFlash有关的知识,首先是NandFlash的角色、分类和访问方式。 角色分析:在个人的pc机中,使用硬盘来存储操作系统、数据等信息。在嵌入式领域,拥有硬盘功能的叫NandFlash。所以NandFlash就是存储信息的。 NandFlash分 阅读全文
posted @ 2016-02-14 10:53 cestlavie 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 6.6410和210的按键中断编程 首先是打开6410底板原理图: 可以看到OK6410有六个按键: 可以看到OK6410的六个按键对应的引脚是KEYINT1、KEYINT2、KEYINT3、KEYINT4、KEYINT5和KEYINT6。接着在核心板的原理图里搜索这个词: 可以看到按键中断与GPN 阅读全文
posted @ 2016-02-14 10:52 cestlavie 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 5.2440的按照中断编程 首先是打开底板的原理图,找到按键的信息: 可以找到四个按键: 可以看到四个按键对应的引脚是EINT1、EINT4、EINT2和EINT0. 然后在核心板原理图里去搜索这四个按键,可以看到下面的信息: 可以看到,按键中断与寄存器组GPF的引脚是互用的。所以接下来就是查看芯片 阅读全文
posted @ 2016-02-14 10:49 cestlavie 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 4.中断处理流程分析 在CPU工作的 过程中,经常需要与外设进行交互,交互的方式包括"轮询方式"和"中断方式"。 轮询方式: CPU不断地查询设备的状态。该方式实现比较简单,但是CPU的利用率很低,不适合多任务的系统。 中断方式: CPU告知硬件开始一项工作之后,就去做别的事去了,当硬件完成了该项任 阅读全文
posted @ 2016-02-14 10:48 cestlavie 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 3.MMU的配置和使用 前面的基础知识中使用了物理地址来点亮LED灯的,现在,学习了MMU的有关知识,下面就是利用MMU的知识,用虚拟地址来点亮LED灯。而且前面还关闭了MMU所以接下来要使用MMU就得打开MMU。 在前面的学习知道,从虚拟地址映射成物理地址有三种方式的: 段的方式 粗页的方式 细页 阅读全文
posted @ 2016-02-14 10:47 cestlavie 阅读(1073) 评论(0) 推荐(0) 编辑
摘要: 2.深入剖析地址转化 地址转化总体分析: TTB的配置: 在ATM920T的芯片手册里,在第三章: 就是关于内存管理单元的知识的,在里面有这要这个原理图: 上面这幅图就是2440虚拟内存到物理内存的转换过程,这过程适用于6410,210等。 3.段式转换: 知道,当最后两位为'10',表示接下来的转 阅读全文
posted @ 2016-02-14 10:46 cestlavie 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 1.MMU功能解析 先来看一个例子: 1testMMU.c的代码: 2testMMU.c的代码: 两个代码同时运行的效果如下图: 可以看到两个同时运行的程序使用的是同一个地址0x80496a4,是不是程序运行出错了,怎么一个地址单元,同一时间可以被两个程序使用?其实呢这就是今天的重点,虚拟地址,0x 阅读全文
posted @ 2016-02-14 10:45 cestlavie 阅读(670) 评论(0) 推荐(0) 编辑
摘要: 37.C与汇编混合编程 新建light.c: 修改start.S: 修改Makefile:加light.o 最后make成功,烧写成功。 同样,我们也可以在C函数里调用我们的汇编里面的函数: 修改start.S:把light_led申明为global: 在light.c中被调用: Make编译烧写到 阅读全文
posted @ 2016-02-14 10:31 cestlavie 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 36.从汇编到C(bl1到bl2) 从汇编跳转到C必须使用绝对跳转: 工程代码: 在Makefile中加入main.o: Start.S: Make编译: Main.c代码: #define GPKCON (volatile unsigned long*)0x7F008820 //volatile指 阅读全文
posted @ 2016-02-14 10:30 cestlavie 阅读(333) 评论(0) 推荐(0) 编辑