自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 资源 (4)
  • 收藏
  • 关注

原创 Opencv2.4.9源码分析——HoughLinesP

标准霍夫变换本质上是把图像映射到它的参数空间上,它需要计算所有的M个边缘点,这样它的运算量和所需内存空间都会很大。如果在输入图像中只是处理m(mM)个边缘点,则这m个边缘点的选取是具有一定概率性的,因此该方法被称为概率霍夫变换(Probabilistic Hough Transform)。该方法还有一个重要的特点就是能够检测出线端,即能够检测出图像中直线的两个端点,确切地定位图像中的直线。Ho

2014-10-13 16:35:05 35489 5

原创 Opencv2.4.9源码分析——adaptiveBilateralFilter

上一篇文章我们介绍了双边滤波,它的公式为:(1)

2014-09-25 17:41:41 11067 3

原创 Opencv2.4.9源码分析——bilareralFilter

双边滤波(bilateral filter)是一种非线性滤波技术,它是由Tomasi于1998年提出。它扩展了高斯平滑滤波技术。高斯滤波是一种常见并且有效的滤波方法,简单地说它是以被处理像素与其周围像素的距离作为权重而进行的一种加权平均过程。高斯距离权值为:(1)其中,d(ξ,x)=d(ξ-x)=||ξ-x||表示的是两个像素ξ和x之间的距离。但该权值仅仅考

2014-09-24 10:43:07 13981 4

原创 Win7下qt5.3.1+opencv2.4.9编译环境的搭建

到官网下载qt-opensource-windows-x86-mingw482_opengl-5.3.1.exe文件,执行该文件,选择默认安装即可实现QT的安装(安装在C盘的根目录下),该文件封装好了Qt libraries、Qt Creator,其中Qt Creator为3.1.2版本。 到官网http://opencv.org/downloads.html下

2014-08-30 14:29:40 32752 15

原创 基于S3C2440的Linux-3.6.6移植——基于UVC的USB摄像头移植及视频显示

基于UVC的USB摄像头的移植很简单,只需要在menuconfig中进行适当的配置即可,如下所示:Device Drivers --->      Multimedia support --->               [*] Video capture adapters--->                            [*]

2014-08-06 17:36:56 10937 1

原创 基于S3C2440的Linux-3.6.6移植——QT的编译与安装

我PC上的系统是Fedora 17,32位的。它自带了Qt,版本是4.8.4,因此嵌入式Qt我也选择相同的版本。 从官网下载qt-everywhere-opensource-src-4.8.4.tar.gz。解压该文件:tar zxvf qt-everywhere-opensource-src-4.8.4.tar.gz进入该解压后的目录:

2014-07-23 16:05:11 4120

原创 基于S3C2440的Linux-3.6.6移植——tslib编译与安装

tslib是一个开源程序,最主要的用途是可以校正触摸屏。通常可以把它作为触摸屏的一个适配层,为上层的应用程序提供统一的接口。在这里,我们移植tslib,为以后移植和使用QT打下基础。 首先下载tslib-1.4.tar.gz文件,并完成解压、配置、编译和安装操作,命令如下:tar -zxvf tslib-1.4.tar.gzcd tslib

2014-07-07 17:24:13 6038

原创 基于S3C2440的Linux-3.6.6移植——声卡移植

该版本的声卡驱动有缺陷,放音是不正常的,会断断续续,所以还需要修改。主要就是对sound/soc/samsung目录下dma.c文件进行修改。基于网上的资料,我整理如下: 首先把第63行的下列语句注释掉,因为要重新写该函数:static void audio_buffdone(void *data); 然后把dma_enqueue函数和audio

2014-05-09 07:12:49 3008 4

原创 基于S3C2440的Linux-3.6.6移植——DM9000网卡驱动移植

Linux-3.6.6很好的支持了DM9000,因此对于S3C2440芯片来说无需进行任何修改,甚至连menuconfig都已经默认配置了网卡驱动。但我们还需要设置网卡的MAC和IP等信息。有许多方法可以实现网卡的设置,在这里我们选择一种比较简单的方法——修改根文件系统的启动脚本文件rcS。在根文件etc/init.d/rcS文件中添加下列语句:/sbin/ifconfig  lo  127.

