- 博客(34)
- 资源 (7)
- 收藏
- 关注
原创 基于Tesseract OCR的文字识别Android应用开发资料整理
前言一、Tesseract OCR引擎 Tesseract OCR是HP公司于1985~1995年间开发的商业级OCR(Optical Character Reader, 光学字符阅读器)引擎,并于2005年开放源代码。以下是它sourceforge上的网址: http://sourceforge.net/projects/tesseract-ocr
2014-09-15 16:16:41 7206 1
原创 基于Linux的USB子系统学习 --- <基础知识与USB协议概述> ing
一、参考资料 1.《USB基础知识概论》 http://www.crifan.com/files/doc/docbook/usb_basic/release/html/usb_basic.html 2.《USB in a NutShell》 http://www.beyondlogic.org/usbnutshell/usb1.shtml 3.《
2014-09-15 13:49:48 1660
原创 《深入Linux内核架构》附录A<体系结构相关知识>笔记
附录A 体系结构相关知识A.1 概述为便于扩展到新的体系结构,内核严格隔离了体系结构相关和体系结构无关的代码。内核中特定于处理器的部分,包含定义和原型的头文件保存在include/asm-arch/(例如,include/asm-arm/)目录下,而C语言和汇编程序源代码实现则保存在arch/arch/(例如,arch/arm/)目录下。联编系统也考虑到一般代码可能需要
2014-08-18 16:31:26 1488
原创 基于Eclipse的Android JNI层测试应用开发过程记录
前言 本文记录一个Java层与JNI层参数与数据交互的应用程序开发过程,为实现一个功能完整的带Java与JNI的应用程序打下基础。本文假设读者已搭建好Android的Eclipse与NDK开发环境,包括通过ADB连接手机的配置。1. 构建基本的Android应用程序 1.1 引导界面配置 打开Eclipse,"File"->"New"->"Andro
2014-06-29 14:16:48 1626
原创 《Cortex™-A系列编程者指南(V3.0)》第14章<其它异常处理>笔记
在本章中,我们会简单的看看用于中止、未定义指令和SVC指令的中断处理程序,看看Linux内核是如何处理中断的。复位处理程序在第15章启动代码里将会深入涉及。
2014-05-28 10:52:32 1960
原创 《Cortex™-A系列编程者指南(V3.0)》第13章<中断处理>笔记
在本章,我们会看看ARM处理器处理中断的一系列方法,简单地看看通用中断控制器(Generic Interrupt Controller,GIC)架构。 旧版本的ARM架构允许实现者在他们的外部中断控制器设计中相当大的自由,没有关于中断类型或数量,或者是被用于中断控制模块接口的软件模型的协议。GIC架构提供一个更为严格的控制规范,使得来自不同制造商之间的中断控制器之间有更高程度的一致性。这
2014-05-27 10:23:56 3037 1
转载 C\C++代码优化的27个建议
1. 记住阿姆达尔定律:funccost是函数func运行时间百分比,funcspeedup是你优化函数的运行的系数。所以,如果你优化了函数TriangleIntersect执行40%的运行时间,使它运行快了近两倍,而你的程序会运行快25%。这意味着不经常使用的代码不需要做较多优化考虑(或者完全不优化)。这里有句俗语:让经常执行的路径运行更加高效,而运行稀少的路径正确运行。
2014-05-24 10:37:26 1415
原创 《Cortex™-A系列编程者指南(V3.0)》第12章<异常处理>笔记
在本章,我们看看ARM处理器如何响应异常。异常是任何需要挂起正常执行转而运行与每个异常类型相关联软件(称为异常处理程序)的条件。12.1 异常的类型如我们在第四章看到,A系列和R系列架构支持七种处理器模式,六种特权模式(称为快速中断模式、外部中断模式、管理模式、中止模式、未定义模式和系统模式),一种非特权模式(用户模式)。如果虚拟化扩展和安全扩展被实现,Hyp和Monito
2014-05-22 16:01:24 2287
原创 《Cortex™-A系列编程者指南(V3.0)》第4章<ARM寄存器、工作模式和指令集>笔记
《Cortex-A系列编程者指南(3.0版)》文档来源:DEN0013C_cortex_a_series_PG.pdf说明:前三章是介绍性的,略过,值得关注的是Linaro:www.linaro.org。第四章 ARM寄存器、工作模式和指令集本章介绍ARM处理器的基础特性,包括寄存器、工作模式和指令集的细节。我们也会涉及一些处理器实现细节,包括指令流水线和分支预测。
2014-05-21 13:54:36 6508 1
原创 《Using OpenMP》第五章<如何通过使用OpenMP获得好的性能>笔记 ing
5.2 串行程序的性能考虑目前,单核处理器的性能经常归因为未充分利用的cache内存子系统。特别地,缓存分层中的最高层缓存未命中的代价是高昂的,因为这意味着数据在使用之前必须从主内存中获取。典型地,相比从缓存中获取数据,通常需要付出5-10倍更多的代价。在一个共享内存多核处理器系统中,这一负面影响更为严重:涉及的线程越多,潜在地性能问题越大。我们简约的讨论了存储器分层和它的
2014-04-30 20:42:23 3072
原创 OpenMP for Android初学记录
OpenMP是一种应用程序接口(API),支持多平台共享内存的C/C++/Fortran多处理器编程,可以运行在绝大多数处理器架构和操作系统上,包括Solaris, AIX, HP-UX, GNU/Linux, Mac OS X和Windows平台。它由编译器指令集、库函数和环境变量组成,影响运行时行为。
2014-04-28 14:05:05 7907
原创 《Autotools - GNU Autoconf, Automake与Libtool实践者指南》第三章<用Autoconf配置你的项目>
因为对于原本的Autoconf框架,Automake和Libtool本质上是追加的组件,花费一些时间使用Autoconf而不使用Automake和Libtool是有用的。通过暴露这个工具的那些经常被Automake隐藏的部分,提供给你关于Autoconf如何运作相当多的见解。 在Automake出现之前,Autoconf是被单独使用的。实际上,很多遗留的开源软件项目从没有做从Autoco
2014-03-27 17:30:49 3864
原创 《Autotools - GNU Autoconf, Automake与Libtool实践者指南》第二章<理解GNU编码标准>
在第一章中,我给出了GNU Autotools和一些资源的概述,可以帮助降低所需要的学习曲线来掌握它们。在这一章节中,我们会退一小步,调查可用于任何工程的项目组织技术,不仅仅使用Autotools。当你完成阅读这一章节,你应该会熟悉普通的make目标,知晓它们为何存在。你应该也会对工程组织方式有一个坚实的理解。当你完成这一章节,你会是很好地在通往Automake专家的路上。
2014-03-18 20:12:27 3193
原创 《Autotools - GNU Autoconf, Automake与Libtool实践者指南》第一章<GNU Autotools简要介绍>
前言 本文根据《Autotools - A Practioner's Guide to GNU Autoconf, Automake, and Libtool》第一章翻译整理,省略了部分语句。正文
2014-03-16 17:19:32 8079
原创 《Mali OpenCL SDK v1.1.0》教程样例之六“索贝尔滤波器”
Sobel图像滤波器是一种简单的卷积滤波器,主要用于边缘检测算法。样例结果输入图像输出图像算法 一种做图像边缘检测的技术是,找出图像的梯度。大梯度值的区域对应图像色彩或密度的剧变区域。典型地,这些区域是边缘。 如果你对于幅图像卷积两个Sobel算子,你会得到两个输出: > X方向的梯度(dX) > Y方
2014-03-14 14:26:10 4020 1
原创 《Mali-T600系列GPU OpenCL开发者指南》第六章< 为Mali GPU调整现有OpenCL代码>笔记
本章介绍如何为 Mali GPU 优化现有的 OpenCL 代码。它包含以下小节: > 关于为优化现有代码 > 为优化现有代码的步骤 6.1 关于为 Mali GPU 优化现有 OpenCL 代码 OpenCL 是一种可移植语言,但并不总是在性能上可移植。这意味着 OpenCL 可以在不同类型的计算设备上工作,但性能无法维持。现有的 OpenCL 通常针对桌面
2014-03-12 16:50:45 3633 3
原创 《Mali-T600系列GPU OpenCL开发者指南》第五章<转换现有代码到OpenCL>笔记
5.1 检索你的应用程序 检索你的应用程序,寻找计算最密集的部,这些是值得移植到OpenCL上的部分。 你可以使用DS-5来检索你的应用程序,从Mali开发者网站下载DS-5:http://www.malideveloper.arm.com5.2 为并行化分析你的代码 该部分描述如何为并行化,分析计算密集型代码,包含以下部分: >为并行
2014-03-12 10:22:26 2690
原创 《Mali OpenCL SDK v1.1.0》教程样例之五“64位整数与原子操作”
介绍 在本教程中,我们将会看到在OpenCL中使用长数据类型。我们也会触及如何和为什么要在OpenCL中使用原子变量。在这个过程中,我们介绍了Mali-T600系列GPU支持的64位原子扩展。长数据类型 在OpenCL嵌入式
2014-03-10 14:50:46 2902
原创 《Mali OpenCL SDK v1.1.0》教程样例之四“图像对象”
介绍 纹理(图像)是现代图像应用的很大一部分。正因为如此,图形硬件已经发展到允许高访问性能地对纹理进行访问和操作。为充分使用这一硬件,OpenCL包括了一个可选的图像数据类型。这些"图像对象"在所有Mali-T600系列GPU上受到支持。图像代表大型数据网格,可以并行地被处理。正应为如此,图像数据和图像操作通常非常适合在OpenCL中做加速。图像数据有两种方式可以被OpenCL存储和
2014-03-04 16:46:21 4136
原创 DirectFB+GTK交叉编译记录
一、问题记录1. 最好使用32位Linux主机编译,否则有些软件包中使用Python时会有错误;2. 设置的DirectFB的安装路径是根文件系统中的/usr/directfb,那么在目标系统中也必须保证DirectFB是在这样的一个目录中。因为DirectFB编译时已经把这个目录编译到程序中,无法后期设置。所以可以把所有软件包都安装在这个目录。
2014-02-28 23:22:16 2625
原创 《Mali OpenCL SDK v1.1.0》教程样例之三“内存缓冲区”
本文讲述如何在Mali-T600系列GPU和CPU之间高效共享内存。介绍 当处理大量数据时(在OpenCL应用中这是典型的情况),确保主机与OpenCL设备之间尽可能高效地共享内存是非常重要的。我们已在hello world样例中看到了如何使用内存缓冲区。hello world例程遵循了我们认为的对于在主机和OpenCL设备之间共享内存的“最佳实践”。这一教程讲述这些
2014-02-28 16:25:28 4901
原创 《Mali OpenCL SDK v1.1.0》教程样例之二“程序模板”
在OpenCL SDK根目录下的samples\template,存有程序的模板,其中“template.cpp”是宿主机代码模板,“assets/template.cl”是内核代码模板。“template.cpp”使用了common目录下的“common.cpp”库来建立环境。1. 构建OpenCL环境1.1 创建上下文 在第一个可用平台上创建一个上下文
2014-02-28 14:30:08 3508
原创 《Mali OpenCL SDK v1.1.0》教程样例之一“Hello World”
1、算法简述 实现矩阵相加:Cn = An + Bn。这个例子虽然很简单,但是由于矩阵元素之间相互独立,每个元素可以非常容易地进行并行计算,可以非常理想地在OpenCL中实现。2. C/C++实现 /* * This confidential and proprietary software may be used only as * aut
2014-02-27 16:48:42 6939 3
原创 OpenCL案例研究之一<矩阵乘法>
一、案例简述 本案例讲述使用OpenCL计算矩阵乘法:C = A * B 。 设A、B、C分别是大小为N*P、P*M和N*M的矩阵,那么顺序实现的C代码可以如下所示: // C Functionvoid mat_mul( int Ndim, int Mdim, int Pdim, float* A, float* B, float* C){ in
2014-02-24 15:00:12 11349 2
原创 Ubuntu12.04(64位)下搭建DirectFB PC模拟运行环境
1. DirectFB源码与样例程序下载 DirectFB源码DirectFB-1.4.11.tar.gz: http://directfb.org/index.php?path=Main%2FDownloads DirectFB样例DirectFB-examples-1.2.0.tar.gz: http://directfb.org/index.php?path=Main%2
2014-02-18 14:55:48 2190 1
原创 基于CUDA的OpenCL开发环境搭建与入门程序示例
参考资料:《详细程序注解学OpenCL一 环境配置和入门程序》、《VS2010 NVIDIA OpenCL 开发环境配置》一、搭建开发环境1. 下载和安装CUDA SDK 下载路径:https://developer.nvidia.com/cuda-downloads ; 如果默认安装路径的话,是在:C:\Program Files\NVIDIA GPU
2014-02-12 09:31:42 5896 9
原创 基于RDP协议的远程桌面连接(Win7与Ubuntu12.04间互连)
一、Win7连接Ubuntu2.041. Ubuntu12.04中安装与启动XRDP(开源RDP Server)//安装xrdp# apt-get install xrdp//启动服务service xrdp start2. Win7中连接在Win7中:开始-->所有程序-->附件-->远程桌面连接,如下图。其中选项中可配置“体验”、“显示”等参数,点
2014-02-10 22:51:58 8855
原创 OpenCL简单入门介绍(根据《OpenCL Overview》翻译整理)
根据《OpenCL Overview》与《OpenCL Technical Overview》整理编写,由于第一次接触OpenCL,定会有部分的专业词汇翻译不当,敬请指正。1.《OpenCL Overview》整理笔记这是一个异构的世界 OpenCL让程序员写单一的可移植程序,在一个异构平台上使用所有的资源。OpenCL使用 1. 定义平台; 2.
2014-01-27 16:36:24 4979
原创 u-boot移植与分析记录之二【S5PV210芯片手册时钟控制器部分的翻译】
前言 本文是对S5PV210芯片手册中启动部分的翻译,原文位于《S5PV210 RISC Microprocessor User's Manual, Revision 1.10》第二部分“系统”中的第三章“时钟控制器”。 本章讲述S5PV210支持的时钟管理单元(CMU)。系统控制器(SYSCON)管理S5PV210中的CMU和电源管理单元(PMU)。
2014-01-19 22:02:05 2259
原创 u-boot移植与分析记录之一【S5PV210芯片手册启动顺序部分的翻译】
一、S5PV210芯片手册中启动顺序部分原文:《S5PV210 RISC Microprocessor User's Manual, Revision 1.10》第二部分 系统 ---> 第六章 启动顺序 只针对重点部分进行了翻译1.1 启动顺序综述S5PV210内部存储器由64KB ROM和96KB SRAM组成。S5PV210从内部ROM启动来确保安全启动,这确保镜像不被未授
2014-01-18 17:54:38 2301 1
TI DSP-BIOS用户手册与驱动开发 中文版(第一部分,共两部分)
2011-02-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人