自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

北落师门'的专栏

嵌入式Linux+ARM之探索

  • 博客(30)
  • 资源 (6)
  • 收藏
  • 关注

转载 xargs——维基百科

xargs是一条Unix和类Unix操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。例如,下面的命令:rm `find /path -type f`如果path目录下文件过多就会因为“参数列表过长”而报错无法执行。但改用xargs以后,问题即获解决。find /path -type f -print0 |

2012-07-31 09:42:53 1877

转载 gcc -I -L -l区别

gcc -I -L -l区别我们用gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录:例:gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld上面这句表示在编译hello.c时

2012-07-28 12:35:47 835

转载 Linux下静态库与动态库的使用

Linux下静态库与动态库的使用Linux下有静态链接库和动态链接库两种,静态链接库的后缀名是.a,动态链接库的后缀名是.so,下面详细介绍:静态链接库:静态链接库是指程序在编译链接的过程中就把依赖的库插入到程序中,这样程序的运行就不需要这些库的支持,但缺点是文件变大,下面以一个例子介绍如何制作静态链接库:有add.c和mul.c两个文件,分别实

2012-07-28 12:34:40 965

转载 objdump命令的使用

objdump命令的使用objdump命令是Linux下的反汇编目标文件或者可执行文件的命令,它还有其他作用,下面以ELF格式可执行文件test为例详细介绍:objdump -f test显示test的文件头信息objdump -d test反汇编test中的需要执行指令的那些sectionobjdump -D tes

2012-07-28 12:33:02 96548 3

转载 readelf命令的使用

readelf命令的使用readelf命令是Linux下的分析ELF文件的命令,这个命令在分析ELF文件格式时非常有用,下面以ELF格式可执行文件test为例详细介绍:readelf -v显示版本readelf -h显示帮助readelf -a test显示test的全部信息readelf -h test显

2012-07-28 12:31:41 1813

转载 硬断点和软断点的区别

硬断点--break point软断点--assert简单的解释:硬件断点:硬断点需要硬件寄存器提供支持,断点的数目受Embedded ICE中的Watchpoint数目的限制,但是可以在任何地方设置断点。软件断点:软件断点通过在运行起来的程序中设置特征值实现,其数目不受限制,但是一般情况下软件断点只能在可写的存储器的地址中设置(比如:RAM),而不能在ROM(比如:Flash)中

2012-07-27 10:30:51 1647

转载 MSM平台上的AMSS

AMSS的source实际上是QC BREW(Binary Runtime Environment For Wireless)平台的的底层部分,去掉了为应用程序提供接口的AEE(application execution environment)部分,高通在Dual Proc芯片上的其他平台基本上都是采用的这样的架构。所以如果要了解这套source的话有必要对BREW作一个基本的了解,不需要了解它

2012-07-25 11:45:57 1021

转载 sizeof的用法(附strlen函数)

