- 博客(80)
- 资源 (7)
- 收藏
- 关注
原创 NAND FLASH学习笔记之MTD下nand flash驱动(七)---我的调试
七、如何调试新的NAND FLASH芯片调试新的NAND FLASH芯片步骤如下:一、驱动程序的修改,例如:jz4780_nand.c中的修改(1)加入NAND flash 名称和 Nand flash 设备id 在 ****************************************************
2014-02-11 15:20:12 5749
原创 NAND FLASH学习笔记之MTD下nand flash驱动(六)
六、驱动层之Flash读操作MTD对NAND芯片的读写 主要分三部分: A、struct mtd_info中的读写函数,如read,write_oob等,这是MTD原始设备层与FLASH硬件层之间的接口; B、struct nand_ecc_ctrl中的读写函数,如read_page_raw,write_page等,主要用来做一些与ecc有关的操作; C、struct nand_c
2014-02-11 15:19:28 5757
原创 NAND FLASH学习笔记之MTD下nand flash驱动(五)
驱动中probe函数的分析其中探测函数代码执行流程为: 在probe函数中主要是完成了NAND芯片级的初始化,主要有以下几个作用: -分配nand_chip内存,根据目标板及NAND控制器初始化nand_chip中成员函数(若未初始化则使用nand_base.c中的默认函数),将mtd_info中的priv指向nand_chip(或板相关私有结构),设置e
2014-02-11 15:16:23 5575
原创 NAND FLASH学习笔记之MTD下nand flash驱动(四)
三、MTD创建设备节点MTD子系统下如何创建设备节点?第一步:MTD设备层。(MTD子系统) register_chrdev注册字符型mtd设备,并添加该设备到内核,主设备号为90。但是此时还未在/dev下形成mtd设备节点。第二步:MTD原始设备层。(MTD子系统) class_register注册一个mtd类mtd_class,后面再注册mtd设备时会用到该class。
2014-02-11 15:09:33 3866
原创 NAND FLASH学习笔记之MTD下nand flash驱动(三)
三、MTD创建设备节点MTD子系统下如何创建设备节点?第一步:MTD设备层。(MTD子系统) register_chrdev注册字符型mtd设备,并添加该设备到内核,主设备号为90。但是此时还未在/dev下形成mtd设备节点。第二步:MTD原始设备层。(MTD子系统) class_register注册一个mtd类mtd_class,后面再注册mtd设备时
2014-02-10 15:20:36 5728
原创 NAND FLASH学习笔记之MTD下nand flash驱动(二)
在这里补充这一片是为了更好的理解上一篇,补充的内容包括:MTD下NAND的布局中几个重要文件的诠释和MTD涉及的几个重要的结构体(更好的理解接口)一、内核中的NAND代码布局内核中的NAND代码布局在Linux 内核中,MTD 源代码放在/driver/mtd 目录中,该目录中包含chips 、devices 、maps 、nand 、onenand 和ubi
2014-02-10 15:19:59 5716
原创 NAND FLASH学习笔记之MTD下nand flash驱动(一)
有了前面的基础,我们就可以研究MTD下的nand驱动了,我这里用的是jz4780grus开发板,我将以下面几个部分做一个介绍,如果有没有涉及的或者需要详细介绍的我还会再开几篇博客进行介绍,敬请参阅!!一、MTD概述二、MTD系统层次三、MTD设备节点的创建四、MTD子系统的注册五、NAND FLASH驱动层六、MTD
2014-02-08 17:47:58 8547
原创 NAND FLASH学习笔记之nand flash基础(三)
(4)nand flash的操作方法1、命令字NAND Flash的读取和烧录以(page)页为基础,擦除以块为单位。那么,在NANDFlash上有三种基本的操作:读取一个页, 烧录一个页和擦除一个块,这三个基本操作有各自的命令序列。实际上,大多数NAND Flash除提供了这三个基本操作外,还提供了很多其他的操作及操作命令序列,如:MT29F32G08CBACA就提供
2014-02-08 15:58:45 9598 2
原创 NAND FLASH学习笔记之nand flash基础(二)
4. 地址格式:地址分为:块地址、页地址、列地址,其中块地址和页地址又称为行地址CA[0:12]:列地址,用来选择页内偏移,由于页的大小(含OOB区)为(4k+224)byte,所以需要13位来表示PA[0:7]:页地址,用来选择一个块中的一页,由于块的大小为256个页,所以,需要8位来表示BA[8:19]:块地址,用来选择一个LUN中的块,由于一个LUN中的块数为4096
2014-02-08 14:29:35 6484 3
原创 NAND FLASH学习笔记之nand flash基础(一)
一、 Nand Flash的几个重要的基本特性:1. NandFlash的IO接口 对于Norflash、dram 之类的存储设备,CPU 可以直接通过地址总线对其进行访问,而 Nand Flash 没有这类的总线,只有 IO 接口,只能通过复用的 IO接口发送命令和地址,从而实现对 Nand Flash 内部数据进行访问。(端口的复用)2
2014-02-08 14:18:24 22809 8
原创 电源管理之android内核suspend to disk的实现(九)--tuxonice实现方案
完成在标准内核基础上的android系统的suspend to disk后,又采取了tuxonice补丁的方式进行比较,发现由于压缩的缘故,速度有所提高10s左右。该范方案的实现我是根据我的一位离职的同事写学习笔记进行测试,实验证明是可行的,以下部分程序的讲解我也直接进行了引用。要是大家遇到啥问题,可以一起讨论。。。。。概要:1.目标2.概要3.操作流程4.
2014-01-23 18:08:43 6889 15
原创 电源管理之android内核suspend to disk的实现(八)--suspend to disk调试数据统计与总结
suspend to disk数据统计该测试基于jz4780grus开发板。时间统计: 1)开机(只有地图运行)内核启动的时间统计 准备时间 搬移镜像 恢复现场 搬移速度 镜像大小 总计 第一次 4.43s 25.28s 3.90s 15.32M/s 387348K 33.70s 第
2014-01-23 09:12:00 3782 6
原创 电源管理之android内核suspend to disk的实现(七)--方案的选择与问题解决
一、实现android系统hibernation的方案分析:实现方案分析: 方案一: linux标准内核实现 android标准内核的代码是由linux内核演变而来,只要解决android系统独特的wakelock问题,并提供交换分区的支持,就能实现android系统的hibernation。 方案二: tuxonice内核补丁实现 t
2014-01-23 08:59:29 4084
原创 电源管理之android内核suspend to disk的实现(六)--STD执行流程图
四、android系统休眠(hibernation)执行流程图
2014-01-22 13:33:32 3785 4
原创 电源管理之android内核suspend to disk的实现(五)--STR执行流程图
三、Android 休眠(suspend to RAM)程序自行流程图(自己手工绘制,有错误请指正)
2014-01-22 11:43:28 4260 5
原创 电源管理之android内核suspend to disk的实现(四)
3、Android的suspend执行流程 函数的流程如下所示: 应用程序通过对/sys/power/state的写入操作可以使系统进行休眠的状态,会调用/kernel/power/main.c中的state_store函数。pm_states包括:PM_SUSPEND_ON,PM_SUSPEND_STANDBY,PM_SUSPEND_MEM满足的状态。 1)当状态位
2014-01-22 09:14:04 3563
原创 电源管理之android内核suspend to disk的实现(二)
4、Linux Suspend 的流程 相关的文件下面是文件的路径:android4.0/kernel/kernel/power/ 接下来让我们详细的看一下Linux是怎么休眠/唤醒的: (1)用户对于/sys/power/state的读写会调用到main.c中的state_store(),用户可以写入constchar * const pm_state[] 中定义的
2014-01-22 08:56:09 4504
原创 电源管理之android内核suspend to disk的实现(一)
最近刚刚做了一份关于电源管理中android系统suspend to disk的实现研究学习报告,最近比较清闲就简单做了整理。我是基于北京君正jz4780grus开发板做的探究,我将要在这几天按照下面做一个学习报告,其内容如下所示:一、Linux休眠/唤醒简介1、介绍Linux系统的Suspend的四种状态2、Linux系统的休眠的步骤3、用户空间接口4、Linux S
2014-01-21 16:57:33 6562 2
原创 调整Linux内核启动中的驱动初始化顺序
在我做的一些项目中有一些特别的要求如车载GPRS中camera驱动前移,电源管理hibernation中nand分区驱动的前移,resume函数的后移等,不得不研究驱动顺序的调整,下面我将对基本的原理做解释,随后将会在说说我在在实践中具体的解决方案,最后我会介绍下它的利弊与解决方案。 我使用的是北京君正集成电路股份公司的4780grus开发板,以及android4.1的内核源码。
2014-01-21 14:37:49 4169 2
原创 802.11的隐藏节点和RTS/CTS机制(二)
目录:1、无线传输相关范围2、隐藏节点3、暴露节点4、RTS/CTS机制 4、RTS/CTS机制 上面的暴露节点和隐藏节点问题是无线局域网802.11特有的,802.3是没有的,所以对于802.11有一种特殊的解决隐藏节点问题的机制,也就是RTS和CTS。通信协议中的RTS/CTS协议:即请求发送/允许发送协议,相当于一种握手协议,主要用来解决"隐藏终端"...
2018-11-22 16:15:26 5850 2
原创 802.11的隐藏节点和RTS/CTS机制(一)
目录:1、无线传输相关范围2、隐藏节点3、暴露节点4、RTS/CTS机制 802.11协议适用于无线局域网,这一点和802.3有着本质性的不同。1、无线传输相关的范围 无线传输有三个非常重要的范围:传输范围,侦听范围和干扰范围。 1.传输范围:传输范围(TX_range)指可以成功接收帧的通信...
2018-11-22 16:08:56 8939
原创 WLAN射频和信道
WLAN射频和信道概述WLAN使用的射频频率范围是2.4GHz频段(2.4GHZ-2.4835GHz)和5GHz频段(5.150GHz-5.350GHz和5.725GHz-5.850GHZ),分别属于特高频(300MHz-3GHz)和超高频(3GHz-5GHZ)。WLAN使用的2.4GHz频段和5GHz频段属于ISM频段。WLAN信道列表是法律所规定的IEEE 802.11(或称为Wi...
2018-10-09 10:23:13 6471
原创 Install OpenCV2.4.9 in Ubuntu12.04 LTS
Install OpenCV2.4.9 in Ubuntu12.04 LTS由于检测技术期末考试的需要,我需要在Ubuntu12.04系统上安装OpenCV2.4.9,用来进行图片处理,在网上看了好多安装的历程和经验,捣鼓了两天了,直到最后也没有一个让我满意的安装历程,安装的结果也不太满意。直到经过多次尝试,总算总结出一套成功安装的步骤,在这里与大家进行分享。期间想过要降低版本,完
2015-05-10 13:28:38 1532
原创 linux系统中misc子系统
misc子系统转载请注明出处:http://blog.csdn.net/wang_zheng_kai光源器件与系统研究所个人学习总结1、在linux系统中什么是misc? 在研究摄像头驱动的时候,发现摄像头驱动的路径为:/driver/misc/jz_cim/文件目录下,经过查找结果如下: 杂项设备(misc device)
2015-01-14 21:11:46 4114 7
原创 linux上用c实现算术编码(三)--算术编码理论讲解
一、算术编码定义它是一种非分组编码算法。它是从全序列出发,采用递推形式的连续编码。它不是将单个的信源符号映射成一个码字,而是将整个输入序列的符号依据它们的概率映射为实数轴上区间[0 1)内的一个小区间,再在该小区间内选择一个代表性的二进制小数,作为实际的编码输出。算术编码不同于霍夫曼码,它是非分组(非块)码。它从全序列出发,考虑符号之间的关系来进行编码。算术编码
2015-01-14 20:59:16 2688 4
原创 linux上用c实现算术编码(二)--具体代码
转载注明出处:http://blog.csdn.net/wang_zheng_kai让学生用开发工具,练习学到的数据压缩编码本文包括两部分:linux上用c实现算术编码(一)--具体操作linux上用c实现算术编码(二)--具体代码/************************************Arithmetic coding
2015-01-13 16:20:34 1712 3
原创 linux上用c实现算术编码(一)--具体操作
转载注明出处:http://blog.csdn.net/wang_zheng_kai让学生用开发工具,练习学到的数据压缩编码本文包括两部分:linux上用c实现算术编码(一)--具体操作linux上用c实现算术编码(二)--具体代码ubuntu14.04上用C语言实现算术编码(固定) 1、打开ubuntu14.04系统,界面如
2015-01-13 16:19:28 1687 2
原创 功耗调试之如何调试功耗(二)
功耗调试之如何调试功耗(二)导航制导与控制实验室2015年01月01日本文就开始讨论功耗的调试步骤和方法。本文主要的内容如下:一、明确调试的目标二、明确调试的内容三、参照电路框图找出我们需要检测的输出四、找出或引出需测试的输出五、功耗测试的步骤流程图五、功耗测试的步骤流程图有了前面的铺垫,我们大致了解了功耗测试的步骤:就是
2014-12-22 14:38:44 1894 2
原创 功耗调试之如何调试功耗(一)
功耗调试之如何调试功耗(一)导航制导与控制实验室 2015年01月01日本文就开始讨论功耗的调试步骤和方法。一、明确调试的目标明确调试的目标,即在满足当前的需求情况下,尽最大的可能去降低各种状态下、各路模块的功耗值。一般情况下,功耗越低要求也就越严格。例如:某设备的电池为300mAh,假设一种情境下休眠功耗电池端为0.8mA,另一种情境下功耗电池端为1mA,显然仅仅
2014-12-21 20:02:05 3636
原创 功耗调试之调试前准备
功耗调试之调试前准备一、基本的概念什么是功耗测试?功耗测试是指通过使用各种工具(主要是示波器、电流表、电压表)对设备的各种功耗状态下的各个模块的电流进行测量,再对测量结果进行分析,找出不合理的模块,修改硬件或者软件后再测量,以尽可能的降低整板的功耗,延长电池的使用时长。为什么要使用测量电流的方式来代表功耗情况呢?电功为
2014-12-17 22:20:12 1948 2
原创 Lniux常见的压缩/解压命令小结
Lniux常见的压缩/解压命令小结 转载请注明: 导航制导与控制实验室 2014年12月16日 在linux开发过程中,经常会遇资料的打包/解包、压缩/解压;本文我将在linux系统中常用的命令进行了整理和分类,内容如下: 1、tar 命令,主要是对Dir先归档,在借助其他命令处理归档文件; 2、单个文件的压缩命令,对单个文件进行处理的命令,有时也可以借助tar命令对目录先打包,再进行压缩; 3、zip、rar压缩命令,即可对单个文件也可对目录进行压缩处理,该方法利于不同操作系统的处理;
2014-12-16 21:27:30 1399
原创 将调试串口作为普通串口使用(仅限于调试、测试)
出现的问题:um220模块需要串口,然开发板无空余端口的使用。问题分析:mensa开发板共4个UART,其功能如下:UART0:为蓝牙预留的端口,若想使用,需要将wifi模块摘除;UART1、UART2:管脚的复用,作为网口的管脚,使用需要摘除DM9000;UART3:作为调试串口,可以作为普通端口使用;解决方案:Bootloader和内核中对串口的初始化可以看成两个独立的过程,鉴于调试我们没有关闭bootloader的调试串口功能。修改kernel配置和系统配置,将调试串口作为普通串口使用
2014-12-15 09:52:12 7112 5
原创 修改linux内核kernel开机logo(小企鹅)
修改linux内核kernel的开机图片(原为小企鹅图片)。我学习成长的一个学习笔记,谢谢!本文主要是介绍三部分内容:1》如何制作linux内核所需要的开机图片(ppm格式);2》修改开机图片的两种方法;3》调试过程中的问题与技巧;
2014-12-10 21:25:05 10672 3
原创 从串口设置、读取、并分析um220模块的数据
linux系统从串口中读um220中的数据的一个小测试程序,这篇文章主要介绍如何从设置、读取BD+gps模块(um220),实际上主要是对串口(UART)的操作。
2014-09-28 15:39:21 7220 4
原创 用shell脚本实现linux系统上wifi模式(STA和soft AP)的转换
功能:在linux系统上实现wifi STA与AP功能的转换 实现成果:1、添加wifi密码账户add_wifi_account; 2、wifi两种模式启动的脚本wifi_start; 3、帮助信息README_WIFI_START;
2014-07-19 14:56:36 9107 4
原创 北京君正集成电路的Newton平台--穿戴式
•可穿戴式设备:智能手表等• 医疗电子设备:监测心电图、心率等的可穿戴式医疗设备 • 智能家居:无线音频、智能网关、家居控制中心等• 消费类电子:高音质播放器、游戏机、指纹/人脸考勤机、E-Ink屏类产品等 2014年4月28日 Newton资料下载更新 Newton平台demo镜像、工具、文档和源码最近发布更新,请到[DOWNLOAD]页面下载。
2014-05-08 17:20:52 6266 6
原创 bluetooth开发(六)------蓝牙的功能测试(二)
newton板已经发布了,下面接着整理我调试的一个小小的方面,蓝牙的功能实现以及测试:转载请注明出处:http://blog.csdn.net/wang_zheng_kai下面是我写的newton开发板中bluetooth阅读文档README的一部分。
2014-05-08 17:01:05 5173
原创 bluetooth开发(五)------蓝牙的功能测试(一)
newton板已经发布了,下面接着整理我调试的一个小小的方面,蓝牙的功能实现以及测试:转载请注明出处:http://blog.csdn.net/wang_zheng_kai3.2. Bluetooth Function Test141 142 1)View the Bluetooth MAC address and device names:hcitool dev143
2014-05-08 16:50:17 6648 5
原创 bluetooth开发(四)------Bluez运行环境的创建与蓝牙的初始化
转载请注明:http://blog.csdn.net/wang_zheng_kaibluez已经移植完成,下一步就是如何创建bluez运行的系统环境。其实整个过程分为两个部分:1、准备dbus 和bluetoothd 所需要的库文件,一般这些库都属于公共库,名字就不列举了,一般运行不成功就是缺少这些库,这部分自己解决吧。2、晒一晒我的初始化脚本文件:After
2014-04-15 10:34:57 9816
JPEG图像压缩算法
2014-12-15
bluez-4.95以及依赖和测试工具包源码
2014-04-08
gsoap实现discover代码
2014-03-07
soapdoc2(gSOAP 2.7.8 User Guide)
2014-02-28
常用摄像头的规格书(有android驱动)
2014-02-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人