自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

subingxi的专栏

奋斗在linux天空下的一只小鸟

  • 博客(38)
  • 资源 (4)
  • 收藏
  • 关注

原创 WordPress此页面不能正确地重定向的问题。

背景我想全站https,直接修改数据库我这里用了yoast seo插件,所以有最后两条。其实你自己去数据库里面去看一看就知道哪些地方需要替换了。 UPDATE wp_options SET option_value = replace( option_value, 'http://youurl.com', 'https://youurl.com' ) WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_po

2020-12-01 15:24:13 979 1

原创 ubuntu20.04 截屏功能

以前我使用的是ubuntu 16.04 。最近使用ubuntu 20.04 ,我首先就是装一些我常用的工具。按照截屏工具时,我去修改快捷键。发现系统自带的就有截屏功能。大家看一下系统自带的快捷键就知道了。1、进入设置界面2、查看快捷键在这里就看到了 截屏相关的快捷键。...

2020-10-11 15:42:57 1248

转载 Linux kernel 源码在线查看网址

https://elixir.bootlin.com/linux/latest/source

2019-10-30 14:56:22 4935

原创 Android 交叉编译 i2c-tools

我们写的C文件编译成可执行文件 其实可以依照 external 内的程序,依葫芦画瓢。很简单。但是很多时候是我们下载的第三方工具的源码,比如 i2c-tools下载地址https://launchpad.net/ubuntu/+source/i2c-tools/3.0.3-5这个源码下载下来,需要交叉编译make CC=arm-linux-androideabi-gcc那么这个交叉编译...

2019-05-22 18:48:46 675

原创 Ubuntu 内网用有线,外网用wifi

记录一下enp4s0 为我的有线网卡wlx70f11c0389b3 为无线网卡同时链接有线 和无线 ,发现默认使用的是有线那么一、删除默认有线网关sudo route del default gw 172.16.43.254 dev enp4s0二、把无线网关设置成默认网关sudo route add default gw 172.16.31.254 dev wlx70f11c038...

2019-03-27 14:32:04 971

原创 Android recovery 模式下屏幕显示旋转

Android recovery 模式下屏幕显示旋转大家在网上搜索 Android屏幕旋转,成千上万的文章,但是没有几个是写recovery 模式的。难道你们只旋转正常模式下的屏幕方向,不管recovery模式,那升级的画面岂不是有问题。很对人使用的是MTK平台,对与MTK平台,MTK已经帮你做好了,你只用修改一下配置就行了。MTK平台我们可以在bootable/recovery/minui...

2019-01-31 15:58:52 2810 9

原创 Android底部导航 BottomNavigationBar

在这里查看最新版本https://github.com/Ashok-Varma/BottomNavigation/releases先添加依赖implementation 'com.ashokvarma.android:bottom-navigation-bar:2.0.3'

2019-01-29 10:37:32 266

原创 android Sensor 驱动编写--opt3001光感驱动为例

分析Android sensorAndroid sensor Framework 层以及APP如何读取sensor 数据。网上有很多文章不再累述。由于我使用的是Android 5.1(kernel 3.10) ,不自带 opt3001的驱动,我发现kernel 4.10 已经自带opt3001的驱动。我不会为了一个驱动而换掉 kernel。而且 kernel 4.10 opt3001的驱动高度...

2018-12-29 15:19:51 4182 3

原创 Android 在主屏上生成快捷方式

我最近在做一个项目,客户要求我们的系统自带他们指定的apk,这没有什么难得。

2018-12-29 13:52:10 1650

原创 Android apk反编译

工具反编译apk要用到很多工具,其中apktoll工具作用下载地址ApkToolGoolge官方提供的APK反编译工具十分强大, 是以下几个工具的综合体 https://ibotpeaches.github.io/Apktool/install/dex2jar将dex文件转为jar包及.class文件 https://github.com/pxb1988...

2018-10-22 11:55:54 339

原创 万能Makefile