2014-03-24 17:04:11 6424 1

原创 基于S3C2440的Linux-3.6.6移植——声卡驱动

Linux的ALSA声卡驱动较为复杂,它需要注册多个平台设备。在mach-zhaocj2440.c文件中的平台设备数组内一共有四个与ALSA相关的平台设备:&s3c_device_iis,&uda1340_codec,&mini2440_audio,&samsung_asoc_dma,mini2440_audio和uda1340_codec的定义在该文件内给出:/*本开发板

2014-03-05 11:12:35 8216 1

原创 基于S3C2440的Linux-3.6.6移植——SD卡的应用(二),SD卡的读写

上一篇文章介绍了SD卡的插入和拔出,下面就来看看SD卡的读写。SD卡在Linux中是块设备。该块设备驱动是在drivers/mmc/card/block.c文件中被定义的: module_init(mmc_blk_init); static int __init mmc_blk_init(void){       int res;        if (perdev

2014-01-21 15:17:00 5354

原创 基于S3C2440的Linux-3.6.6移植——SD卡的应用(一),SD卡的插拔检测

在linux-3.6.6中,SD驱动很完整,无需添加任何代码,只需修改一下menuconfig配置即可使用。 在arch/arm/plat-samsung/devs.c文件内定义了SD平台设备:static struct resource s3c_sdi_resource[] = {       [0] = DEFINE_RES_MEM(S3C24XX_PA_SDI,S3C24XX

2014-01-21 11:44:07 5204 3

原创 基于S3C2440的Linux-3.6.6移植——触摸屏应用

在linux-3.6.6中,集成了s3c2440触摸屏的应用层文件——/drivers/input/touchscreen/s3c2410_ts.c。因此我们只需要定义好平台设备,就可以实现触摸屏。 s3c2410_ts.c是基于input子系统的,而且它还应用了上一篇文章中介绍过的adc.c文件,因此要理解s3c2410_ts.c文件,还要先理解adc.c文件。下面就介绍s3c2410_

2013-08-11 22:09:26 3436 1

原创 基于S3C2440的Linux-3.6.6移植——ADC的移植

在linux-3.6.6中,系统已经有了关于s3c2440的ADC通用驱动程序文件——arch/arm/plat-samsung/adc.c,但还没有应用层文件,如果要想使ADC工作,并利用系统已有的驱动文件,那么就必须自己动手写一个应用层文件。 本文先介绍adc.c,然后给出一个通用的ADC应用层文件,并移植到开发板上。 先看adc.c文件中的初始化函数adc_init:st

2013-08-09 23:10:58 4125

原创 基于S3C2440的Linux-3.6.6移植——sysfs文件系统的IIC应用

上一篇文章我们介绍了使用devfs访问IIC设备,下面再来介绍应用sysfs方法访问IIC。 在这里,系统要用到三个很重要的结构——i2c_client、i2c_driver和i2c_adapter。i2c_client指的是IIC设备,我的开发板上的IIC设备就是AT24C02的eeprom;i2c_driver指的是IIC的设备驱动;i2c_adapter指的是IIC的适配器,也就是2

2013-07-23 19:43:13 4116

原创 基于S3C2440的Linux-3.6.6移植——devfs文件系统的IIC应用

Linux-3.6.6提供了两种访问IIC的方法,一种是基于devfs的方法,另一种是基于sysfs的方法,文中介绍第一种方法,下一篇文章介绍第二种方法。 在arch/arm/plat-samsung/devs.c文件已经定义了IIC平台设备及其资源:static struct resource s3c_i2c0_resource[]= {       [0]= DEFINE_RE

2013-07-22 19:05:57 3239

原创 基于S3C2440的Linux-3.6.6移植——实时时钟RTC

在arch/arm/plat-samsung/Devs.c文件内,系统定义了RTC平台设备及其资源:static struct resource s3c_rtc_resource[] = {       [0]= DEFINE_RES_MEM(S3C24XX_PA_RTC,SZ_256),       [1]= DEFINE_RES_IRQ(IRQ_RTC),       [2]=

2013-07-12 19:54:33 3257 1

原创 基于S3C2440的Linux-3.6.6移植——解决LCD自动关闭

到目前为止,我们已经花了好多篇幅在LCD上,但还有一个问题,那就是LCD在开机10分钟后会自动关闭。 在Vt.c文件(drivers/tty/vt目录下)的第179行,定义了blankinterval变量:static int blankinterval = 10*60; 通过改变blankinterval的值,可以修改LCD关闭的时间,如果我们不想让LCD关闭,则只要把该变量

2013-07-09 15:45:58 2523

原创 基于S3C2440的Linux-3.6.6移植——LCD背光的控制

在我的开发板上,通过S3C2440的GPG4引脚可以控制LCD的背光,即置1时LCD点亮,清零时LCD关闭。 Linux系统把LCD背光定义成LED平台设备。在Mach-zhaocj2440.c文件内,它的定义为:static struct s3c24xx_led_platdata  zhaocj2440_led_backlight_pdata = {       .name   

2013-07-05 17:06:43 3095

原创 基于S3C2440的Linux-3.6.6移植——启动LOGO的修改

如前文所述,系统的默认配置是启动时显示LOGO图像,即显示drivers/video/logo目录下的logo_linux_clut224.ppm图像。但这个LOGO是显示在LCD的左上角,而且还有一个恼人的光标在闪。本文就介绍如何去除光标,并且把LOGO显示在LCD的正中间,最后还给出如何添加自己的LOGO的方法。 一、LOGO显示在LCD的中间:1、修改drivers/video/

2013-06-29 18:38:05 2186 1

原创 基于S3C2440的Linux-3.6.6移植——LCD的应用

要想使LCD工作,需要修改arch/arm/mach-s3c24xx/Mach-zhaocj2440.c文件中的相关内容。zhaocj2440_lcd_cfg结构数组定义了各种LCD的时序及配置,我们需要在这个数组的末端添加针对自己开发板上的LCD的相关配置。static struct s3c2410fb_display zhaocj2440_lcd_cfg[] __initdata =

2013-06-26 19:40:39 3673

原创 基于S3C2440的Linux-3.6.6移植——UART驱动

s3c2440串口驱动是在drivers/tty/serial/Samsung.c下定义的。static int __init   s3c24xx_serial_modinit(void){       int ret;        //注册uart驱动       ret = uart_register_driver(&s3c24xx_uart_drv);

2013-06-13 15:21:23 4884 3

原创 基于S3C2440的Linux-3.6.6移植——看门狗定时器的应用

尽管在linux系统中,对于S3C2440开发板来说,默认是已经配置了看门狗定时器,如:DeviceDrivers --->    [*] Watchdog Timer Support --->               S3C2410 Watchdog但看门狗定时器是没有打开的,所以我们会在启动系统的时候,看到如下信息提示:s3c2410-wdts3c2410-wdt: w

2013-05-19 21:10:04 3922

原创 基于S3C2440的Linux-3.6.6移植——定时器的应用

定时器是很重要的一个资源,在linux中使用的是TIMER4作为常规的定时器,我们可以通过查看中断资源来找到定时器中断:[root@zhaocj/]#cat /proc/interrupts…… 30:      20118      s3c S3C2410 Timer Tick……如上所示,系统内部的定时器的中断号为30。通过阅读arch/arm/mach-s3c24xx/i

2013-05-04 21:02:56 3420 1

原创 基于S3C2440的Linux-3.6.6移植——PWM蜂鸣器驱动

Linux带有基于PWM蜂鸣器的通用驱动程序——Pwm-beeper.c(位于drivers/input/misc目录下),它是属于输入子系统的。因此要移植该驱动,只需要在自己的开发板程序文件中添加PWM蜂鸣器的平台设备及相关属性即可。 在arch/arm/mach-s3c24xx目录下的mach-zhaocj2440.c文件中的适当位置添加如下内容:/* beeper */sta

