自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(517)
  • 资源 (56)
  • 收藏
  • 关注

原创 OpenMP在ARM-Linux以及NDK中的编译和使用

以前对OpenCV在ARM-Linux, ARM-Android上的优化做了很多编译方面的努力,例如添加TBB支持,添加CUDA支持(Nvidia K1平台上)。这次突然听同事说增加了OpenMP选项后,在Windows+X86上有极大的优势,adaboost速度提高3倍。所以赶快在ARM-Android-NDK上测试一下。  0. OpenMP基础:OpenMP(

2016-11-20 20:36:03 7264

转载 关于OpenCV源码中的CPU指令集CV_SSE2等的相关知识

一、  CV_SSE系列指令集的预编译符号定义在opencv2/core/internal.hpp这个头文件中,如果你不包含这个头文件的话,把源码拷贝到自己的函数中,CV_SSE是不被定义的下面是harrisCorner中的一部分代码 1 2 3 4 5 6 7 8 9 10 11

2016-11-03 14:36:45 3534

转载 VS2010平台下OpenCV编译和安装

要点:           1) XP+ Visual Stuio 2010 + OpenCV-2.4.2.exe + cmake-2.8.8-win32-x86.exe            2) 如何CMake OpenCV源代码得到可编译的VS2010项目           3) 如何使用VS2010编译OpenCV源码           4) 如何配置OpenCV工程

2016-10-31 17:05:05 984

原创 CUDA系列学习(一)An Introduction to GPU and CUDA

本文从软硬件层面讲一下CUDA的结构,应用,逻辑和接口。分为以下章节:(一)、GPU与CPU(二)、CUDA硬件层面(三)、CUDA安装(四)、CUDA 结构与接口             4.1 Kernels             4.2 Thread,Block, Grid             4.3 Memo

2016-10-22 18:07:00 1144

转载 GPU通用计算调研报告

摘要:NVIDIA公司在1999年发布GeForce256时首先提出GPU(图形处理器)的概念,随后大量复杂的应用需求促使整个产业蓬勃发展至今。GPU在这十多年的演变过程中,我们看到GPU从最初帮助CPU分担几何吞吐量,到Shader(着色器)单元初具规模,然后出现Shader单元可编程性,到今天GPU通用计算领域蓬勃发展这一清晰轨迹。本报告首先根据搜集到的资料记录GPU通用计算的发展过程中硬件和

2016-10-22 17:40:09 3259

转载 GPU中与CUDA相关的几个概念

今天说说GPU的硬件结构中与CUDA相关的几个概念:thread    block  grid   warp  sp  smsp: 最基本的处理单元,streaming processor 最后具体的指令和任务都是在sp上处理的。GPU进行并行计算,也就是很多个sp同时做处理sm:多个sp加上其他的一些资源组成一个sm, streaming multiprocessor. 其他资源

2016-10-22 17:28:50 1399

转载 编译 链接和加载

1.   序 最近在折腾各种.so,碰到了一些问题,一开始对于很多错误也没有头绪,茫然不知所措。索性化了一天多时间将>中部分内容略读了一遍,主要是关于编译,链接和加载这块的。于是顺便做个笔记,方便以后回顾。基本上知道了这些,对于编译,链接和加载过程中产生的各种问题,应该就能从根本上理解并解决了。其实以前上学时也看过那本经典的>,当时还写了篇>,不过此次会更细致深入地了解下整个编译链

2016-08-31 21:24:37 2190

转载 GPGPU OpenCL使用结构体数据

OpenCL编程中可以使用结构体,只需要在核函数kernel中提供同样的结构体申明就可以啦。 如果在主函数中定义了结构体:1 typedef struct studentNode{2 int age;3 float height;4 }student; 主函数中定义数据,并传输给OpenCL kernel: 1 student

2016-08-21 22:29:10 1275

转载 GPGPU OpenCL/CUDA 高性能编程的10大注意事项

