- 博客(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源码分析——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源码分析——Support Vector Machines
2016-05-02
用于Opencv的车牌识别xml文件
2017-01-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