2013-04-24 11:38:27 9352

原创 基于S3C2440的Linux-3.6.6移植——按键驱动

对于s3c2440开发板上的几个按键功能,linux系统提供了很好的支持,只要把按键对应的IO端口配置好,按键就可以工作了。针对我的开发板,为了配置按键的IO端口,需要修改arch/arm/mach-s3c24xx目录下的mach-zhaocj2440.c文件中的zhaocj2440_buttons结构为:static struct gpio_keys_button zhaocj2440_

2013-04-13 20:54:48 6944

原创 基于S3C2440的linux-3.6.6移植——LED驱动

目前的linux版本的许多驱动都是基于设备模型,LED也不例外。 简单地说,设备模型就是系统认为所有的设备都是挂接在总线上的,而要使设备工作,就需要相应的驱动。设备模型会产生一个虚拟的文件系统——sysfs,它给用户提供了一个从用户空间去访问内核设备的方法,它在linux里的路径是/sys。如果要写程序访问sysfs,可以像读写普通文件一样来操作/sys目录下的文件。 对于基于s3

2012-12-08 20:24:05 4982

原创 动态库的根文件系统的制作

在我的《u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统》这篇文章中已经介绍了根文件系统的制作,但它是静态库。在这篇文章中,我主要介绍带有动态库的根文件系统的制作。与上一篇内容重复的地方就不再赘述。 在使用menuconfig配置busybox的时候,只需要修改下列内容即可:Busybox Settings  --->     Busybox

