自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (229)
  • 问答 (2)
  • 收藏
  • 关注

原创 android JNI 错误“Cannot load library: soinfo_relocate”

最近Android通过JNI读写串口的时候,调用JNI方法的时候报如下错误:java.lang.UnsatisfiedLinkError: Cannot load library: soinfo_relocate(linker.cpp:975): cannot locate symbol "tcgetattr" referenced by "xxxxx.so"原因:我用的最新A

2016-11-29 12:57:46 1921 2

原创 Linux设备驱动第五天(按键驱动、中断)

回顾: 问题1:简单主设备号、次设备号的用途? 问题2: “mknod /dev/test c 204 64” 这些参数的意义 问题3: 向内核注册一个cdev的编程步骤 问题4:内核空间和用户空间能直接访问吗?如果不能,内核中提供的访问接口有哪些?LED驱动程序 自动创建设备文件: class_create(…); device_create(…);1、按键驱

2016-11-27 11:29:00 772

原创 Linux设备驱动第四天(自动创建设备节点、LED驱动程序)

回顾: 与驱动有关的几个重要结构体 1,struct cdev //从软件上代表硬件设备 { dev_t dev;//设备号 = 主设备号+次设备号 struct file_operations f_ops; }2,struct file_operations{ open read write release

2016-11-26 23:01:45 2295

原创 Linux设备驱动第三天(字符设备驱动、cdev)