1.展开循环  如果提前知道了循环的次数,可以进行循环展开,这样省去了循环条件的比较次数。但是同时也不能使得kernel代码太大。  循环展开代码例子: View Code2.避免处理非标准化数字  OpenCL中非标准化数字,是指数值小于最小能表示的正常值。由于计算机的位数有限,表示数据的范围和精度都不可能是无限的。(具体可以查看IEEE 754标准,

2016-08-21 22:23:49 1901

原创 OpenCL中设置内核参数整理

资源摘自OpenCL实战.  首先,说一下kernel中的几种地址空间限定符:(1)__global该参数的数据会保存在全局数据空间,在内核中的参数使用例子如下:__kernel void kernel_func(__global float *f){}(2)__constant该参数的数据会保存在全局,只读内存中,该参数使用前必

2016-08-21 22:14:31 4147

原创 OpenCL2.0特性之SVM

在OpenCL2.0中,增加了SVM(shared virtual memory)的特性。在开始讲解SVM之前,我们先用图片来看下OpenCL1.2中主机与设备端的地址空间:                                                 图1 OpenCL1.2中主机与设备端地址空间        从图1可以看到,主机与设备具有不同的地

2016-08-16 10:42:53 1790

转载 clCreateBuffer参数说明

clCreateBuffer第二个参数可以有多种,详情请点击此次,对于前三个比较简单,在此就忽略。1、CL_MEM_USE_HOST_PTR  对于CL_MEM_USE_HOST_PTR,刚开始buffer object的值是来自于host_ptr,但buffer object处理之后,host_ptr中的值如何变化,这点在OpenCL中没有定义。那就看看A卡对次是如何处理,一

2016-08-16 10:26:27 1563

转载 从零开始学习OpenCL开发(四)shader

这里介绍关于OpenCL中program函数的写法,program函数通常是文本形式的,然后使用clCreateProgramWithSource这样的接口load进来。在Shader编程中也经常使用这种形式书写GPU上运行的代码,所以为了表述清楚和理解方便,这里姑且把这些program函数的源码文本称为OpenCL的shader吧 下面都是写在shader中的一些语法 1

2016-08-04 22:46:43 1087

转载 从零开始学习OpenCL开发(三)深入API

这里将更深入的说明一些OpenCL API的功能1. 创建buffer涉及到内存与显存的操作总是复杂麻烦的,这个函数也一样。。。cl_memclCreateBuffer (cl_context context, cl_mem_flags flags, size_t size, void *host_pt

2016-08-04 22:45:55 1218

转载 从零开始学习OpenCL开发(二)一个最简单的示例与简单性能分析

1 Hello OpenCL     这里编写一个最简单的示例程序,演示OpenCl的基本使用方法:    1.首先可以从Nvdia或者Amd或者Intel或者所有OpenCl成员的开发者网站上下载一份他们实现的OpenCL的SDK。虽然不同公司支持了不同版本的OpenCL和扩展ext,但是在相同版本上对于标准的OpenCL接口,每个SDK实现的结果都是一样的,如果你只是用标准的O

2016-08-04 22:45:12 1560

转载 从零开始做OpenCL开发》系列文章的第一篇。

本文将作为我《从零开始做OpenCL开发》系列文章的第一篇。 1 异构计算、GPGPU与OpenCL  OpenCL是当前一个通用的由很多公司和组织共同发起的多CPU\GPU\其他芯片 异构计算(heterogeneous)的标准,它是跨平台的。旨在充分利用GPU强大的并行计算能力以及与CPU的协同工作,更高效的利用硬件高效的完成大规模的(尤其是并行度高的)计算。在过去利用

2016-08-04 22:44:38 2613

转载 Linux inotify功能及实现原理

1. inotify主要功能它是一个内核用于通知用户空间程序文件系统变化的机制。众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如 hotplug、udev 和 inotify 就是这种需求

2015-04-20 14:27:38 1589

转载 Linux下inotify机制简介

1.inotify机制简介:inotify是Linux内核提供的一个文件系统变化通知机制,从2.6.13版本的内核开始提供,比如你在创建一个文件时它可以通知你哪个文件被创建了,删除文件时通知你哪个文件被删除了,修改文件时通知你哪个文件被修改了,关闭文件时哪个文件被关闭了,是可写关闭还是不可写关闭等等。这个机制在某些特定用途下是很必要的,比如桌面搜索引擎,一般当我们不记得某一文件放在哪个地方时,

2015-04-20 14:21:46 2414

原创 SELinux管理与配置

1.1 SElinux概述SELinux(Security-Enhanced Linux) 是美国国家安全局(NAS)对于强制访问控 制的实现,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。大部分使用 SELinux 的人使用的都是SELinux就绪的发行版,例如 Fedora、Red Hat Enterprise Linux (RHEL)、Debian 或 Gentoo

2015-03-23 17:09:31 1435

转载 C语言位域精解

有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示

2015-02-05 16:10:57 1497

原创 为什么基类的析构函数是虚函数?

1.为什么基类的析构函数是虚函数?  在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。  下面转自网络:源地址 http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html  a.第一段代码  复制代码复制代码#includeusing namespace std;

2015-02-05 14:33:36 1218

原创 C++析构函数为什么要为虚函数

C++析构函数为什么要为虚函数1. 从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数。2. 从使用角度,虚函数主要用于在信息不全的情况下,能使重载

2015-02-05 14:27:28 1293

原创 面试中常问的关于链表的题目

链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力。链表的操作也离不开指针,指针又很容易导致出错。综合多方面的原因,链表题目在面试中占据着很重要的地位。本文对链表相关的面试题做了较为全面的整理,希望能对找工作的同学有所帮助。链表结点声明如下:struct ListNode{    int m_nKey; 

2015-02-01 13:47:46 1790

转载 C中调用C++与C++调用C

转自:http://blog.csdn.net/devil_2009/article/details/6734760首先,在C中调用C++:将 C++ 函数声明为``extern "C"''(在你的 C++ 代码里做这个声明),然后调用它(在你的 C 或者 C++ 代码里调用)。例如:[cpp] view plaincopy// C++ code

2015-01-22 17:38:42 1188

转载 (DT系列六)devicetree中数据和 struct device有什么关系

devicetree中数据和structdevice有什么关系总体来说,devicetree与structdevice的关系应该还是在其生成platformdevice的时候,一直传递的structdevice *parent参数。下面先把其源码中传递过程描述如下(仍以At91rm9200为例):1,DT_MACHINE_START(at91sam_dt,"Atmel

2015-01-21 10:54:08 1378

转载 DT系列四)驱动加载中, 如何取得device tree中的属性

本文以At91rm9200平台为例,从源码实现的角度来分析驱动加载时,Device tree的属性是如何取得的。一:系统级初始化DT_MACHINE_START 主要是定义"struct machine_desc"的类型,放在 section(".arch.info.init"),是初始化数据,Kernel 起来之后将被丢弃。#define DT_MACHINE_START(_name

2015-01-21 10:53:15 1368

转载 DT系列五)Linux kernel 是怎么将 devicetree中的内容生成plateform_device

Linux kernel 是怎么将 devicetree中的内容生成plateform_device1,实现场景(以Versatile Express V2M为例说明其过程)以arch/arm/mach-vexpress/v2m.c 为例,在该文件中的v2m_dt_init函数的作用就是利用 dt(device tree)结构初始化 platform device。static

2015-01-21 10:51:33 1497

转载 (DT系列四)驱动加载中, 如何取得device tree中的属性

本文以At91rm9200平台为例,从源码实现的角度来分析驱动加载时,Device tree的属性是如何取得的。一:系统级初始化DT_MACHINE_START 主要是定义"struct machine_desc"的类型,放在 section(".arch.info.init"),是初始化数据,Kernel 起来之后将被丢弃。#define DT_MACHINE_START(_name

2015-01-21 10:50:01 1350

转载 (DT系列三)系统启动时, dts 是怎么被加载的

一,主要问题:系统在启动的时候,是怎么加载 dts的;Lk,kernel中都应调查。二:参考文字dts加载流程如下图所示:启动过程中,bootloader(默认是bootable/bootloader/lk)会根据机器硬件信息选择合适的devicetree装入内存,把地址等相关信息传给kernel。kernel中,会根据传入的信息创建设备。1,先从l

2015-01-21 10:48:24 2490

转载 (DT系列二)device tree的书写规范

devicetree的书写规范下面从节点,属性,reg,ranges,中断控制器等几个方面叙述devicetree的书写规范。1,dts的基本元素:节点.dts(或者其include的.dtsi)基本元素为结点和属性。举例说明节点的概念:/ { node1 { a-string-property = "A string"; a-strin

2015-01-21 10:35:21 1349

转载 (DT系列一)DTS结构及其编译方法

一:主要问题1,需要了解dtsi与dts的关系2,dts的结构模型3,dts是如何被编译的,以及编译后会生成一个什么文件.二:参考文字1,DTS(device tree source).dts文件是一种ASCII文本格式的DeviceTree描述。基本上,在ARMLinux内,一个.dts文件对应一个ARM的machine,一般放置在内核的arch/arm/bo

2015-01-21 10:34:43 2676

转载 linux device tree源代码解析

//Basedon Linux v3.14 source codeLinux设备树机制(Device Tree)一、描述ARM Device Tree起源于OpenFirmware (OF),在过去的Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如

2015-01-17 16:54:19 2943

转载 WLAN 驱动解析

看看scan是怎么处理的。一、先来看看如何发送scan command给WLAN firmware以Android平台为例,我们从Android framework的code开始看起。1. 在WifiStateMachine.java中有如下函数 public void startScan(boolean forceActive) { sendMessag

2014-12-15 17:40:05 5670

转载 wpa_cli调试工具的使用

1: run wpa_supplicant firstuse the following command:       wpa_supplicant -Dwext -iwlan0 -C/data/system/wpa_supplicant -c/data/misc/wifi/wpa_supplicant.conf      (use “ps”to make sure wpa_sup

2014-12-02 17:58:13 2141

转载 Android系统SVC命令教程

svc命令,位置在/system/bin目录下,用来管理电源控制,无线数据,WIFI[java] view plaincopy# svc  svc  Available commands:  help     Show information about the subcommands  power    Control the power manager  dat

2014-12-02 15:35:03 4028

转载 wpa_supplicant软件架构分析

1. 启动命令wpa supplicant 在启动时,启动命令可以带有很多参数,目前我们的启动命令如下:wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -c/data/wifi/wpa_supplicant.conf -f/data/wifi/wpa_log.txt wpa_supplicant对于启动命令带的参数,用

2014-11-26 17:50:09 1406

转载 EAP和EAPOL资料

EAP和EAPOL资料1.EAP协议802.1x协议在实现整个认证的过程中,其三个关键部分(客户端、认证系统、认证服务器)之间是通过不同的通信协议进行交互的,其中认证系统和认证服务器之间是EAP报文。EAP帧结构如下表所示:字段字节Code1Identifier2

2014-11-26 17:46:35 8251

转载 Android WiFi--系统架构

1. 系统架构        Android WiFi系统引入了wpa_supplicant,它的整个WiFi系统以wpa_supplicant为核心来定义上层用户接口和下层驱动接口。整个WiFi系统架构如下图所示:   一切尽在上图中,下面将对每部分进行详细分析。1.1 WifiService        由SystemServer启动的时候生成的Connecttivity

2014-11-24 17:29:25 1192

转载 Android WiFi系统

wpa_supplicant本是开源项目源码,被谷歌修改后加入android移动平台,它主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上的工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_supplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,而用户可以通过socket发送命令给wpa_supplicant调动驱动来对

2014-11-24 17:28:11 900

转载 Android4.2.2 SurfaceFlinger的相关事件和消息处理机制

在这篇博文将会和大家一起分享我所学到的一点SurfaceFlinger中的事件和消息处理机制。 在前面的博文中,可以发现在SurfaceFlinger中的OnFirstRef里面有如下函数:void SurfaceFlinger::onFirstRef(){ mEventQueue.init(this); run("SurfaceFlinger", PRIORITY

2014-11-04 14:49:37 1369

UNIX环境高级编程

UNIX环境高级编程

2012-01-31

Android底层开发

Android底层开发文档整理,Android底层开发

2011-12-26

android内核移植文档整理

android内核移植文档整理,我移植时参考过的文档,论文,资料,等待资料.学习andoid内核移植的好文章

2011-12-26

Uboot启动和移植

Uboot启动和移植

2011-12-25

uboot分析和笔记

uboot分析和笔记 详细的分析 uboot分析和笔记 详细的分析

2011-12-25

Android面试题

Android面试题

2011-12-25

android底层相关模块介绍

android底层相关模块介绍供14章 包括android驱动所有模块,学习的好资料啊

2011-12-25

Android核心分析

Android核心分析 Zygote Service - maxleng的专栏 Service深入分析 IPC框架分析 Binder,Service,Service manager

2011-12-25

Android编译系统

Android_build_systemAndroid_build_systemAndroid_build_system

2011-12-25

android编译大全_完全指南

android编译大全_完全指南

2011-12-25

Android的编译系统

Android的编译系统

2011-12-25

FPGA学习经验

FPGA学习经验共享FPGA学习经验共享FPGA学习经验共享FPGA学习经验共享

2011-12-25

matlab书籍整理

matlab书籍整理

2011-12-25

超声波测距资料打包

超声波测距资料

2011-12-25

嵌入式系统设计开发流程

嵌入式系统设计开发流程嵌入式系统设计开发流程嵌入式系统设计开发流程嵌入式系统设计开发流程

2011-12-25

ucos 2内核结构

ucos 2内核结构

2011-12-25

嵌入式操作系统介绍

嵌入式操作系统介绍

2011-12-25

任务管理 时间管理 内存管理

任务管理 时间管理 内存管理

2011-12-25

uCOSII移植

uCOSII移植

2011-12-25

C语言实现FFT

C语言实现FFT

2011-12-25

C2000与单片机对比分析

C2000与单片机对比分析

2011-12-25

基于DSP的FFT算法实现

基于DSP的FFT算法实现

2011-12-25

TMS320C2000 DSP硬件结构

TMS320C2000 DSP硬件结构

2011-12-25

TMS320C2000 DSP指令系统

TMS320C2000 DSP指令系统

2011-12-25

TMS320C2000 DSP开发环境

TMS320C2000 DSP开发环境

2011-12-25

基于DSp湿度传感器测试系统设计

基于DSp湿度传感器测试系统设计,这可是个人论文啊。

2011-12-25

CCS的技术概述

CCS的技术概述

2011-12-25

做DSP最应该懂得157个问题

做DSP最应该懂得157个问题

2011-12-25

基于TMS320C240湿度传感器测试系统设计

基于TMS320C240湿度传感器测试系统设计

2011-12-25

Jabber(XMPP)服务协议的概述中文版

Jabber(XMPP)服务协议的概述中文版

2011-12-25

AVR实现MP3,歌曲放在U盘.

AVR实现MP3,歌曲放在U盘,原理图,代码都有,还有说明哦

2011-12-25

XMPP协议简介

XMPP协议简介

2011-12-25

佛山网通EPON的FTTH工程方案设计

如今,更多用户关注多样化、个性化的通信服务,宽带服务的需求已经上升到了一个新的台阶。随着IPTV视频组播、点播业务的全面展开,对接入网提出了更高的带宽需求。 现有宽带接入方式,如xDSL,已越来越不能满足用户高带宽、多业务接入的需求。随着光接入技术的发展,光纤到户的综合成本比以前有大幅度下降。目前进行FTTH技术和业务的试验条件已经具备。 本文主要讨论了佛山网通EPON的FTTH工程设计方案,对工程涉及的试验业务、网络结构、小区布线、带宽设计、IP地址规划、VLAN划分、设备特性、ODN设置等进行了详细的描述,并对该工程采用EPON的FTTH技术进行了详细的分析。本次试验工程为佛山进行大规模的FTTH商用奠定了基础。

2011-12-25

Vmware与主机间共享文件的七种方法

Vmware与主机间共享文件的七种方法

2011-12-25

超宽带无线通信技术 ppt

超宽带无线通信技术 超宽带无线通信技术

2022-09-11

ARM---Cortex-A8处理器

ARM---Cortex-A8处理器, PPT版本, 非常好的参考资料。 欢迎下载 Cortex-A8处理器 技术特点; Cortex-A8内部 功能及特点; Cortex-A8内核工作模式; Cortex-A8存储系统。

2022-09-11

opencl SVM例程

opencl SVM例程

2016-08-16

linux设备启动char_dev2

linux设备启动char_dev2

2012-01-31

linux设备启动char_dev1

linux设备启动char_dev

2012-01-31

linux字符设备驱动

linux字符设备驱动

2012-01-31

空空如也

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

TA关注的人

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