自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(169)
  • 资源 (1)
  • 收藏
  • 关注

转载 make和cmake关系区别

 转自:https://www.zhihu.com/question/36609459 1.gcc是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(括C、C++、Objective-C、Fortran、Java等等)。2.当你的程序只有一个源文件时,直接就可以用gcc命令编译它。3.但是当你的程序包含很多个...

2018-08-17 13:28:27 493

原创 批量自动生成pdf文档可跳转书签的方法

有时我们在浏览一些pdf文档的时候,发现这些文档没有对应的书签,这会使我们的阅读不太方便。自己手动一个个创建这些书签效率太低,太浪费我们宝贵时间。这里介绍一个通过使用Adobe Acrobat Pro软件的简单方法,可以快速生成pdf文档的书签,并且支持跳转功能。安装Adobe Acrobat Pro工具这是一个非常出色的pdf文档阅读,编辑工具。打开书签栏先打开一个pdf文档,然后点开左侧的书签...

2018-05-30 23:35:30 15153 2

原创 sd卡裸代码的实现

1. 前言最近学习了一下MMC相关的东西,并实现了它相关的裸代码,在这里总结一下,与大家分享。首先介绍一下MMC,SD,SDIO等之间的关系,如下图所示。MMC卡(MultiMediaCard): 是一种快闪存储器卡标准。技术基于东芝的NAND闪存技术。比早期基于Inter NOR快闪技术的记忆卡(如CF卡)体积更小。eMMC(Embedded MultiMediaCard):将NAND flas...

2018-05-16 22:14:36 1572

转载 linux 静态库的链接 undefined reference

