自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(151)
  • 收藏
  • 关注

转载 Tensorflow of GPU, hello fish by version 0.8.

Tensorflow of GPU, hello fish by version 0.8.Before your beginning, you should operate as below: 1): uninstall the gcc 5.2.1 version that the system default installed. sudo apt-ge...

2016-04-15 07:26:00 177

转载 图像识别

图像识别原文: 我们的大脑很容易实现视觉。我们可以很容易地分别狮子和豹子,读取一个信号,或者识别一个人脸。但是这些对于一个计算机来说是相当困难的问题。他们只是看起来简单,是因为我们大脑在理解图片方面是相当厉害的。 在过去几年,机器学习领域取得了巨大的进步。特别是,我们已经发现,一种模型称为一种深层卷积神经网络以实现合理的性能,硬视觉识别任务--在某些领域匹配或超过人类的性能。...

2016-04-07 17:13:00 191

转载 用一个Inception v3 架构模型实现简单的迁移学习(译:../tensorflow/tensorflow/examples/image_retraining/retrain.py)...

1 # Copyright 2015 Google Inc. All Rights Reserved. 2 # 3 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # you may not use this file except in compliance with ...

2016-04-06 09:54:00 332

转载 19.液晶屏的原理

19.液晶屏的原理 LCD工作原理解析:1.LCD硬件体系架构:LCD硬件体系:可以看到LCD控制器是在ARM处理器里的,用排线将LCD液晶屏和处理器连接在一起。中间是通过了LCD驱动芯片。1.1液晶:液晶属于一种有机化合物,分子形状为长棒状,在不同的电流作用下,分子会做有规律的旋转,这样对光线(背光灯产生)产生了一定的控制(折射),形成一个...

2016-02-14 11:09:00 305

转载 18.DMA-6410

18.DMA-6410 对于6410的DMA控制器和2440的DMA控制器有很大不一样。S3C6410中DMA操作步骤:1、决定使用安全DMAC(SDMAC)还是通用DMAC(DMAC);2、开启DMAC控制,设置DMAC_Configuration寄存器;3、清除传输结束中断寄存器和错误中断寄存器;4、选择合适的优先级通道;5、设置通道的源数据地址和目的数据...

2016-02-14 11:08:00 206

转载 17.DMA-2440

17.DMA-2440 首先在前面的实例中,在dev文件夹下增加dma.c文件,然后把它加入到该目录的Makefile里面:这样就框架就好了,接下来打开dma.c来实现:首先打开2440的芯片手册:我们要操作的是串口0,对应的是通道0:对应的源寄存器:对应的控制寄存器:该寄存器只有两个位:可以看到DMA控制寄存器的[1]位是绝对用的...

2016-02-14 11:07:00 147

转载 16.6410DMA简述

16.6410DMA简述 1.为什么需要DMA首先看串口来传递信息:发送字符串。发送函数:在uart.c里增加下面发送函数:接下来在main.c里调用:编译make,烧写到开发板:制作SD卡,设置开发板从SD卡启动,设置好minicom后给开发板上电,紧接着按着空格键:选择[1]格式化NandFlash:按照上面,选择从...

2016-02-14 11:05:00 195

转载 15.210控制台故障分析(解决问题的思路)

15.210控制台故障分析(解决问题的思路) 对于串口的输出,210按照前面的操作是下面的乱码。第一想到的很可能是波特率的问题,这是串口乱码的一般情况。排除这一点的是前面的putc函数是可以实现的。验证: 如上面,先把主函数里的printf信息给注释掉。加上putc函数。重新编译和加头:开发板先格式化再下载:下载成功之后,却换到...

2016-02-14 11:04:00 150

转载 14. 串口控制台建立

14. 串口控制台建立 串口控制台建立这一节的主要有三个内容:1.控制台框架搭建 1.1控制台的分类介绍:1.1.1菜单型控制台:就是选中设置好的数字或者字母选项后执行相应功能的控制台:例如刚进入uboot之后的界面,就是菜单型控制台:等待我们输入命令,来执行相应的操作。例如上面,如果此时我们输入1,就是进行Format the nand Fl...

2016-02-14 11:02:00 216

转载 13.Smart210串口驱动基于12的补充

13.Smart210串口驱动基于12的补充 上面的12节里,已经讲了2440有关串口的设置和操作。本来,2440,6410和210的串口操作应该是几乎一样的。在进行6410和210的设置的时候,发现在波特率的设置,6410和210的原理是一样的,但是跟2440有点不一样。所以下面以210为例子,说明6410和210波特率的设置。寄存器:UBRDIV0...

2016-02-14 11:00:00 147

转载 12.2440串口驱动程序设计

