- 博客(25)
- 资源 (3)
- 收藏
- 关注
原创 编译htop命令
输入上面的内容开始自动配置Makefile。但是出错了,找不到libncurses库。这时候需要编译libncurses库了。如上图编译ncurses-5.7库的步骤,由于这里只需要库和头文件。所以就选择性编译。最终编译成功。即可在目标版上执行htop命令。但是运行出错了。如下图:这是因为ncu
2013-10-20 16:13:58
778
转载 JPEG 原理详细实例分析及其在嵌入式 Linux 中的应用
简介: 作为一个基本的图像压缩方式,JPEG 已经得到了广泛的运用,但 JPEG 相关的基本原理,却经常被忽视,或解释得很不确切。这里我们详细讨论一下 JPEG 的编码原理,并结合实例来给出一个更加感性的认识。JPEG 编码的详细过程有着诸多的信息可以给我们巨大的启发,我们在这里讨论的就是要对这些信息做一个具体细致的分析,通过我们的讨论,大家会对 JPEG 编码过程中出现的内容有一个确切的了解,并
2013-08-23 18:22:09
700
原创 新安装的ubuntu需要下载的东西
1、vim sudo apt-get install vim2、menuconfig的支持 sudo apt-get install libncurses5-dev ncurses是字符终端下屏幕控制的基本库。 3、nfs 安装 1)下载sudo apt-get install nfs-kernel-server 2)编
2013-05-21 21:50:31
1588
转载 虚拟网卡 TUN/TAP 驱动程序设计原理
简介虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装。本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在linux环境下的设计思路。tun/tap驱动程序实现了虚拟网卡的功能,tun表示虚拟的是点对点设备,tap表示虚拟的是以太网设备,这两种设备针对网络包实施不同的封装。利用tun/tap驱动
2013-05-20 13:08:42
617
原创 gdb-7.6编译
1、在GNU官网上下载gdb-7.6.tar.gz2、在gdb-7.6目录下执行 #./configure --host=arm-linux --target=arm-linux --enable-64bit-bfd CC=$(CROSS_COMPILE)gcc LD=$(CROSS_COMPILE)ld AR=$(CROSS_COMPILE)ar #makeOK。
2013-05-09 17:18:35
2568
原创 ubuntu eclipse pthread
在eclipse中编译时出现报错: undefined reference to 'pthread_create' undefined reference to 'pthread_join' 问题原因: pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 p
2013-03-31 22:09:00
1527
原创 pthread线程库
如果无法找到pthread_xxxx的 man pages执行下面:1.sudo apt-get install glibc-doc2.sudo apt-get install manpages-posix-dev
2013-03-31 21:58:12
458
转载 Linux 的多线程编程的高效开发经验
背景Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编程上的问题,并分别引出相关改善的开发经验,用以避免这些的陷阱。我们希望这些经验可以帮助读者们能更好更快的熟悉 Linux 平台的多线程编程。我们假
2012-09-14 19:54:32
494
原创 ubuntu下vim的配置
在ubuntu下自己用户目录下创建.vimrc文件,添加下面内容: set nocompatibleset columns=80set tabstop=4set rulerset noexpandtabset numberset ignorecaseset wrapmargin=15set cindentset shiftwidth=4set hls
2012-09-06 17:07:23
248
转载 内存池
引言本书主要针对的是 C++ 程序的性能优化,深入介绍 C++ 程序性能优化的方法和实例。全书由 4 个篇组成,第 1 篇介绍 C++ 语言的对象模型,该篇是优化 C++ 程序的基础;第 2 篇主要针对如何优化 C++ 程序的内存使用;第 3 篇介绍如何优化程序的启动性能;第 4 篇介绍了三类性能优化工具,即内存分析工具、性能分析工具和 I/O 检测工具,它们是测量程序性能的利器。本章首先
2012-09-05 22:16:42
394
转载 linux自动启动shell和init概述
linux运行级别 linux启动之后会在一个级别运行,下面列出了这些运行级别:0 系统停止1 单用户系统,不需要登陆2 多用户系统但不支持NFS,命令行模式登陆3 完整多用户模式,命令行模式登陆4 未用5 X11图形模式,图形模式登陆6 重新启动系统这些可以在/etc/initab文件中可以看到0-6级的注释,代码段如下:# Default runleve
2012-08-23 09:58:33
646
转载 Linux slab 分配器剖析
动态内存管理内存管理的目标是提供一种方法,为实现各种目的而在各个用户之间实现内存共享。内存管理方法应该实现以下两个功能:最小化管理内存所需的时间最大化用于一般应用的可用内存(最小化管理开销)内存管理实际上是一种关于权衡的零和游戏。您可以开发一种使用少量内存进行管理的算法,但是要花费更多时间来管理可用内存。也可以开发一个算法来有效地管理内存,但却要使用更多的内存。最终,特定应用程序的
2012-04-27 10:13:53
266
转载 Linux 文件系统剖析
基本的文件系统体系结构Linux 文件系统体系结构是一个对复杂系统进行抽象化的有趣例子。通过使用一组通用的 API 函数,Linux 可以在许多种存储设备上支持许多种文件系统。例如,read 函数调用可以从指定的文件描述符读取一定数量的字节。read 函数不了解文件系统的类型,比如 ext3 或 NFS。它也不了解文件系统所在的存储媒体,比如 AT Attachment Packet Inte
2012-04-22 13:28:50
221
转载 JFFS2 文件系统及新特性介绍
1. 为什么需要 JFFS2这一小节首先介绍了闪存相对于磁盘介质的特别之处,然后分析了将磁盘文件系统运行在闪存上的不足,同时也给出了我们使用 JFFS2 的理由。1.1 闪存(Flash Memory) 的特性和限制这里所介绍的闪存的特性和限制都是从上层的文件系统的角度来看的,而不会涉及到具体的物理特性。总的来说,有两种类型的 flash memory: NOR flash 和 NAN
2012-04-18 11:48:00
298
转载 Ubuntu 11.04 安装后要做的20件事情
4.28日,Ubuntu 11.04 就发布了!Ubuntu 11.04 安装后如何快速配置?笨兔兔在此给各位兔子们支招——–《Ubuntu 11.04 安装后要做的20件事情》,让你赶在别人之前就明白怎么做!若是你安装Ubuntu原先的版本,你需要升级你的版本到Ubuntu 11.04,我们原先介绍过,在此不再赘述。参考此文章。接下来是我们要做的事情!#1 不喜欢Unity? 切换到Ubun
2012-03-31 15:40:10
351
转载 U-boot中TFTP 解释
一、 概述 U-boot中的TFTP用于发送较小的文件。下层使用UDP协议,发送使用UDP 69端口,每次发送的最大分组为512 Bytes。发送双方采用超时重传机制。数据传输模式为octet模式(二进制模式 )。 在U-boot中使用tftp功能可以使用如下命令: tftp MemoryAddress FileName
2012-03-08 17:08:55
177
转载 对u-boot.lds的更详细的分析
Linker Script FormatLinker scripts are text files.You write a linker script as a series of commands.Each command is either a keyword,possibly followed by arguments,or an assignment to a symbol.Y
2012-02-27 14:02:38
696
转载 __asm__ __volatile__内嵌汇编用法简述
__asm__ __volatile__内嵌汇编用法简述 在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__asm__ __volatile__内嵌汇编用法。因为我们华清远见教学平台是ARM体系结构的,所以下面的示例都是用ARM汇编。带有C/C++表达式的内联汇编格式为: __asm__ __volatile__("Instruction List" : Output
2012-01-31 13:47:47
120
转载 深入理解sizeof
由几个例子说开去。第一个例子:char* ss = "0123456789";sizeof(ss) 结果 4 ===》ss是指向字符串常量的字符指针sizeof(*ss) 结果 1 ===》*ss是第一个字符char ss[] = "0123456789";sizeof(ss) 结果 11 ===》ss是数组,计算到\0位置,因此
2012-01-31 13:33:13
371
转载 System.map文件
当运行GNU链接器gld(ld)时若使用了"-M"选项,或者使用nm命令,则会在标准输出设备(通常是屏幕)上打印出链接映像(link map)信息,即是指由链接程序产生的目标程序内存地址映像信息。其中列出了程序段装入到内存中的位置信息。具体来讲有如下信息:目标文件及符号信息映射到内存中的位置。公共符号如何放置。链接中包含的所有文件成员及其引用的符号。通常我们会把发送到标准输出设备的
2012-01-11 16:40:26
2750
转载 Linux操作系统内核启动参数详细解析
Linux操作系统内核启动参数详细解析 Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。如果不使用启动管理器,比如直接从BIOS或者把内核文件用“cp zImage /dev/fd0”等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用
2011-12-19 14:51:16
366
转载 浅谈 Linux 内核开发之网络设备驱动
网络设备介绍网络设备是计算机体系结构中必不可少的一部分,处理器如果想与外界通信,通常都会选择网络设备作为通信接口。众所周知,在 OSI(Open Systems Interconnection,开放网际互连)中,网络被划分为七个层次,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。我们所讲的网络设备也包括两个层次,一层叫做 MAC(Media Access Contr
2011-12-18 15:30:18
1039
转载 Linux下ARM汇编
第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。一. Linux汇编行结构任何汇编行都是如下结构:[:] [}
2011-12-14 22:54:31
658
转载 nand flash坏块管理OOB,BBT,ECC
nand flash坏块管理OOB,BBT,ECC 0.NAND的操作管理方式 NAND FLASH的管理方式:以三星FLAHS为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 (Block) = xxxx (Pages),1(Page) =528 (Bytes) = 数据块大小(512Bytes) +
2011-12-09 11:14:20
325
转载 多进程和多线程的优缺点
线程机制支持并发程序设计技术,在多处理器上能真正保证并行处理。而在linux实现线程很特别,linux把所有的线程都当作进程实现。linux下线程看起来就像普通进程(只是该进程和其他进程共享资源,如地址空间)。上述机制与Microsoft windows或是Sun Solaris实现差异很大。 Linux的线程实现是在核外进行的,核内提供的是创建进程的接口do_fork()。内核
2011-12-07 22:43:14
1447
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人