t+0x7): undefined reference to `test'  collect2: ld returned 1 exit status     这就是最典型的undefined reference错误,因为在链接时发现找不到某个函数的实现文件,本例中test.o文件中包含了test()函数的实现,所以如果按下面这种方式链接就没事了。gcc -o main main.o test.o ...

2018-04-26 00:05:02 7091 1

转载 linux中Oops信息的调试及栈回溯—Linux人都知道,这是好东西!

=============================================================================原文地址:http://blog.micro-studios.com/?p=615#comment-1069看后感想:這点比 ldd3上讲的都仔细2012年11月29日11:24:17:有BUG_ON就不用反汇编了。。。

2017-12-19 18:15:55 559

转载 NAT介绍及iptables配置NAT的方法

NAT,网络地址转换,该技术是为了应对IPv4地址耗尽的问题而产生的。他的产生几乎使IPv4起死回生。在IPv4已经被认为行将结束历史使命之后近20年时间里,人们几乎忘了IPv4的地址空间即将耗尽这样一个事实。IPv4地址的划分在弄明白NAT的具体功能前,我们先来看一看IPv4地址的划分。IPv4协议为了路由和管理方便,43亿的地址空间被按照不同前缀长度划分为A,B,C,D

2017-11-10 10:34:21 6522

转载 Linux中Netfilter框架

什么是Netfilter?为了说明这个问题,首先看一个网络通信的基本模型:在数据的发送过程中,从上至下依次是“加头”的过程,每到达一层数据就被会加上该层的头部;与此同时,接受数据方就是个“剥头”的过程,从网卡收上包来之后,在往协议栈的上层传递过程中依次剥去每层的头部,最终到达用户那儿的就是裸数据了。那么,“栈”模式底层机制基本就是像下面这个样子:对于收到的每个数据包,都从“

2017-11-09 17:27:53 462

转载 linux下的/dev/mem设备认识和使用

最近在为了读取一个寄存器的值动心思时,突然发现,一个好用的工具”r”,源码附上:#include #include #include #include #include #include #include #if __LP64__#define strtoptr strtoull#else#define strtoptr strtoul#endifstatic in

2017-09-21 18:25:00 3432

转载 I2S波形记录

趁着示波器和软盘都还在俺这里,再测个I2S的波形1.基本概率A)I2S有四根线,不过俺们CBP的这个MP3 IIS只有三根, 没有DATA IN, R/L选择又叫LRCK或者WS的,用于选择左/右声道,R/L=0时左声道, R/L=1时为右声道。 R/L的频率就是声音数据的采样频率,如图中的8KB)声音数据DAT一般在CLK的上升沿进行采样,有些DAC也是可以调的。每个声道

2017-08-20 22:29:51 6889 1

转载 Yaffs 文件系统分析

1 Yaffs文件系统结构1.1 简介1.1.1 应用场合Yaffs(Yet Another Flash File System)文件系统是专门针对NAND闪存设计的嵌入式文件系统,目前有YAFFS和YAFFS2两个版本,两个版本的主要区别之一在于YAFFS2能够更好的支持大容量的NAND FLASH芯片。Yaffs文件系统有些类似于JFFS/JFFS2文件系统,与之不同的是JFF

2017-08-17 17:03:22 703

转载 在NAND FLASH上建立YAFFS2文件系统

经过了半个多月的努力,终于搞定nandflash的mtd驱动和上层的yaffs2文件系统。这半个多月来几乎每天都要和挫败感斗争,每天都要忍受这个方面,那个方面的bug。想想自己这半个多月来,也算看不少资料,得到不少人的帮助,总算是有点心得。鉴于国内搞yaffs2文件系统方面的资料还是很少,就把自己的心得拿出来与大家共享。不说闲话了,先介绍一些背景资料 一. 闪存我们常说的闪存其

2017-08-17 16:42:21 1165

转载 关于ubifs在断电时丢失数据的处理方法

关于ubifs在断电时丢失数据的处理方法 首先要说的是,文件系统在掉电的时候肯定是有几率丢失数据,因为断电可以在任何情况下发生,如果有数据在内存个中来不及写入,那么内存中的数据就丢失了,而且nand上的未写完的数据,可能因为文件对应的信息没有更新,造成重启后文件系统找不到那个文件,或者文件无法打开。所以,最牢靠的办法是使用UPS或者后备电池。   UBIFS具有很好的性能,这从ub

2017-07-24 14:51:15 3711

转载 以太网,IP,TCP,UDP数据包分析

以太网,IP,TCP,UDP数据包分析1、ISO开放系统有以下几层:7应用层6表示层5会话层4传输层3网络层2数据链路层

2017-07-20 15:36:37 558

转载 Apache、nginx 、lighttpd性能比较

1. web服务器简介1. lighttpd     Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的Web server环境        Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web serve

2017-06-26 14:24:36 1731

转载 Android 的 Binder 机制概念介绍

结合了以下两篇文章的介绍,对Android 的 Binder 机制概念开始有了一定的理解。分享给大家。-------------------------------------分割线---------------------------------摘要Binder是android 中一个很重要且很复杂的概念,它在系统的整体运作中发挥着极其重要的作用,不过本文并不打算从深层次分析Bind

2017-06-22 16:51:41 419

转载 简单明了,彻底地理解Binder

你是不是看过很多Binder文章但是还是对Binder没有一个深刻理解?不是那些文章讲得不够好,主要是存在两种情况,一种是讲的深,全C代码~,对我这种专做Java的人来说没有心情往下看;另一种是只讲framework层,Binder驱动并没有具体提,导致我们会用Binder,也大致能说的出一些原理,可并没有一个完整的深刻认知。那么接下来让我们一起学习Binder吧,相信接下来的内容会让你有一定的收

2017-06-22 15:44:19 518

转载 NandFlash 坏块

1.为什么会出现坏块 由于NAND Flash的工艺不能保证NAND的Memory Array在其生命周期中保持性能的可靠,因此,在NAND的生产中及使用过程中会产生坏块。坏块的特性是:当编程/擦除这个块时,不能将某些位拉高,这 会造成Page Program和Block Erase操作时的错误,相应地反映到Status Register的相应位。2.坏块的分类 总体上,坏块可

2017-05-03 17:37:18 742

原创 linux中在/dev/下手动创建设备节点

linux中在/dev/下手动创建设备节点/dev/目录下有许多设备节点文件,比如u盘的文件/dev/sda,mmc卡的文件/dev/mmcblk0,这些文件通常是由udev或mdev程序检测到uevent事件后自动创建的。我们也可以通过mknod命令手动创建。下面mmc卡为例,介绍如何创建其设备节点文件。1. mknod命令命令的格式是:mknod 设备名 设备类型(

2017-03-25 15:36:00 25067 1

转载 "undefined reference to" 问题解决方法

最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1. 链接时缺失了相关目标文件(.o)测试代码

2017-03-23 17:29:40 4039

转载 Linux设备模型(8)_platform设备

1. 前言在Linux设备模型的抽象中,存在着一类称作“Platform Device”的设备,内核是这样描述它们的(Documentation/driver-model/platform.txt):Platform devices are devices that typically appear as autonomous entities in the system. T

2017-03-23 13:19:54 315

转载 Linux加载DTS设备节点的过程(以高通8974平台为例)

DTS是Device Tree Source的缩写,用来描述设备的硬件细节。在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如板上的platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的pla

2017-03-08 08:54:16 455

转载 Linux Suspend过程

阅读目录3.2.1 suspend_console3.2.2 dpm_suspend_start  (PMSG_SUSPEND)3.2.3 suspend_enter 3.2.4 dpm_resume_end  (PMSG_RESUME)3.2.5 resume_console转自:http://blog.csdn.net/chen198746/article/deta

2017-03-01 15:24:48 601

转载 Linux电源管理-wakeup events framework

前言通常新机制/事物的出现往往是解决某些问题的,同样wakeup events framework机制也不例外。先带大家了解下wakeup events framework出现的背景,然后在了解其内部的实现机制。Linux系统中的电源管理一般是冷睡眠,而Android系统却将linux系统中的睡眠作为通常待机使用,显然Linux中的电源管理不符合Android系统。Android说

2017-03-01 11:35:30 882

转载 Android 4.4 Kitkat 使能 USB adb 功能

背景在 Linux-3.8 以后,Android 的内核分支,便去掉了 f_adb,改使用 USB function FS,在用户空间实现 USB adb 功能。这篇文章根据原作者的 Google+ 文章,在 Atmel sama5 开发板上做了测试,将步骤记录如下,供需要使用的读者参考,你也可以查看作者原文:https://plus.google.com/11152478043580

2017-02-15 13:45:14 824

转载 Linux SCSI 子系统剖析

分层 SCSI 架构简介Small Computer Systems Interface (SCSI) 是一组标准集,它定义了与大量设备(主要是与存储相关的设备)通信所需的接口和协议。 Linux® 提供了一种 SCSI 子系统,用于与这些设备通信。Linux 是分层架构的一个很好的例子,它将高层的驱动器(比如磁盘驱动器或光驱)连接到物理接口,比如 Fibre Channe

2017-02-12 18:12:22 963

转载 openwrt overlayfs 实现脚本

openwrt的overlayfs 通过/etc/preinit调用 /sbin/mount_root来完成rootfs的切换挂载和overlay所以研究下openwrt工程中mount_root的实现。源码目录 trunk/build_dir/target-arm_cortex-a9+vfpv3_uClibc-0.9.33.2_eabi/fstools-2014-06-22/mount_

2017-02-08 19:18:54 5749

转载 五个 Linux 下用户空间的调试工具

根据定义,调试工具是那些那些使我们能够监测、控制和纠正其他程序的程序。我们为什么应该用调试工具呢? 在有些情况下,运行一些程序的时候我们会被卡住,我们需要明白究竟发生了什么。 例如,我们正在运行应用程序,它产生了一些错误消息。要修复这些错误,我们应该先找出为什么产生这些错误的消息和这些错误消息从哪里产生的。 一个应用程序可能突然挂起,我们必须了解其他什么进程同时在运行。我们可能还必须弄清楚某个

2017-02-05 23:34:11 496

转载 windows无法访问 请检查名称的拼写… 错误代码:0x80004005和0x80070035和 0x800704cf

昨天下午到今天早上真是日了够了,简简单单的要访问一个局域网共享文件夹出幺蛾子,别人的电脑没事,就我的电脑有事,大家都是win7系统,废话少说,上解决思路。首先在地址栏中或者再开始中输入:\\172.XX.XX.X0 结果给我弹出一个对话框上面写着:windows无法访问 请检查名称的拼写… 点开隐藏错误信息后,显示错误代码:0x80004005。接下来还会出现 0x80070035  &  0

2017-02-05 22:05:38 20229

转载 错误代码:0x800704cf 不能访问网络位置(win7 访问不了局域网电脑)

昨天,电脑突然不能访问局域网电脑,弹出对话框如下:  开始以为是网卡的问题,重装网卡驱动,问题依旧,网上告诉最简单的方式是重装电脑,我去,动不动就重装电脑,这不好吧,在用 sfc修复命令、windows修复等都无能为力的情况下,我找到了一篇博文,用此法解决了我遇到的问题,为日后或其他朋友遇到同样的问题方便找到解决方案,特将博文内容copy如下, 出现“错误代码:0x

2017-02-05 16:51:54 9835

转载 rootfs的挂载过程

一:前言前段时间在编译kernel的时候发现rootfs挂载不上。相同的root选项设置旧版的image却可以。为了彻底解决这个问题。研究了一下rootfs的挂载过程。特总结如下,希望能给这部份知识点比较迷茫的朋友一点帮助。二:rootfs的种类总的来说,rootfs分为两种:虚拟rootfs和真实rootfs.现在kernel的发展趋势是将更多的功能放到用户空间完成。以保持内核的

2017-02-04 22:43:54 1137

转载 lk启动流程详细分析

这篇文章是lk启动流程分析(以高通为例),将会详细介绍下面的内容:1).正常开机引导流程2).recovery引导流程3).fastboot引导流程4).ffbm引导流程5).lk向kernel传参 start---------------------------------------- 在bootable/bootload

2017-02-04 13:40:04 847

转载 Android 系统开发之-----bootloader (lk) 分析

什么是LKlk 就是 Little Kernel ,android lk 也是appsboot 是Qualcomm平台 arm11 端的 bootloader。它是类似OS一样的小操作系统。lk源码位置在android 系统下:boottable/bootloader/lk 目录+app // 应用相关+arch // arm 体系

2017-02-04 13:38:50 1340

转载 MSM8909+Android5.1.1 SPI驱动开发(PSAM部分)

1. PSAM部分的硬件设计 图1CS 片选信号SCK 时钟信号MISO 主设备的数据输入、从设备的数据输出脚MOSI 主设备的数据输出、从设备的数据输入脚 2. PSAM部分软件设计 图2 (1) PSAM应用这部分只需要调用API函数即可。 (2) PSAM

2017-01-25 16:45:16 5164

原创 开发板linux中运行简单hello world应用程序的printf无输出的原因

开发板linux中运行简单hello world应用程序的printf无输出的原因最近在arm linux的开发板上运行一个如下的最简单hello world应用程序,发现程序执行完后,printf的打印无输出。而且没有也没提示任何错误。#include int main(void){ printf("hello world\n"); return 0;}我想确认程序到底

2017-01-21 20:25:55 2910

转载 printf的归宿-数据打印到哪儿了

近日在一次测试Linux内核路由查找算法的过程中,发现一个printf语句竟然能将性能降低2/3。当然,使用“竟然”一词并不意味着这个问题是第一次发现,我的想法是,把它记录下来,让没有经验的同学对printf知其所以然,同时导出我对“性能攸关”的这类算法中记录日志的一个观点。声明我不会把大段的源代码贴在文章中,而只是希望能通过阐述原理把我的意思表达清楚。诚然,作为程序员没有代码好像一切都会

2017-01-20 11:09:32 913

转载 在外网用SSH访问内网LINUX服务器

路由器分配的是动态公网IP,且有路由器登录管理权限。如何在外网用SSH访问内网LINUX服务器?下面介绍如何利用开放的nat123端口映射网络辅助软件实现。实现此的技术原理:在内网通过域名绑定服务器,外网SSH访问连接时,通过域名的访问,实现访问内网LINUX。具体的实现

2017-01-17 15:16:37 17764 2

转载 详解coredump

一,什么是coredump我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件。通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工

2017-01-16 11:24:13 544

转载 hostapd wpa_supplicant madwifi详细分析(一)——hostapd是干嘛的

最近在学习无线,看了许多脚本和代码,虽然在整体上对这个模块实现的大致流程有了一定的掌握,但是对一些细节还不是很清楚,所以用这种方式来记录学习过程中的一些总结和体会,有理解错误或者描述不当的地方,还望有识者指正。看代码的时候主要借鉴的是 hostapd的radius/eap server代码分析系列和源代码,里面讲的很具体,很清楚。hostapd是干嘛用的?hostapd能够使得

2017-01-11 18:36:47 1353

转载 Linux时间子系统之三:时间的维护者:timekeeper

本系列文章的前两节讨论了用于计时的时钟源:clocksource,以及内核内部时间的一些表示方法,但是对于真实的用户来说,我们感知的是真实世界的真实时间,也就是所谓的墙上时间,clocksource只能提供一个按给定频率不停递增的周期计数,如何把它和真实的墙上时间相关联?本节的内容正是要讨论这一点。1. 时间的种类内核管理着多种时间,它们分别是:RTC时间wall time:墙

2017-01-11 18:33:57 380

转载 获得系统的uptime

有几种方法:1. 执行命令 uptime2. 使用clock_gettime 函数和 sysinfo函数#include #include #include #include void main(void) { struct timespec tp; clock_gettime(CLOCK_MONOTONIC, &tp);

2017-01-11 18:31:23 849

s3c6410_sdcard_bare_code

此代码基于s3c6410平台的sd/mmc host控制器,实现了通过fatinfo、fatls、fatload命令获取sd卡信息、文件列表、读取卡中文件里的内容的功能

2018-05-16

空空如也

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

TA关注的人

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