经过几天的实验,终于写出来了,顶层目录的MakefileCROSS_COMPILE ?= arm-linux-CC = $(CROSS_COMPILE)gccLD = $(CROSS_COMPILE)ldTOPDIR = $(shell pwd)CFLAGS  := -Wall -O2  -lfreetype -lpngLDFLAGS :=CFLAGS += -I $(TOPD...

2018-08-09 17:46:24 299

原创 Android 为所有app开放 系统app才能申请的权限(SD卡写权限 等。。)

在Android中有些权限只能有系统签名的app才能申请,第三方app不能申请。 如果要开放某个权限给第三方,我们只能修改系统源码。 android.permission.WRITE_MEDIA_STORAGE 是SD卡写权限,只有系统签名的app才可以申请。 第三方app如果要写SD卡 只能用 SAF,但是SAF对用户来说操作不方便。 我的思路很简单,把 android.perm...

2018-08-09 17:37:43 5066

原创 Android6.0 usb默认MTP模式的修改方法

Android6.0 usb默认MTP模式的修改方法在6.0以前的系统 只需要修改默认的 persist.sys.usb.config 的值就可以了,但是6.0,无论你怎能修改persist.sys.usb.config的默认值,usb默认是仅充电模式。就算你修改了设置,拔掉后再连接也是仅充电模式。一切问题的原因都是可以再源代码里找到线索的。 源代码 packages/a...

2018-05-23 19:34:23 7257 1

转载 Android sdk build tools 等下载

http://mirrors.neusoft.edu.cn/android/repository/

2017-11-18 15:59:17 7060 2

原创 让Android WiFi支持中文

让Android WiFi支持中文先要 弄清楚一下几点: Android显示的WiFi名字(SSID),计算机都是以二进制处理的数据的,所以接受到的这个名字一定是一个二进制数据,它是怎么变成字符串的呢? 他的编码方式是GBK还是utf-8呢? 然后是怎么连接的呢,了解了这些你才知道如何去修改

2017-11-18 14:11:43 2765

转载 ARM linux s3c2440 解决黑屏问题

解决嵌入式系统黑屏问题,嵌入式linux自动关闭屏幕!如果10分钟内不使用键盘、鼠标,你会发现LCD将黑屏。

2016-05-27 16:12:35 871

转载 Linux网络编程入门

http://blog.csdn.net/jenshy/article/details/667944

2016-04-22 13:35:40 294

转载 LINUX 使用tcgetattr函数与tcsetattr函数控制终端

LINUX 使用tcgetattr函数与tcsetattr函数控制终端一为了便于通过程序来获得和修改终端参数,Linux还提供了tcgetattr函数和tcsetattr函数。tcgetattr用于获取终端的相关参数,而tcsetattr函数用于设置终端参数。这两个函数的具体信息如表6.2所示。表6.2 tcgetattr函数和tcsetattr函数

2016-04-14 11:23:39 333

转载 自动处理头文件的依赖关系

现在我们的Makefile写成这样:all: mainmain: main.o stack.o maze.o gcc −o^ -o @main.o: main.h stack.h maze.h stack.o: stack.h main.h maze.o: maze.h main.hclean: -rm main *.o.PHONY: clean 按照惯例,用all做缺省目

2016-04-08 21:24:30 305

原创 点阵字库简介及使用方法

如何在嵌入式系统中使用大量的汉字和字符呢? DOS前辈们经过艰辛的努力,将制作好的字模放到了一个个标准的库中以免去后辈的麻烦,这就是点阵字库文件。 一般我们使用16*16的点阵宋体字库,所谓16*16,是每一个汉字在纵、横各16点的区域内显示的。不过后来又有了HZK12、HZK24,HZK32和HZK48字库及黑体、楷体和隶书字库。虽然汉字库种类繁多,但都是按照区

2016-03-17 19:46:55 4581

原创 制作根文件系统的问题

我做的是busybox-1.24.1 arm-linux-gnueabi-gcc 4.7.3 我的linux内核是4.4.3 在编译linux内核时已经选择了支持eabi 但是还是出现了: VFS: Mounted root (jffs2 filesystem) on device 31:3. Freeing unused kernel memory: 208K (c06c2000

2016-03-02 21:58:07 814

转载 arm linux 交叉编译工具的选择

arm-none-eabi-gcc (ARM architecture,no vendor,not target an operating system,complies with the ARM EABI) 用于编译 ARM 架构的裸机系统(包括 ARM Linux 的 boot、kernel,不适用编译 Linux 应用 Application),一般适合 ARM7、Cortex-M 和 C

2016-02-29 11:28:41 942

转载 linux进程的休眠(等待队列)

当进程以阻塞的方式通信,在得到结果前进程会挂起休眠。为了将进程以一种安全的方式进入休眠,我们需要牢记两条规则:一、永远不要在原子上下文中进入休眠。二、进程休眠后,对环境一无所知。唤醒后,必须再次检查以确保我们等待的条件真正为真简单休眠完成唤醒任务的代码还必须能够找到我们的进程,这样才能唤醒休眠的进程。需要维护一个称为等待队列的数据结构。等待队列就是一个进程链表,其中包含了等待某

2015-11-04 16:17:24 410

原创 在伙伴算法之前的内存管理机制

本文的所描述的内核版本是linux-2.4.20 我们知道在linux内核中,获取物理页面是靠着alloc_pages这个函数来实现的,这个函数会尽它的一切努力满足页面的分配需求,如果free页面的队列充足,那么就直接分配一个然后返回了,很简单。但是如果不足,那就要洗洗刷刷把不干净的页面转换成干净的,干净页面多了也可以满足分配的需求了。这个函数从某种意思上说非常以及极其的简单,那是在页面充足的情

2015-09-08 22:38:15 558

转载 linux中的块缓冲

把块存放在页高速缓存中 一、概述 Linux支持的文件系统大多以块的形式组织文件,为了减少对物理块设备的访问,在文件以块的形式调入内存后,使用块高速缓存(buffer_cache)对它们进行管理。每个缓冲区由两部分组成,第一部分称为缓冲区首部,用数据结构buffer_head表示,第二部分是真正的缓冲区内容(即所存储的数据)。由于缓冲区首部不与数据区域相连,数据区域独立存储。因而在缓冲区首

2015-08-20 19:39:02 983

原创 input 子系统

在Linux中,输入子系统是由输入子系统设备驱动层、输入子系统核心层(Input Core)和输入子系统事件处理层(Event Handler)组成。其中设备驱动层提供对硬件各寄存器的读写访问和将底层硬件对用户输入访问的响应转换为标准的输入事件,再通过核心层提交给事件处理层;而核心层对下提供了设备驱动层的编程接口,对上又提供了事件处理层的编程接口;而事件处理层就为我们用户空间的应用程序提供了统一访问设备的接口和驱动层提交来的事件处理。所以这使得我们输入设备的驱动部分不在用关心对设备文件的操作,而是要关心对各

2015-08-11 16:18:32 793

转载 arm linux 启动代码分析uboot

今天晚上总算把自己的arm linux启动部分讲座讲了第一部分和第二部分了,明天还要讲第三部分和第四部分,今天主要讲了下uboot的启动流程和linux的编译链接过程,明天接着讲linux汇编的启动部分,下面我把uboot的部分介绍下一、U-boot的启动流程Uboot的启动流程如下:1)第一阶段的功能  Ø  硬件设备初始化  Ø  加载U-Boot第二阶段代码到RAM空

2015-08-01 20:42:55 603

转载 arm linux 启动代码分析(三)

下面是接着第二节往下的:@ 对下面这些地址的理解其实还是很麻烦,但有篇文档写得很清楚《About TEXTADDR, ZTEXTADDR, @ PAGE_OFFSET etc...》。下面程序的意义就是保证解压地址和当前程序的地址不重叠。上面分配了64KB的空间来做解压时的数据缓存。/* 检查是否会覆盖内核映像本身  *   r4 = 最后我们的

2015-08-01 20:33:31 386

转载 arm linux 启动代码分析(二)

昨天分析了一下SEP4020 LINUX的zImage的加载引导过程,zImage其实主要就是在重定位代码,然后就是将我们的Image镜像搬运到0x30008000位置,然后向Image传递r0=0,r1=体系架构号,r2=参数列表基址,然后就跳到了Image去执行系统启动了,不过这中间在解压缩内核和搬运过程中是要开MMU和CACHE的,所以其中有相当的篇幅是开这两个玩意的,下面就代码一句一句来介

2015-08-01 20:31:19 408

转载 arm linux 启动代码分析(一)

这次我写的是Image的启动过程,也即使zImage解压缩结束后的启动代码,这时候的代码开始地址仍然是0x30008000,下面我结合代码来讲吧:Image的启动代码是在/arch/arm/kernel/head.S中的:/* *  linux/arch/arm/kernel/head.S *  Kernel startup code for all 32-bit CPUs

2015-08-01 20:29:13 726

原创 windows 下构建 Eclipse gdb 调试平台调试arm程序

安装yargarto 版本eabi编译链 http://www.yagarto.de/安装JAVA虚拟机  JRE 就足够了。下载 eclipse 的 C/C++ 版本下载 zylin 插件,在 eclipse 的 Help --> Install New Software 中添加地址 http://opensource.zylin.com/zylincdt/ 就可以了。

2015-07-18 14:39:59 4411

转载 liunx源码 makefile详细分析

1、从总目标uImage说起     2、vmlinux的生成    3、vmlinux-lds、vmlinux-init、vmlinux-main的生成  2 scripts/Makefile.build的第一次调用阶段    1、Makefile.build的包含文件    2、scripts/Makefile.build的总目标    3、drivers/built-

2015-07-16 15:55:36 622

转载 linux 内核分析之list_head

一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。通常链表数据结构至少应包含两个域:数据域和指针域,数据域用于存储数

2015-06-07 19:25:48 385

转载 LCD驱动(FrameBuffer)实例开发讲解

一、开发环境主  机:VMWare--Fedora 9开发板:Mini2440--64MB Nand, Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2二、背景知识1. LCD工作的硬件需求:   要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG

2015-06-05 22:09:41 713

转载 dma_alloc_writecombine

1、页对齐内存大小:dma_map_size = PAGE_ALIGN(MY_DATA_SIZE + PAGE_SIZE);MY_DATA_SIZE是你想分配的大小.2、调用A = dma_alloc_writecombine(B,C,D,GFP_KERNEL);含义:A: 内存的虚拟起始地址,在内核要用此地址来操作所分配的内存B: struct device指针,可以

2015-06-05 17:40:41 410

原创 Linux 内核定时器及使用方法

LINUX内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于 <linux/timer.h> 和 kernel/timer.c 文件中。每当时钟中断发生时,全局变量jiffies(一个32位的unsigned long 变量,定义在)就加1,因此jiffies记录了字linux系统启动后时钟中断发生的次数.驱动程序常利用jiffies来计算不同事件间的时间间隔.初始化定时器队列结构.timer_list结构在使用前必须初始化,这是要保证结构体中其他的成员能

2015-05-29 20:37:18 811

原创 linux异步通知机制 与 fcntl 函数使用详解

本文介绍了linux异步通知机制的使用,以及fcntl函数的使用详解。在linux字符驱动中;异步通知机制是必须学会的!异步通知的意思就是,一旦设备就绪,则主动通知应用程序,应用程序 根本就不需要查询设备状态,类似于中断的概念,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来 等待信号的到达。下面我们就看一下在linux中机制的实现方式。在linux中,异步通知是使用信号来实现的,而在linux,大概有30种信号,比如大家熟悉的ctrl+c的SIGINT信

2015-05-28 19:02:08 2109

原创 poll和select机制分析机制分析和使用

本文介绍了poll机制,先分析内核介绍poll机制的原理,整个调用过程有一个了解!!然后在说对于程序员来说应该怎样编写驱动!!然后再说在应用程序中怎么调用poll函数。这篇文章讲了从原理上去理解整个poll机制,然后总结了一下程序员应该怎么使用!原理虽然有点小麻烦!使用还是很简单的!不想了解原理的也可以直接看后面的使用!!

2015-05-25 21:31:25 577

苹果cms_模板_手机电脑自适应_大橙_简单大方

苹果cms_模板_手机电脑自适应_大橙_简单大方,价值几十元。现在免费分享给大家

2019-09-05

软考网络工程师历年真题(2009-2019上半年)包含答案,包含详细解析

软考网络工程师历年真题(2009-2019上半年)包含答案,包含详细解析

2019-08-06

pcsc协议以及测试程序

这个程序,可以移植到Android,或者Linux设备上,通过usb连接IC读卡器可以读卡,启动包括必要的usb库,ccid,pcscd,协议。以及一个测试程序pcsc_scan

2017-11-21

OV5640-datasheet.pdf

ov5640,数据手册,完整的藐视了寄存器,以及简单的使用,写驱动的时候必备

2017-11-21

空空如也

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

TA关注的人

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