Johnson的技术博客

长期安逸的工作意味着将来更大的风险

基于Tesseract OCR的文字识别Android应用开发资料整理

前言 一、Tesseract OCR引擎   Tesseract OCR是HP公司于1985~1995年间开发的商业级OCR(Optical Character Reader, 光学字符阅读器)引擎,并于2005年开放源代码。以下是它sourceforge上的网址:   http:...

2014-09-15 16:16:41

阅读数 6414

评论数 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.b...

2014-09-15 13:49:48

阅读数 1324

评论数 3

《深入Linux内核架构》附录A<体系结构相关知识>笔记

附录A 体系结构相关知识 A.1 概述 为便于扩展到新的体系结构,内核严格隔离了体系结构相关和体系结构无关的代码。内核中特定于处理器的部分,包含定义和原型的头文件保存在include/asm-arch/(例如,include/asm-arm/)目录下,而C语言和汇编程序源代码实现则保存在a...

2014-08-18 16:31:26

阅读数 990

评论数 0

ARM处理器基础知识ing

1. ARM处理器模式

2014-07-31 14:13:25

阅读数 1051

评论数 0

基于Eclipse的Android JNI层测试应用开发过程记录

前言   本文记录一个Java层与JNI层参数与数据交互的应用程序开发过程,为实现一个功能完整的带Java与JNI的应用程序打下基础。本文假设读者已搭建好Android的Eclipse与NDK开发环境,包括通过ADB连接手机的配置。 1. 构建基本的Android应用程序   1.1 引导...

2014-06-29 14:16:48

阅读数 1395

评论数 0

GNU风格ARM汇编编程实战之一 <C与汇编混合编程>

一、参考资料

2014-05-30 15:48:38

阅读数 3170

评论数 0

《Cortex™-A系列编程者指南(V3.0)》第14章<其它异常处理>笔记

在本章中,我们会简单的看看用于中止、未定义指令和SVC指令的中断处理程序,看看Linux内核是如何处理中断的。复位处理程序在第15章启动代码里将会深入涉及。

2014-05-28 10:52:32

阅读数 1530

评论数 0

《Cortex™-A系列编程者指南(V3.0)》第13章<中断处理>笔记

在本章,我们会看看ARM处理器处理中断的一系列方法,简单地看看通用中断控制器(Generic Interrupt Controller,GIC)架构。   旧版本的ARM架构允许实现者在他们的外部中断控制器设计中相当大的自由,没有关于中断类型或数量,或者是被用于中断控制模块接口的软件模型的协议。...

2014-05-27 10:23:56

阅读数 2529

评论数 1

C\C++代码优化的27个建议

1. 记住阿姆达尔定律: funccost是函数func运行时间百分比,funcspeedup是你优化函数的运行的系数。所以,如果你优化了函数TriangleIntersect执行40%的运行时间,使它运行快了近两倍,而你的程序会运行快25%。这意味着不经常使用的代码不需要做较多优化...

2014-05-24 10:37:26

阅读数 742

评论数 0

《Cortex™-A系列编程者指南(V3.0)》第12章<异常处理>笔记