2012-11-29 21:11:59 4389

原创 基于S3C2440的linux-3.6.6移植——内核移植,建立自己的平台系统

1.在下面的网站内下载目前最新的稳定版本的linux内核——linux-3.6.6http://www.kernel.org/ 2.解压到当前目录tar –xvjf linux-3.6.6.tar.bz2 3.修改在根目录下的Makefile文件中的第195行和第196行:ARCH  ?=armCROSS_COMPILE  ?= arm-linux- 4.修

2012-11-21 19:31:45 5479 1

原创 u-boot-2011.06在基于s3c2440开发板的移植之结束篇

uboot的最主要功能就是能够正确引导内核启动,一旦内核启动,它的使命也就结束了。本系列的文章就是基于这一原则,只要能启动即可,至于其他的功能,我就没有再研究下去。 为了便于大家查找,我给出这一系列文章的目录:1、u-boot-2011.06启动流程分析2、u-boot-2011.06在基于s3c2440开发板的移植之编译配置3、u-boot-2011.06在基于s3c2440

2012-09-06 21:20:52 4635

原创 u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统

uboot最主要的功能就是能够引导内核启动。本文就介绍如何实现该功能,并组成一个最简单的系统,这不仅要移植uboot,还要移植linux内核及创建一个根文件系统。 首先我们对nandflash进行分区,规划好每个文件存放在nandflash的位置。下面是nandflash的分区:第0分区:0x000000000000-0x000000080000为uboot区第1分区:0x0000

2012-09-05 16:57:22 6396 1

原创 u-boot-2011.06在基于s3c2440开发板的移植之支持YAFFS2

YAFFS和YAFFS2是由AlephOne公司开发的NAND Flash文件系统。YAFFS和YAFFS2主要差异在于PAGE读写size的大小,YAFFS2可支持到2Kper page,远高于YAFFS的512 Bytes,因此YAFFS2对于大容量NANDflash来说更具优势。 就u-boot来说,主要是能够使它支持下载YAFFS文件,以供操作系统使用,因此只要能够实现YA

2012-07-18 22:58:37 4160

原创 u-boot-2011.06在基于s3c2440开发板的移植之nandflash启动

由于价格的原因,相对于norflash,nandflash对于存储大容量的数据来说更具有优势。但是程序不能直接在nandflash上运行,因此s3c2440提供了一个机制,即系统会自动把nandflash中前4k的内容复制到名为“Steppingstone”的内部SRAM中,利用这段SRAM,程序员需要再把程序复制到其余的SRAM中,然后运行刚刚复制到SRAM中的程序。 本文就介绍如何使u