12.2440串口驱动程序设计 串口的功能就是接受数据跟发送数据的,在上一节已经了解串口的引脚信号。但是数据的收发需要一定的条件,也就是串口的初始化。所以所以今天的内容就会被划分为三个部分:1.串口的初始化:创建一个uart.c来对串口进行处理,然后把它加入到Makefile工程文件里:接着就是串口处理程序的实现了。程序的刚开始是对串口进行...

2016-02-14 10:59:00 152

转载 11.串口基本知识

11.串口基本知识 大纲:串口角色:1.数据传输。2.充当控制台。 数据传输:两个嵌入式设备,除了使用usb和网络来实现数据的传输外,就是可以使用串口来实现数据传输。 控制台:在pc机里,我们使用键盘来输入命令和信息等,通过显示器来显示查询的结果或者信息等。在嵌入式里,是通过终端控制台来输入命令来控制开发板和显示返回结果的。前面烧写的uboot...

2016-02-14 10:56:00 167

转载 9.NandFlash的驱动_读操作2440

9.NandFlash的驱动_读操作 在Makefile里添加nand.o,然后新建一个nand.c来实现NandFlash的读操作。对NandFlash的读方式有两种:按页读(需要提供页地址,也就是行地址)。 随机读(就是读取页里的某一列,需要提供页地址,也就是行地址和列地址)。 实现页读需要两个操作,一个是页地址,另一个是存放读出的数据的变...

2016-02-14 10:55:00 143

转载 10.NandFlash的驱动_写操作