在本章,我们看看ARM处理器如何响应异常。异常是任何需要挂起正常执行转而运行与每个异常类型相关联软件(称为异常处理程序)的条件。 12.1 异常的类型 如我们在第四章看到,A系列和R系列架构支持七种处理器模式,六种特权模式(称为快速中断模式、外部中断模式、管理模式、中止模式、未定义模式和系...

2014-05-22 16:01:24

阅读数 1796

评论数 0

《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

阅读数 4973

评论数 1

《Using OpenMP》第五章<如何通过使用OpenMP获得好的性能>笔记 ing

5.2 串行程序的性能考虑 目前,单核处理器的性能经常归因为未充分利用的cache内存子系统。特别地,缓存分层中的最高层缓存未命中的代价是高昂的,因为这意味着数据在使用之前必须从主内存中获取。典型地,相比从缓存中获取数据,通常需要付出5-10倍更多的代价。在一个共享内存多核处理器系统中,这一负...

2014-04-30 20:42:23

阅读数 2442

评论数 0

OpenMP for Android初学记录

OpenMP是一种应用程序接口(API),支持多平台共享内存的C/C++/Fortran多处理器编程,可以运行在绝大多数处理器架构和操作系统上,包括Solaris, AIX, HP-UX, GNU/Linux, Mac OS X和Windows平台。它由编译器指令集、库函数和环境变量组成,影响运行...

2014-04-28 14:05:05

阅读数 4995

评论数 0

《Autotools - GNU Autoconf, Automake与Libtool实践者指南》第三章<用Autoconf配置你的项目>

因为对于原本的Autoconf框架,Automake和Libtool本质上是追加的组件,花费一些时间使用Autoconf而不使用Automake和Libtool是有用的。通过暴露这个工具的那些经常被Automake隐藏的部分,提供给你关于Autoconf如何运作相当多的见解。   在Auto...

2014-03-27 17:30:49

阅读数 2953

评论数 0

《Autotools - GNU Autoconf, Automake与Libtool实践者指南》第二章<理解GNU编码标准>

在第一章中,我给出了GNU Autotools和一些资源的概述,可以帮助降低所需要的学习曲线来掌握它们。在这一章节中,我们会退一小步,调查可用于任何工程的项目组织技术,不仅仅使用Autotools。 当你完成阅读这一章节,你应该会熟悉普通的make目标,知晓它们为何存在。你应该也会对工程组织方...

2014-03-18 20:12:27

阅读数 2330

评论数 0

《Autotools - GNU Autoconf, Automake与Libtool实践者指南》第一章<GNU Autotools简要介绍>

前言   本文根据《Autotools - A Practioner's Guide to GNU Autoconf, Automake, and Libtool》第一章翻译整理,省略了部分语句。 正文

2014-03-16 17:19:32

阅读数 4793

评论数 0

《Mali OpenCL SDK v1.1.0》教程样例之六“索贝尔滤波器”

Sobel图像滤波器是一种简单的卷积滤波器,主要用于边缘检测算法。 样例结果 输入图像 输出图像 算法   一种做图像边缘检测的技术是,找出图像的梯度。大梯度值的区域对应图像色彩或密度的剧变区域。典型地,这些区域是边缘。   如果你对于幅图像卷积两个Sobel算子,你会得...

2014-03-14 14:26:10

阅读数 3197

评论数 1

《Mali-T600系列GPU OpenCL开发者指南》第六章< 为Mali GPU调整现有OpenCL代码>笔记

本章介绍如何为 Mali GPU 优化现有的 OpenCL 代码。它包含以下小节:  > 关于为优化现有代码  > 为优化现有代码的步骤   6.1 关于为 Mali GPU 优化现有 OpenCL 代码   OpenCL 是一种可移植语言,但并不总是在性能上可移植。这意味着 ...

2014-03-12 16:50:45

阅读数 2408

评论数 3

《Mali-T600系列GPU OpenCL开发者指南》第五章<转换现有代码到OpenCL>笔记

5.1 检索你的应用程序   检索你的应用程序,寻找计算最密集的部,这些是值得移植到OpenCL上的部分。   你可以使用DS-5来检索你的应用程序,从Mali开发者网站下载DS-5: http://www.malideveloper.arm.com 5.2 为并行化分析你的代码  ...

2014-03-12 10:22:26

阅读数 1928

评论数 0

《Mali OpenCL SDK v1.1.0》教程样例之五“64位整数与原子操作”

介绍   在本教程中,我们将会看到在OpenCL中使用长数据类型。我们也会触及如何和为什么要在OpenCL中使用原子变量。在这个过程中,我们介绍了Mali-T600系列GPU支持的64位原子扩展。 长数据类型   在OpenCL嵌入式

2014-03-10 14:50:46

阅读数 2214

评论数 0

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