2012-07-17 09:59:39 8323 12

原创 u-boot-2011.06在基于s3c2440开发板的移植之DM9000

u-boot默认的网络芯片是CS8900,但开发板上的网络芯片是DM9000,所以为了使用网络功能,就必须进行移植。好在u-boot有DM9000的驱动程序,我们只需要把关于CS8900的部分换成DM9000的部分即可。首先在include/configs/zhaocj2440.h文件内注释掉下列语句:#define CONFIG_CS8900            /* we have

2011-12-18 21:26:34 4731 3

原创 u-boot-2011.06在基于s3c2440开发板的移植之硬件ECC

在上一篇关于“支持NandFlash读写”的文章中,我们很好地完成了u-boot对NandFlash的读写,但这个读写进行的是软件ECC,即用软件编程的方法实现ECC。我们知道S3C2440的NandFlash控制器是支持硬件ECC的,因此在这里我们就来讲解如何实现硬件ECC。

2011-08-22 21:55:01 11106 2

原创 u-boot-2011.06在基于s3c2440开发板的移植之支持NandFlash读写

在“NorFlash启动”一文中,我们把drivers/mtd/nand/s3c2410_nand.c文件复制为s3c2440_nand.c文件,并把该文件内的所有有关“2410”的地方一律改为“2440”。这么修改仅仅是能够让系统编译成功,并没有真正实现NandFlash的读写

2011-08-11 14:32:40 6213 4

原创 u-boot-2011.06在基于s3c2440开发板的移植之解决raise: Signal # 8 caught

该文介绍了如何去掉raise: Signal # 8 caught这个bug。

2011-08-07 22:22:02 5238

原创 u-boot-2011.06在基于s3c2440开发板的移植之NorFlash启动

在上一篇文章的基础上,本文详细介绍u-boot-2011.06的NorFlash启动移植方法。 1.修改宏定义打开include/configs/zhaocj2440.h文件第38行“#define CONFIG_S3C2410        /*specifically a SAMSUNG S3C2410SoC */”改为:38:#define CONFIG_S3C2440

2011-07-31 22:47:26 5924 8

原创 u-boot-2011.06在基于s3c2440开发板的移植之编译配置

u-boot-2011.06虽然支持一些常见的开发板,但如果u-boot-2011.06不支持我们手上的开发板,那就要找到与我们的开发板最接近的u-boot-2011.06所支持的开发板,在这个开发板的基础上进行移植。u-boot-2011.06所支持的smdk2410开发板是最接近我的开发板的,所以我就在该此基础上进行修改、移植。         在移植之前,我们还需要安装、配置eldk

2011-07-29 22:26:37 6845 7

原创 u-boot-2011.06启动流程分析

本文以u-boot-2011.06这个最新版本为例,介绍u-boot在smdk2410上的启动流程过程。

2011-07-26 22:44:33 10907 2

opencv2.4.9源码分析——SIFT

详细介绍SIFT算法,opencv的SIFT源码分析,以及应用实例

2014-12-24

Opencv2.4.9源码分析——Support Vector Machines

本文档共分为三个部分,第一个部分介绍SVM的原理,我们全面介绍了5中常用的SVM算法:C-SVC、ν-SVC、单类SVM、ε-SVR和ν-SVR,其中C-SVC和ν-SVC不仅介绍了处理两类分类问题的情况,还介绍处理多类问题的情况。在具体求解SVM过程中,我们介绍了SMO算法和广义SMO算法。第二个部分我们给出了OpenCV中SVM程序的详细注解。第三个部分我们给出了一个基于OpenCV的SVM算法的简单应用实例。

2016-05-02

opencv2.4.9源码分析——SURF

详细介绍SURF算法,以及opencv的源码分析,并给出应用实例。

2015-01-10

用于Opencv的车牌识别xml文件

cascade.xml用于opencv所需的车牌识别xml文件,该文件可以识别蓝底白字的普通车牌。该xml文件由本人生成,详细的内容请看我的博客:http://blog.csdn.net/zhaocj

2017-01-13

空空如也

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

TA关注的人

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