10.NandFlash的驱动_写操作 上一节,学习了NandFlash的按页读的操作,下面是实现NandFlash的按页写。首先还是查看NandFlash芯片K9F2G08U0A的时序图根据I/O pin角的信号信息,知道要实现NandFlash的写操作需要的步骤如下:最后实现按页写的函数:int NF_WritePage(unsigned long addr,...

2016-02-14 10:55:00 145

转载 8.NandFlash原理分析

8.NandFlash原理分析 该节里主要是将NandFlash有关的知识,首先是NandFlash的角色、分类和访问方式。角色分析:在个人的pc机中,使用硬盘来存储操作系统、数据等信息。在嵌入式领域,拥有硬盘功能的叫NandFlash。所以NandFlash就是存储信息的。 NandFlash分类: SLC原理略图:MLC原理略图...

2016-02-14 10:53:00 192

转载 6.6410和210的按键中断编程

6.6410和210的按键中断编程 首先是打开6410底板原理图:可以看到OK6410有六个按键:可以看到OK6410的六个按键对应的引脚是KEYINT1、KEYINT2、KEYINT3、KEYINT4、KEYINT5和KEYINT6。接着在核心板的原理图里搜索这个词:可以看到按键中断与GPN系列寄存器的引脚是互用的,接着就是在芯片手册里查看有关GPN系列寄存器的...

2016-02-14 10:52:00 130

转载 5.2440的按照中断编程

5.2440的按照中断编程 首先是打开底板的原理图,找到按键的信息:可以找到四个按键:可以看到四个按键对应的引脚是EINT1、EINT4、EINT2和EINT0. 然后在核心板原理图里去搜索这四个按键,可以看到下面的信息:可以看到,按键中断与寄存器组GPF的引脚是互用的。所以接下来就是查看芯片手册里的GPF组寄存器的信息:重点是关注GPF控制寄存器:GPFCON...

2016-02-14 10:49:00 171

转载 4.中断处理流程分析

4.中断处理流程分析 在CPU工作的 过程中,经常需要与外设进行交互,交互的方式包括"轮询方式"和"中断方式"。轮询方式: CPU不断地查询设备的状态。该方式实现比较简单,但是CPU的利用率很低,不适合多任务的系统。中断方式: CPU告知硬件开始一项工作之后,就去做别的事去了,当硬件完成了该项任务后,向CPU发送一个信号,告知CPU它已...

2016-02-14 10:48:00 236

转载 3.MMU的配置和使用

3.MMU的配置和使用 前面的基础知识中使用了物理地址来点亮LED灯的,现在,学习了MMU的有关知识,下面就是利用MMU的知识,用虚拟地址来点亮LED灯。而且前面还关闭了MMU所以接下来要使用MMU就得打开MMU。在前面的学习知道,从虚拟地址映射成物理地址有三种方式的:段的方式 粗页的方式 细页的方式 接下来就是使用段的映射方式来实...

2016-02-14 10:47:00 439

转载 2.深入剖析地址转化

2.深入剖析地址转化 地址转化总体分析: TTB的配置: 在ATM920T的芯片手册里,在第三章:就是关于内存管理单元的知识的,在里面有这要这个原理图:上面这幅图就是2440虚拟内存到物理内存的转换过程,这过程适用于6410,210等。3.段式转换:知道,当最后两位为'10',表示接下来的转化过程按照段...

2016-02-14 10:46:00 89

转载 1.MMU功能解析

1.MMU功能解析 先来看一个例子:1testMMU.c的代码:2testMMU.c的代码:两个代码同时运行的效果如下图:可以看到两个同时运行的程序使用的是同一个地址0x80496a4,是不是程序运行出错了,怎么一个地址单元,同一时间可以被两个程序使用?其实呢这就是今天的重点,虚拟地址,0x80496a4是一个虚拟地址单元。这就是MMU的功劳了。MMU的全...

2016-02-14 10:45:00 202

转载 37.C与汇编混合编程

37.C与汇编混合编程 新建light.c:修改start.S:修改Makefile:加light.o最后make成功,烧写成功。同样,我们也可以在C函数里调用我们的汇编里面的函数:修改start.S:把light_led申明为global:在light.c中被调用:Make编译烧写到开发板:发现灯是可以被点亮的。在C中调用汇编函...

2016-02-14 10:31:00 175

转载 36.从汇编到C(bl1到bl2)

36.从汇编到C(bl1到bl2) 从汇编跳转到C必须使用绝对跳转:工程代码:在Makefile中加入main.o:Start.S:Make编译:Main.c代码:#define GPKCON (volatile unsigned long*)0x7F008820 //volatile指定不对后面的数进行优化#define GPK...

2016-02-14 10:30:00 590

转载 35.BSS段的知识

35.BSS段的知识 在C语言中,初始化的全局变量是存在数据段的,初始化的局部变量是存在栈中的,用malloc分配的空间是存在堆里的,未初始化的全局变量是存在bss段。Hello.c:#include <stdio.h>int bssdata;int main(){bssdata = 2015;return bssdata;}...

2016-02-14 10:29:00 240

转载 33.代码搬移

33.代码搬移 这节里的代码搬移是针对SRAM的:起始地址: 2440的起始地址是06410的起始地址是0x0c000000.210的起始地址是0x6410:210:链接起始地址:2440:0x300080006410:0x50008000210:0x20008000终点:就是lds的链接起始地址:2440...

2016-02-14 10:28:00 136

转载 34.栈的初始化

34.栈的初始化 前面知道,uboot的第一阶段是用汇编代码来对硬件等进行初始化的。第二阶段是用C语言的。但是此时没有C语言的运行环境。而C语言的运行需要堆栈等资源。所以这一节是第二阶段的C语言环境运行的栈的初始化。1.栈:是一种具有先进先出性质的数据组织方式,也就是说后存进去的先取出,后存进去的后取出的。栈底是第一个进栈的数据所处的位置,栈顶是最后一个进栈的数据所处的位置。...

2016-02-14 10:28:00 749

转载 32.210内存的知识

32.210内存的知识 210可寻址的空间是4GB大小,内存的起始地址是20000000,前面知道2440使用的内存是SDRAM,6410使用的内存是DDR,这里210使用的是DDR2.在210的地址空间中零地址处跟6410一样也是映射镜像区,例如当选择从NandFlash启动的使用,就会把IROM的空间映射到0地址处。内存芯片连接:在2440和6410两...

2016-02-14 10:27:00 165

转载 31.6410内存的知识

31.6410内存的知识 6410的地址空间分布:S3C6410处理器拥32位地址总线,其寻址空间为。其中高为保留外设区,低2GB区域又可划分为两部分:主存储区和外设区。外设主要是寄存器所在的地址。主存储区分为:Boot镜像区、内部存储区、静态存储区、保留区、动态存储区:Boot镜像区:这个区域的作用正如它的名字所述,...

2016-02-14 10:25:00 91

转载 30.2440内存的知识

30.2440内存的知识 首先看2440的地址线:mini2440原理图.pdf2440的芯片提供了27根地址线=128M。S3c2440芯片对外提供的引脚上,只给出了27根地址线addr[0:26].这27根引脚地址线,只能访问128M的外设空间。为了扩大外设的访问范围,S3c2440芯片又提供了8个片选信号nGCS0~nGCS7。当某个片选信号nGCSx有效...

2016-02-14 10:24:00 172

转载 29.内存的基础知识

29.内存的基础知识 内存的分类:内存由于具备访问速度快,访问方式简单等优点,成为了PC或者是嵌入式硬件平台上不可或缺的元件。在开始学习如何使用内存之前,非常有必要先了解一下内存的分类:DRAM:它的基本原件是小电容,电容可以在两个极板上保留电荷,电容就是通过电荷来保存信息的,为了保持数据不丢失,所以必须定期充电,也叫做刷新,否则数据会丢失。缺点:由于要定期刷新存储物质,...

2016-02-14 10:23:00 112

转载 28.时钟初始化

28.时钟初始化 ARM系统时钟初始化: 这就需要知道什么是时钟脉冲信号,什么是时钟频率,什么是时钟源。 时钟脉冲信号:时钟脉冲信号:按一定的电压幅度,一定的时间间隔连续发出的脉冲信号。时钟脉冲信号是时序逻辑的基础,它用于决定逻辑单元中的状态何时更新。数字芯片中众多的晶体管都工作在开关状态,它们的导通和关断动作无不是按照时钟信号的节奏进行的...

2016-02-14 10:22:00 134

转载 27.点亮led的操作

27.点亮led的操作 Led可以作为我调试程序的工具:在嵌入式系统软件,例如Bootloader和kernel,在开发初期,由于串口等硬件尚未被初始化,因此调试手段相当有限,这时候可以采用Led来作为调试手段。OK6410有关led的原理图:从上图知道,要让led发光二极管,就是从右到左导通,右边是高电平,所以左边给低电平,二极管就会导通,发光了。知道原理后,...

2016-02-14 10:18:00 243

转载 26.核心初始化之关闭MMU和cache

26.核心初始化之关闭MMU和cache 下面看看ARM存储体系:可以看到速度最快的是处理器和内部寄存器,他们的数量很少,价格很昂贵。接着是TCM紧耦合存储器:cache和main memory。速度最慢的是外部存储介质:Flash和SD卡等。CACHE:上面是两种访存的两种机制,一种是处理器直接访问主存,另一种是处理器-cache-主存。第一种中,处理器的速度相...

2016-02-14 10:17:00 250

转载 25.核心初始化之中断屏蔽-210

25.核心初始化之中断屏蔽-210 在210中屏蔽中断的机制和6410是一样的。而且两者都是向量中断,很多中断都是硬件实现的,不像2440。但是在210中的中断屏蔽寄存器有4个:四组屏蔽寄存器的地址:所以屏蔽中断就是把上面的四个屏蔽寄存器设置为全1,设置为0仍是没有影响。代码实现:编译:转载于:https://www.cnblogs...

2016-02-14 10:15:00 100

转载 24.核心初始化之中断屏蔽-6410

24.核心初始化之中断屏蔽-6410 打开6410的芯片手册,在12.VECTORED INTERRUPT CONTROLLERS向量中断控制寄存器。向量中断(6410、210)很多时候是使用硬件来完成中断的跳转的。下面的最后一个寄存器VICxINTENABLE,功能是Interrupt Enable Register。VICxINTENABLE寄存器:可以看到,...

2016-02-14 10:14:00 114

转载 23.核心初始化之中断屏蔽-2440

23.核心初始化之中断屏蔽-2440 在上一节中,我在设置关闭看门狗的时候,已经把WTCON的[2]设置为0,屏蔽了中断。如下图:这一节是要屏蔽中断寄存器:下面是2440芯片处理中断的机制:中断屏蔽寄存器:可以看到,只要把中断对应的中断屏蔽寄存器对应的位置为1即可。所以屏蔽中断就是往中断屏蔽寄存器置为全1,就屏蔽了所有中断。...

2016-02-14 10:13:00 150

转载 22.核心初始化之看门狗

22.核心初始化之看门狗 看门狗定时器,在嵌入式领域,有些设备需要工作一些极端的环境,就是人很少到或者很难到的地方。在长期的运作中,难免会出现故障死机的情况,这时,如果派人去查看情况,耗费耗时等,所以人们就设置了一种机制,就是系统里有一个重启的机制叫看门狗定时器。它工作的方式:就是系统的watchdog在硬件上实现了计时功能,启动计时后,用户(软件)必须在计时结束前重新开始计时,俗称...

2016-02-14 10:12:00 787

转载 21.核心初始化之svc模式

21.核心初始化之svc模式 要设置系统工作svc特权模式,从前面的学习知道这需要设置CPSR程序状态寄存器。在ARM Architecture Reference Manual.pdf文档中,2.Programmers' Model的2.5.Program status register。可以看到CPSR的最后五位:M[4:0],就是来设置系统工作的系统模式。接...

2016-02-14 10:11:00 220

转载 20.核心初始化之异常向量表

20.核心初始化之异常向量表 一、异常向量表:包含:1.异常定义 2.异常类型 3.异常入口 4.向量表首先异常定义,在ARM Architecture Reference Manual.pdf文档中,2.Programmers' Model的2.6.Exceptions异常:异常:因为内部或外部的一些事件,导致处理器停下来正在处理...

2016-02-14 10:10:00 235

转载 19.Bootloader框架设计

19.Bootloader框架设计 在前面的uboot代码分析知道,uboot的启动有三个步骤BL0,BL1,BL2。由于BL0是固化程序,厂商提供的,所以不用考虑。所以Bootloader框架就剩下设计BL1和BL2了。...

2016-02-14 10:09:00 117

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除