一、由几个例子说开去。第一个例子: char* ss = "0123456789";sizeof(ss) 结果 4 ===》ss是指向字符串常量的字符指针sizeof(*ss) 结果 1 ===》*ss是第一个字符char ss[] = "0123456789";sizeof(ss) 结果 11 ===》ss是数组,计算到/0位置,因此是10+1sizeof(*

2012-07-25 10:39:13 637

转载 堆和栈的区别

一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。    2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结构中的堆是两

2012-07-25 10:37:25 396

转载 linux NAND驱动之六:NAND驱动的probe流程

由前面的说明可知,我们在要对NAND 芯片进行实际操作前已经为struct mtd_info 、struct mtd_partition 和struct nand_chip 这三个结构体分配好了内存,接下来就要为它们做一些初始化工作。 其中,我们需要为struct mtd_info 所做的初始化工作并不多,因为MTD Core 会在稍后为它做很多初始化工作(这些工作在nand_scan_tail这

2012-07-24 16:19:29 675

转载 linux NAND驱动之五:NAND驱动中probe和nand_chip结构

在基于MTD 的NAND driver 的probe 函数中,主要可以分为两部分内容,其一是与很多外设driver 类似的一些工作,如申请地址,中断,DMA 等资源,kzalloc 及初始化一些结构体,分配DMA 用的内存等等;其二就是与MTD 相关的一些特定的工作,在这里我们将只描述第二部分内容。(1)probe 函数中与MTD 相关的结构体      在probe 函数中,我们需要为三

2012-07-24 16:18:31 846

转载 linux NAND驱动之四:6410上的NAND读写流程

MTD对NAND芯片的读写主要分三部分:                       A、struct mtd_info中的读写函数,如read,write_oob等,这是MTD原始设备层与FLASH硬件层之间的接口;     B、struct nand_ecc_ctrl中的读写函数,如read_page_raw,write_page等,主要用来做一些与ecc有关的操作;

2012-07-24 16:16:35 927

转载 linux NAND驱动之三:6410平台上的NAND驱动加载

1,platform_driver 的定义和注册       在s3c_nand.c中,static struct platform_driver s3c6410_nand_driver = {                .probe  = s3c6410_nand_probe,                .remove  = s3c_nand_remove,

2012-07-24 16:14:49 515

转载 linux NAND驱动之二:NAND存储原理

在我们开始NAND 驱动编写之前,至少应该知道:数据在NAND 中是怎样存储的,以及以怎样的方式从NAND 中读写数据的。                              1,NAND 的存储结构和操作方式       这方面的资料可以从任意一种NAND 的datasheet 中得到,而且事实上,大多数的NAND datasheet 都大同小异,所不同的大概只是该NAND 芯

2012-07-24 16:13:53 851

转载 linux NAND驱动之一:内核中的NAND代码布局

在Linux 内核中,MTD 源代码放在/driver/mtd 目录中,该目录中包含chips 、devices 、maps 、nand 、onenand 和ubi 六个子目录。其中只有nand 和onenand 目录中的代码才与NAND 驱动相关,不过nand 目录中的代码比较通用,而onenand 目录中的代码相对于nand 中的代码而言则简化了很多,它是针对三星公司开发的另一类Flash芯片

2012-07-24 16:12:15 521

转载 如何编写linux下nand flash驱动

转:http://www.cnblogs.com/shenhaocn/archive/2011/03/10/1980310.html1. 硬件特性:【Flash的硬件实现机制】Flash全名叫做Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),与此相对应的是易失性存储设备(Volatile Memory Device)。关于什么是非

2012-07-24 16:02:54 1219

转载 个人心得:wince学习路线

个人心得:wince学习路线与桌面操作系统和服务器操作系统下的软件开发不同,为嵌入式操作系统开发软件可不只是写写应用程序那么简单。我们常常要深入到内核,甚至要深入到硬件。根据不同的开发层面,我们把Windows CE 下的嵌入式软件开发者分为下面三类:第一类我们称之为应用程序开发者。此类开发人员与传统的通用操作系统下的应用开发人员比较相似。他们通常是利用操作系统提供的API(Applica

2012-07-11 10:28:09 1044

转载 Android高通平台处理器间通讯驱动

高通平台AP与CP直接通信由Share Memory负责,这是一块两端可以同时操作的内存区域。由于高通平台Modem占主导作用,在Application Processor启动初始化时,从Share Memory区读取已经由Modem predeclared的一些数据。Share memory根据功能,分为静态+动态部分,每个部分又分为数个小区,每个区的大小不一,与本区实现的功能相关。Mo

2012-07-07 11:16:02 3417

转载 C语言的内存分配

文章一、C语言的内存分配模型1、程序代码区:存放函数体的二进制代码。  2、全局区数据区:全局数据区划分为三个区域。全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。常量数据存放在另一个区域里。这些数据在程序结束后由系统释放。我们所说的BSS段(bss segment)通常是指用来存放程序中未初始化的全

2012-07-07 11:12:40 513

转载 linux时间函数

linux时间函数我们在编程中可能会经常用到时间,比如取得系统的时间(获取系统的年、月、日、时、分、秒,星期等),或者是隔一段时间去做某事,那么我们就用到一些时间函数。linux下存储时间常见的有两种存储方式,一个是从1970年到现在经过了多少秒,一个是用一个结构来分别存储年月日时分秒的。time_t 这种类型就是用来存储从1970年到现在经过了多少秒,要想更精确一点,可以用结构str

2012-07-07 11:10:38 443

转载 PPP协议解析

PPP协议解析PPP(Point to Point Protocol,点对点协议)协议是为在两个对等实体间传输数据包,建立简单连接而设计的。这种连接提供了同时的双向全双工操作,并且假定数据包是按顺序投递的。PPP协议还满足了动态分配IP地址的需要,并能够对上层的多种协议提供支持。PPP在TCP/IP协议集中是位于数据链路层的协议,其物理实现方式有两种:一种是通过以太网口(这时称之为PP

2012-07-07 11:08:30 1320

转载 s3c2410 MMU(存储器管理单元)讲解

MMU,全称Memory Manage Unit, 中文名——存储器管理单元。    许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大

2012-07-07 11:01:41 591

转载 数组名和指针的区别

魔幻数组名  请看程序(本文程序在WIN32平台下编译):1. #include 2. int main(int argc, char* argv[])3. {4.  char str[10];5.  char *pStr = str;6.  cout 7.  cout 8.  return 0;9. }  1、数组名不是指针  我们先来

2012-07-07 09:40:19 1154 1

转载 嵌入式linux inittab解读

BusyBox会检查/etc/inittab文件是否存在, 如果此文件不存在, BusyBox会使用缺省的inittab的配置。它主要会为系统重引导,系统挂起以及init重启动设置缺省的动作。此外, 它还会为头四个虚拟控制台(/dev/tty1到/dev/tty4)设置启动shell的动作。如果并未建立这些设备文件, BusyBox将会报错。如果存在/etc/inittab文件, Bu

2012-07-06 10:16:40 647

转载 长篇连载--arm linux演艺

滚滚长江东四水,浪花淘净英雄。大家好,许多人和我一样,正在苦读linux源代码,希望有照一日,宝典在手,天下我有。小弟不才,也读了两年,写的几首歪诗。从本级开始,把我所理解的 linux如何启动贴出来,不懂之处大家讨论一番。也希望把linux从头到尾讨论一遍,计划写它240回,三年写完(笑。。。),欢迎大家动员一些牛人来参与讨论,提高人气,增加流量。小弟用的是arm920T,跑LI

2012-07-06 09:59:36 1003

转载 对.lds连接脚本文件的分析

本文由Jacky原创,来自http://blog.chinaunix.net/u1/58780/showart.php?id=462971对于.lds文件,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。虽然现在我还没怎么用它,但感觉还是挺重要的,有必要了解一下。先看一下GNU官方网站上对.lds文件形式的完整描述:SECTIONS

2012-07-06 09:45:00 513

转载 嵌入式linux启动信息完全注释

摘要我们在这里讨论的是对嵌入式linux系统的启动过程的输出信息的注释,通过我们的讨论,大家会对嵌入式linux启动过程中出现的、以前感觉熟悉的、但却又似是而非的东西有一个确切的了解,并且能了解到这些输出信息的来龙去脉。嵌入式linux的启动信息是一个很值得我们去好好研究的东西,它能将一幅缩影图呈现在我们面前,来指导我们更加深入地理解linux内核。关键字:linux,嵌入式,启动

2012-07-06 09:23:10 678

转载 做嵌入式驱动的前途何在

问:做嵌入式linux驱动的前途何在?或者说,怎么才能做好这一行?我做嵌入式驱动开发已经一年多了,感觉没学到多少东西。从网络驱动到CAN驱动、从dataflash驱动到NAND/NOR FLASH驱动、从CF/IDE驱动到各种嵌入式文件系统、从LCD/VGA驱动到音频驱动、从IAR到ADS再到GCC、Ucos到linux、从I2C总线到SPI再到SSC以及TCP/IP协议,感觉

2012-07-05 17:36:46 1814

转载 Linux目录架构详解

Linux和Windows操作系统的显著区别之一就是目录架构的不同。Linux操作系统的目录架构遵循文件系统层级结构标准。不知你是否使用ls命令浏览过Linux的根目录“/”,亲爱的读者,您都了解这些目录的含义吗? ls -l / 遍历文件系统(点击看大图)本文将引领您浏览Linux的目录架构,并解释每个重要目录的含义。/ - Root通常称为根分区。所有的文件和目录皆由此

2012-07-05 15:44:24 413

转载 [Linux初级]Linux下动态库的生成及链接方法

最近在看《C专家编程》,看到第5章-对链接的思考,正好作为参考,对Linux下动态库的生成及链接方法作一下总结。Linux下动态库文件的扩展名为".so"(Shared Object)。按照约定,所有动态库文件名的形式是libname.so(可能在名字中加入版本号)。这样,线程函数库被称作libthread.so。静态库的文件名形式是libname.a。共享archive的文件名形式是li

2012-07-05 15:32:05 492

androidStudio内存泄漏分析

用AndroidStudio内存泄漏分析,亲测可用,在项目中充分验证。

2018-09-02

Android项目源码凡信3.0最强仿微信更新直播和红包

Android项目源码凡信3.0最强仿微信更新直播和红包,提供所有源码!!

2018-09-02

4G全网通高清视频传输设备 技术协议

由于4G网络属于无线网络,网络质量会随着环境变化而变得不稳定,很多情况下网络带宽得不到保障。此时为保障视频传输的流畅性,需对视频质量、帧率等进行调整,在尽量满足用户体验的情况下降低视频传输对无线带宽的要求。

2018-09-02

疯狂JAVA讲义光盘代码

从《疯狂JAVA讲义》光盘里拷贝出来的代码

2015-05-06

AprilBeacon-Android-SDK

AprilBeacon 四叶兄弟 android SDK 和Demo

2015-05-05

APK在线升级示例

APK在线升级示例,本人已验证,绝对可用。

2015-05-05

空空如也

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

TA关注的人

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