设备号的分配 静态分配:动态分配:/*** 功能:动态申请设备号* dev:存放返回的设备号的结构体 * firstminor:指定次设备号 * count:连续编号范围* name:编号相关联的设备名称. (/proc/devices)**/int alloc_chrdev_region(dev_t *dev,unsigned int firstminor,unsigned int

2016-11-25 22:23:45 694

原创 Linux设备驱动第二天(数组参数传递,模块相互调用、printk、内核GPIO函数、系统调用)

数据的模块参数声明:/*** 宏的作用:对数组进行模块参数声明,将来可以进行传递一些参数信息进来* name:数组名* type:数组元素的数据类型* nump:有效数组元素个数的指针* 比如定义一个数组的时候,可能只想操作数据中的某些数据* perm:访问权限 跟之前的一样**/module_param_array(name,type,nump,perm);例如:stat

2016-11-25 11:47:14 1981

原创 Linux设备驱动第一天学习笔记(如何将系统在开发板上运行起来、驱动开发基本步骤)

如何将系统在开发板上运行起来? 4.0 交叉编译器的获取?厂家提供 网上下载(厂家确认) 4.1 uboot进行操作? 1,解压厂家源码 2,进入源码 3,make distclean 彻底删除源码的目标、临时文件 4,make xxx_config 针对某个CPU和开发板进行配置 5,make编译 6,结果生成u-boot.bin 7,利用厂家提供的烧写方法进行烧写 8,

2016-11-24 17:26:06 5071

原创 Linux内核启动流程分析之编译体验

Linux源码编译过程: 1,解压 2,打补丁; 方法 : patch -p 补丁文件名 3,配置,配置有三种方法: 一、直接使用make menuconfig,从头到尾每一项都去配置。(繁琐) 二、使用默认配置,在默认的配置上面修改 三,使用厂家提供的配置文件;使用默认配置的方法: cd 到 arch/arm/configs目录下面,找出一个与自己单板

2016-11-22 11:33:07 657

原创 u-boot分析_uboot启动内核

u-boot 内核启动的时候依赖于以下这两行代码:s = getenv("bootcmd");...run_command(s,0);第一条命令是从nand把内核把读到到一个地址上去;第二条命令是从内核里面启动内核;从哪里读?从kernel分区读; 读到哪里去?放到指定地址(0x30007fc0)去;在PC机上,每一个硬盘前面都有一个分区表。对于嵌入式Linux来说,flash上面没有分区表,

2016-11-21 18:38:04 1082

原创 u-boot分析之u-boot命令实现

当我们在串口的控制台上输入一个命令,要么提示不能识别的命令,要么就会打印某些东西(执行)。这些命令是怎么实现的?使用命令的步骤: 1,输入字符串,对应某些命令名。 2,执行。显然,在程序里面是根据这些命令,找到对应的函数,然后执行相应的函数;在在u-boot不会只有一个结构体,这些命令肯定会有一个结构体,结构体中包括:名字、函数;根据输入的命令到这个结构体链中一一比较,然后执行;先看一下run_

2016-11-21 17:48:41 681

原创 u-boot源码分析

在分析u-boot源码之前,先回忆 一下以前的实验: 1,首先初始化; 2,如果我们的程序很多,需要把程序从Nand拷贝到SDRAM中去。 3,设置栈(sp);所谓设置栈,就是让SP指向某块内存,设置完之后就可以调用C函数;u-bootb也是一个单片机程序,同样也需要做上面的工作;先分析一下 cpu/arm920/start.S文件,从它入手来分析:

2016-11-21 16:22:33 581

原创 u-boot分析之Makefile结构分析

我们分析一个文件的时候,想知道它是什么结构?是怎么链接的,最好的方法就是分析它的makefile文件。之前说过u-boot配置、编译;为什么知道先配置后编译?源码中有个readme文件;先从makefile文件中分析一下配置过程; 执行make的时候,就相当执行这条命令: 我们先在Makefile文件中搜索一下 MKCONFIG看一下是什么东西? 从上可以看出,在源文件的目录下面有一个mkco

2016-11-20 23:58:13 844

原创 uboot编译之体验

在说uboot之前,先看一下PC机是怎么启动的? pc上电、bios、引导操作系统、识别C盘、运行应用程序。同样的在嵌入系统里面,启动过程:一上电的时候,bootlolder(引导linux内核)、挂接根文件系统、运行应用程序。bootlolder的最主要的目的:启动内核补丁? 所谓的补丁就是我们在原码包上做了什么修改,我们将这些修改单独列出来放到一个文件,然后发布的时候,把补丁文件给别人家即可

2016-11-20 23:33:23 1166

原创 LED实验

2440 LCD原理图如下:从图中可以看出,需要的信号有:垂直方向上的信号(vsync)、水平方向的垂直信号(hsync)、时钟(vck)、使能信号(vden)、背光信号(LED+,LED-),数据信号(vd0 - vd23)如果我们想点亮LED,首先要设置GPB0.要知道这些信号怎么联系起来,需要看2440手册上的时序图: 假设LED的分辨率为240*320,LED从左到右、从上到下呈Z 字状的

2016-11-20 22:32:32 1490

原创 系统时钟与URAT(串口)实验

系统时钟,台式机CPU可以跑:1GB 、2GB的赫兹的频率,而我们买的内存跑的频率可能只有133MB赫兹;同样的道理,对于2440的开发板的CPU可以达到400M HZ,而SDRAM的频率范围为:100M-133M HZ,而URAR的频率为 50M HZ; CPU、SDRAM、UART的频率的分别叫:FCLK、HCLK、PCLK;2440的结构是一个SOC(System on chip)的结构;整

2016-11-20 18:52:26 3538 1

原创 中断控制器

在ARM中CPU有七种工作模式:什么叫做工作模式? 每一种工作模式都有哪些东西? 每一种工作模式下面都有一些不同的寄存器、不同的权限、不同的触发条件;不同的寄存器,如图: 可以看出,不同工作模式使用的寄存器是不一样的。比如同是一条指令: mov R8 #1; 在不同的模式下会对应不同的寄存器,这样作的好处是:当从一种模式切换到另外一种模式的时候,如果那一种模式有自己独有的寄存器的话,那么原来

2016-11-20 16:54:50 3829 2

原创 Nand Flash控制器

回忆一下,一上电以后,Nand Flash的前面4K就会被拷贝到2440的片内存里面。 在前面几个程序,编译出来的程序都小于4K;如果我们编译出来的程序大于了4K,这时候Nand Flash的前面4K拷贝到2440的片内存里面,拷贝到2440里面的这4K的任务就是将更大的程序从Nand Flash里面读出来放到SDRAM里面去。地址空间:Nand Flash只有数据线,地址总线并没有跟CPU相连。

2016-11-20 11:17:07 4296

原创 内存管理单元MMU实验

MMU介绍 权限管理:当我们使用windows时,有时候会弹出地址访问错误,但这不影响整个操作系统的运行。 假设A、B程序的时序图如下: 因为A、B程序的地址空间各不相同。权限管理就使得A程序无法访问B程序的地址。如果A程序写的非常糟糕,A程序并不能破坏内核。地址映射:假如有两个hello.c文件,如图: 这两个程序的死循环保证了两个程序同时运行,且这两程序的a变量的地址一样,如图:这两个程

2016-11-20 00:01:29 1236

原创 存储管理器、SDRAM实验

对于2440的存储器来说,他的结构是这样的:存储管理器作用: 2440可以外接SDRAM、网卡,CPU怎么访问这些外设,就是通过存储管理器来访问它们的, 比如CPU想从0X3000,0000 读四个字节的地址,CPU只要执行: MOV R1 0X30000000 , ldr R0 ,[R1];这两条指令即可,存储管理器根据内部的配置信息:1,发出片选信息 2,发出bank选择信号 3

2016-11-19 21:27:40 1152

原创 GPIO实验

目标:点亮LED 怎么点亮LED?看原理图,确定LED是怎么接线的。相关原理图: 简化的原理图: 从原理图中可以看出GPF4=0,灯亮;GPF4=1,灯灭怎么设置GPF4的值呢? GPF4既然做为一个管脚,就可以做为输入管脚、也可以做为输出管脚。因此我们需要配置GPF的功能是输入还是输出还是中断(这里应该配置成输出)?配置完以后,需要设置它的值。具体怎么样设置?操作相应的寄存器,需要进一步查

2016-11-19 14:45:34 4998

原创 环境搭建及工具、概念介始 (makefile)

一、安装 1,安装ubuntu 2,安装虚拟机,然后打开虚拟机,二、安装windows下的配套开发工具。 1,源码编辑查看源码工具:source insight 如何查看uboot源代码? 在uboot源代码新建一个目录si,这个目录用于source insight临时生成的文件;然后新建一个source insight工程,加入相应的文件到目录(可以先全部加入,然后删除不需要的单板对应

2016-11-19 11:36:57 910

原创 学前班-怎么看原理图之内存类接口

类似内存接口,RAM-Like接口 地址线 数据线 2440上可以接网卡、Nor Flash,SDDRAM,这些外设都一起共用数据线与地址线;当2440访问内存的时候,一定不要让网卡、Nor Flash干扰(即互不干扰),怎么样才能做到这一点? CS(chip select):片选线,当某个芯片的CS为低电平的时候,才响应。 地址线、数据线接有众多的设备,怎么做到只访问其中一个,避免

2016-11-18 18:31:24 1632

原创 学前班-怎么看原理图之协议类接口之NAND Flash

NAND Flash原理图: 由NAND Flash的原理图可以看出,做为一个存储芯片,只有I/O引脚,并没有地址引脚,怎么传地址?遵循一定的规范,先通过LDATA把地址传出去,再传数据。具体的需要查看芯片手册。 由图可知:IO0-IO7:既可传送数据也可传送地址,也可以送传命令(是读还是写,还是擦除),怎么区分IO0-IO7传送的是数据?地址?命令? 需要通过CLE与ALE的状态来区

2016-11-18 15:17:46 5304 1

原创 学前班-怎么看原理图之协议类接口之SPI

SPI芯片引脚示例图及引脚描述: 2440: SPI与2440引脚连接简化图: 其中SPIMOST中的M表示master(主机),s表示slave,o表示output,gpio可以用于与spi芯片片选引脚相连。时钟由2440发送,访问前先输出低电平选中(片选)。数字电路就像堆积木一样,找到对应的线,将它接在一起就可以了。如果要通信的话,就需要去查看芯片手册内部的协议。同理也存在SPI芯

2016-11-18 14:11:20 1337

原创 学前班-怎么看原理图之协议类接口之I2C

I2C的原理图如图所示: 原理图可以简化成:2440的SCL外接到外部芯片的SCL,SDA外接到外部芯片的SDA I2CSCL:时钟线 I2CSDA:数据线 两条线上可以挂接多个设备,2440到底是要访问设备1,还是设备2?每一个I2C设备都有一个地址,当数据线的值等于自己的地址值,才做出回应。 I2C的停止信号如图所示: 传输数据? 注意:设备要在SCL为高电平的时候采集数据。回

2016-11-18 11:56:19 1220

原创 学前班-怎么看原理图之协议类接口之UART

2,协议类2.1 URAT在我们平时对话中应该遵循的原则:双方能够听懂对方在说什么;不能说的太快,即语速要让别人接受; 推广到通信当中, 协议类双方应该遵循的原则:双方协定信号的协议;双方满足时序要求; 如上图所示,硬件的通信是通过连接双方的(串口)引脚信号线传输数据的,为什么两个串口可以传那么复杂的数据?这就要求双方必须遵循一定的协议。下面看一下具体的原理图: 将上图简化后: 如图,24

2016-11-18 11:11:48 1780

原创 学前班-怎么看原理图之GPIO与门电路

对硬件电路图分为三类:1,GPIO与门电路(管脚类与门电路类)1.1 输入、输出引脚、上拉电阻、三极管输出引脚示例图:1.2 与门、或门、非门2,协议类2.1  URAT2.2  I2C2.3 SPI 2.4 NAND2.5  LCD3,类似内存的接口3.1 NOR ,SDARM,网卡3.2 不同位宽外的设的接线、访问过程

2016-11-18 09:24:58 4640

转载 Android 利用MediaCodec 实现硬编码 h264

本篇文章记录一下,Android调用mediacodec编码camera回掉的YUV数据为h264的方法。    由于公司需要,软编码(X264)由于手机性能的瓶颈,已不能满足要求,所以决定使用硬编码。其实硬编码最早用过MediaRecord,但是不能直接得到h264数据,得先编成MP4,再从MP4里把H264的NALU取出来,感觉太绕了,所以当时抛弃了MediaRecord,选择了x

2016-11-15 15:17:05 13966 8

转载 RTP/RTCP(一)-H264关于RTP协议的实现(包括分包算法)

H264关于RTP协议的实现2010-07-22 13:35完整的C/S架构的基于RTP/RTCP的H.264视频传输方案。此方案中,在服务器端和客户端分别进行了功能模块设计。服务器端:RTP封装模块主要是对H.264码流进行打包封装;RTCP分析模块负责产牛和发送RTCP包并分析接收到的RTCP包;QoS反馈控制模块则根据RR报文反馈信息动态的对发送速率进行调整;发送缓冲模块则设置端口发

2016-11-10 10:35:07 2538

原创 android api中文镜像网站

http://android-doc.com/

2016-11-09 17:46:43 900

转载 h.264语法结构分析

NAL Unit StreamNetwork Abstraction Layer,简称NAL。h.264把原始的yuv文件编码成码流文件,生成的码流文件就是NAL单元流(NAL unit Stream)。而NAL单元流,就是NAL单元组成的。标准的Annex B规定了NAL单元组成NAL单元流的方式,下面描述了如何将一个NAL单元打包起来,而多个NAL单元进行组合则形成了N

2016-11-03 23:15:46 1151

转载 H264编码原理以及I帧B帧P帧

前言           H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,

2016-11-03 22:58:30 1413

原创 JNI修改Native方法数组参数中数组里面的元素值

由于JNI不能直接回调Java方法,有时候我们可能会在Native方法里面的参数放上几个空的数组,让JNI往数组里面放值,Java调用完,再从数组里面取出值。Java代码如下: byte[] bytes = new byte[5]; int[] test = new int[3]; for(int i = 0;i<test.length;i++){

2016-11-02 18:49:10 2896 1

转载 x264代码剖析(七):encode()函数之x264_encoder_encode()函数

转自:http://blog.csdn.net/frd2009041510      encode()函数是x264的主干函数,主要包括x264_encoder_open()函数、x264_encoder_headers()函数、x264_encoder_encode()函数与x264_encoder_close()函数四大部分,其中x264_encoder_encode()函数是其核

2016-11-02 16:56:31 2055

原创 android adt 打印日志

最近Android需要在第三方C语言库的基础上实现音频与视频数据的解码,发现在Android studio中对C语言的支持感觉不是很好,于是采用了eclipse adt开发,在C语言中需要打印日志,步骤如下:1,在C语言的实现文件中定义日志如下:#define TAG "H264AndroidJNI"#ifdef ANDROID#include #include #def

2016-11-02 15:38:31 996

原创 编译各个架构的libx264-android脚本

#!/bin/sh############################################################### 注:# 此处默认使用 $ANDROID_NDK/platforms/android-21 版本,此# 版本只支持32位toolchain。# 如果项目中有使用到 ndk-build 工具,请在 Application.mk

2016-11-02 11:49:38 3174

嵌入式实时操作系统μCOS-II原理及应用(第2版)高清+目录

嵌入式实时操作系统μCOS-II原理及应用(第2版)高清+目录

2017-03-27

CC2530中文数据手册完全版

CC2530中文数据手册完全版

2017-03-21

Charles(mac)3.8.3破解版.zip

( Charles(mac)3.8.3破解版.zip )

2017-03-20

visual studio 串口通信代码

vs 串口通信代码,可以直接运行

2017-02-23

Android的设计与实现-卷1(带完整书签版)

Android的设计与实现-卷1(带完整书签版)

2017-01-17

韦东山二期驱动全部源码

韦东山二期驱动全部源码

2017-01-17

韦东山数码相框笔记

韦东山数码相框笔记 韦东山数码相框笔记

2017-01-17

android 读、写串口

通过android 直接读、写串口

2016-11-28

程序员接单宝典(第三版)

作者是一个在外包界干了10年的资深程序员,讲述了如何接外包项目的技巧。从接单前的准备,到上哪儿去接项目,如何接项目,如何完成项目,如何收款,以及项目实战案例,是程序员接项目致富的一部宝典。 (注:此版本为最新的第三版)

2016-11-24

linux-2.6.2源码

linux-2.6.2源代码 linux-2.6.2源代码 linux-2.6.2源代码

2016-11-22

韦东山视频u-boot源码

韦东山视频u-boot源码 韦东山视频u-boot源码 韦东山视频u-boot源码

2016-11-21

ARM体系结构与编程(高清带书签) 杜春雷

RM体系结构与编程(高清带书签) 杜春雷 ,是一本非常好的书

2016-11-20

嵌入汇编:LINUX内核完全注释

嵌入汇编:LINUX内核完全注释,非常好的一本书

2016-11-19

Java多线程编程核心技术_完整版 高清带书签目录 pdf

Java多线程编程核心技术_完整版 高清带书签目录

2016-11-16

《Java核心技术 卷1 基础知识(原书第9版)》中文版(高清+目录).pdf

《Java核心技术 卷1 基础知识(原书第9版)》中文版(高清+目录)

2016-11-16

Android源码设计模式解析与实战(高清+目录)

真金白银换来的 Android源码设计模式解析与实战

2016-11-16

Android开发艺术探索(高清+目录)

真金白银换来的Android开发艺术探索 真金白银换来的Android开发艺术探索

2016-11-16

Android项目实战-手机安全卫士(高清+目录)

Android项目实战-手机安全卫士

2016-11-16

Android群英传(高清+目录)

真金白银换来的,Android群英传(高清+目录)

2016-11-16

Android系统源代码情景分析(高清+目录)

在组织上,本书将上述内容划分为初识Android系统、Android专用驱动系统和Android应用程序框架三大篇。初识Android系统篇介绍了参考书籍、基础知识以及实验环境搭建;Android专用驱动系统篇介绍了Logger日志驱动程序、Binder进程间通信驱动程序以及Ashmem匿名共享内存驱动程序;Android应用程序框架篇从组件、进程、消息以及安装四个维度对Android应用程序的框架进行了深入的剖析。 通过上述内容及其组织,本书能使读者既能从整体上把握Android系统的层次结构,又能从细节上掌握每一个层次的要点。

2016-11-16

ios通过BLE读取蓝牙地址

ios通过BLE读取蓝牙地址

2021-12-23

MFC使用json11解析JSON

MFC使用JSON11将json,包括json字符串转对象,对象转json字符串

2021-03-11

RegisterTest.zip

里面介绍了MFC使用注册表的两种方法:一种是通过Window API自己封装成C++,另一种是直接用VC封装好的类

2021-03-11

VC MFC实现文件下载

VC MFC实现文件下载,将文件下载到内存里面

2020-12-18

QT纯源码自定义QTableWidgetw分页

自定义QTableWidgetw分页组件 为了方便移植和通用纯源码使用QTableWidgetw,不依赖于任何UI文件 具体效果:https://blog.csdn.net/PZ0605/article/details/108715079

2020-09-21

mac cmake安装包

 CMake Mac版是一款Mac平台上免费的编译工具,CMake旨在构建、测试和软件打包。CMake是用于控制软件使用简单的平台和编译器编译过程独立配置文件。CMake生成本机makefile和工作区,可以使用您所选择的编译器环境。

2020-07-20

nRF5_SDK_15.0.0_offline_doc.rar

nRF5_SDK_15.0.0离线文档。开发Nodic nRF的可以下载看一下,方便随时查阅.

2020-05-06

Charles MAC 安装包与注册方法

Charles MAC 环境下面的安装包 以及注册方法 Charles是一个超级好用的抓包工具,可以非常方便的抓取电脑、手机端的数据包

2019-12-12

Nordic BLE Mesh 文档

开发Nordic BLE Mesh必备文档,光看文档可能有点蒙,最好配合官网的代码一起看,理解更加深刻;

2019-09-30

pyqt5思维导图与笔记

pyqt5思维导图与笔记:GUI编程思维导图、各种控件的学习笔记

2019-09-21

vs2015快速开发插件.zip

vs2015快速开发插件,可以帮助我们提高工具的使用效率。

2019-07-09

VC++之MFC API手册(chm).zip

VC++之MFC API手册,详细枚举了MFC类结构、每个类中的方法、所有宏定义等

2019-07-08

自己根据源码编译的MacDown

自己根据源码编译的mac平台下面的MacDown,顶部多了一个快捷工具栏

2018-04-07

SpringMVC shiro源码

SpringMVC shiro源码 SpringMVC shiro源码 SpringMVC shiro源码

2018-03-20

iOS编程第4版和avfoundation秘籍 高清

iOS编程第4版和avfoundation秘籍 高清PDF iOS编程第4版和avfoundation秘籍 高清

2018-03-13

深入浅出MyBatis技术原理与实战(高清目录+部份源码)

深入浅出MyBatis技术原理与实战 高清目录PDF+本书部份源码

2018-01-11

最全的区块链文档

其中包含:区块链技术指南,区块链架构及应用-李赫,区块链存证-网录科技-汪波,区块链是如何实现版权保护的-朱志文,中国区块链白皮书1014,中国区块链技术和应用发展白皮书(2016),区块链原理及应用简介 - v1.1

2018-01-11

二维码生成库c语言

一个基于c语言的库,未附带文档,详细说明请看我的博客

2017-06-08

sscom5.12.1

sscom5.12.1是sscom串口工具的最新版本,USB串口误拔后大部分不再死机

2017-05-23

ApkTool+auto-sign Android反编译打包+签名(反编译工具)

参考:http://blog.csdn.net/pz0605/article/details/66969543

2017-03-27

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

TA关注的人

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