自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tanglinux

专注于Linux内核以及C/C++应用程序的开发

  • 博客(29)
  • 资源 (19)
  • 收藏
  • 关注

原创 制作文件系统之一:安装交叉编译工具链

开发平台:Ubuntu11.04    目 标板:ARM体系结构    编 译器:arm-gcc-4.1.1.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3821111上下载)     1、把arm-gcc-4.1.1.tar.bz2下载到Ubuntu的$HOME目录下,然后解压。 $ tar jvxf arm-gcc-4

2011-11-28 23:33:45 1921

原创 Linux内核中的常用宏container_of其实很简单

开发平台:Ubuntu11.04    编 译器:gcc version 4.5.2 (Ubuntu/Linaro4.5.2-8ubuntu4)     Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。    Container_of的定义如下:

2011-11-27 19:50:47 37827 11

原创 例解GNU C之表达式中的复合语句

前言:计算机语言是编译器和程序员交流的依据和规范,GNU C是GCC特有的功能,在Linux内核中被广泛应用。    帮助文档:http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc/C-Extensions.html#C-Extensions     在讲解新概念之前,先回顾一下在标准C中表达式和复合语句的概念,表达式指的是运算符和操作数的组合,而复合

2011-11-27 14:52:51 3777 1

原创 例解GNU C之零长数组与变长数组

前言:计算机语言是编译器和程序员交流的依据和规范,GNU C是GCC特有的功能,在Linux内核中被广泛应用。    帮助文档:http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc/C-Extensions.html#C-Extensions     1、零长数组    GNU C允许声明长度为零的数组,但它只能被用于结构体的最后一个成员。

2011-11-25 17:31:00 8691

原创 例解GNU C之指定初始化项目

前言:计算机语言是编译器和程序员交流的依据和规范,GNU C是GCC特有的功能,在Linux内核中被广泛应用。    帮助文档:http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc/C-Extensions.html#C-Extensions     指定初始化项目(Designated Initializers):指的是可以对数组中的某些元素或结构体

2011-11-25 14:44:25 4342 1

原创 例解GNU C之typeof

前言:计算机语言是编译器和程序员交流的依据和规范,GNU C是GCC特有的功能,在Linux内核中被广泛应用。    帮助文档:http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc/C-Extensions.html#C-Extensions     关键字typeof用于获取表达式的数据类型。    简单例子,如清单1: char *chpt

2011-11-24 15:01:15 7715 7

原创 对比理解指针函数和函数指针

1、函数指针,可以这样理解,它首先是一个指针变量(一般占4个字节),只是它将要指向的数据类型为某种形式的函数。    举例如清单1: #include int int_func(int a, int b){ return a + b;}char char_func(char a, char b){ return a + b;}int main(void)

2011-11-24 12:49:44 1378

原创 另类解读C语言数组的特性

数组的本质其实就是把多个相同数据类型的变量捆绑在一起使用而已。例如int a[10],其实质就是把10个整型变量按照地址从低到高的顺序依次分配在一段连续的40个字节的内存空间上。    1、一维数组    一维数组举例,如清单1: #include int main(void){ int a[5] = {1, 2, 3, 4, 5}; int *p = a; /

2011-11-24 00:12:48 2971

原创 常用库之六:ibfontconfig以及libexpat的交叉编译

开发平台:Ubuntu11.04    编 译器:arm-gcc-4.1.1.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3821111上下载)    源码包:fontconfig.tar.bz2(可从http://download.csdn.net/detail/npy_lp/3831341上下载)     Fontconf

2011-11-23 13:27:41 6705 9

原创 常用库之九:libncurses的交叉编译

开发平台:Ubuntu11.04    编 译器:arm-gcc-4.1.1.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3821111上下载)    ncurses源码包:ncurses-5.9.tar.gz (可从官网http://ftp.gnu.org/pub/gnu/ncurses/上下载)     Ncurses提供

2011-11-23 12:13:25 17456

原创 常用库之八:libpopt的交叉编译

开发平台:Ubuntu11.04    编 译器:arm-gcc-4.1.1.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3821111上下载)    Popt源码包:popt-1.7.tar.gz (可从http://download.csdn.net/detail/npy_lp/3830473上下载)     此库被一些程

2011-11-23 10:52:17 7504 1

原创 常用库之七:libusb和usbutils的交叉编译

开发平台:Ubuntu11.04    编 译器:arm-gcc-4.1.1.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3821111上下载)    源码包:libusb.tar.bz2(可从http://download.csdn.net/detail/npy_lp/3829455上下载)     libusb 是一个用C

2011-11-22 23:56:02 10191 3

原创 常用库之五:libtiff的交叉编译

开发平台:Ubuntu11.04    编 译器:arm-gcc-4.1.1.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3821111上下载)    TIFF源码包:tiff.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3827430上下载,tiff-3.8.2.tar.gz中

2011-11-22 16:50:46 6685 8

原创 常用库之二:libfreetype的交叉编译

开发平台:Ubuntu11.04    编 译器:arm-gcc-4.1.1.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3821111上下载)    FreeType源码包:freetype.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3826870上下载)     F

2011-11-22 15:24:55 13486 3

原创 常用库之三:libpng的交叉编译

开发平台:Ubuntu11.04    编 译器:arm-gcc-4.1.1.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3821111上下载)    PNG源码包:libpng-1.2.16.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3826560上下载)     l

2011-11-22 14:28:59 8771 2

原创 常用库之一:libjpeg的交叉编译

开发平台:Ubuntu11.04    编 译器:arm-gcc-4.1.1.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3821111上下载)    Jpeg源码包:libjpeg.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3825813上下载)     libjpe

2011-11-22 12:04:16 10157 1

原创 常用库之四:zlib的交叉编译

开发平台:Ubuntu11.04    编 译器:arm-gcc-4.1.1.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3821111上下载)    Zlib源码包:zlib.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3825370上下载)     用来支持数据压缩或

2011-11-22 10:56:28 30203 18

原创 在Linux-2.6.38.8上移植yaffs2文件系统

开发平台:Ubuntu 11.04    Yaffs2源码包:yaffs2.tar.bz2 (可从http://download.csdn.net/download/npy_lp/3810132 上下载)     通过以下命令即可在Linux-2.6.38.8上成功移植yaffs2文件系统(以下命令都是基于内核源码目录linux-2.6.38.8和yaffs2源码包yaffs2.tar

2011-11-21 14:45:27 2318

原创 内核移植之编译初体验

开发平台:Ubuntu11.04    目 标板:优龙FS2410    编 译器:arm-gcc-4.1.1.tar.bz2  (可从http://download.csdn.net/detail/npy_lp/3821111 上下载)    内核源码:linux-2.6.38.8.tar.bz2        交叉编译Linux内核大概会经历如下几步:    第一步,解

2011-11-20 00:48:04 1857

原创 简要说明S3C2410X的Nandflash启动模式

由于Norflash相对较高的价格,一般MCU厂商都会通过其他方法在硬件上实现支持Nandflash启动模式。    S3C2410X就是在MCU内部集成4KB被叫作Steppingstone的SRAM,当系统启动时Nandflash前4KB数据就被自动地拷贝到Steppingstone中,然后从Steppingstone开始执行,所以必须要在这4KB代码中实现内存控制器和Nandflash控

2011-11-19 23:01:47 2741

原创 关于编译Linux-2.6.38.8内核时s3c_device_ohci未定义问题的分析

开发平台:Ubuntu11.04    目 标板:优龙FS2410    编 译器:arm-gcc-4.1.1.tar.bz2  (可从http://download.csdn.net/detail/npy_lp/3821111 上下载)    在编译Linux-2.6.38.8内核的最后阶段出现s3c_device_ohci未定义的错误: arch/arm/mach-s3

2011-11-19 19:38:16 1915

原创 使用CodeViz生成C/C++函数调用关系图

运行环境:虚拟机下的Ubuntu 11.04     结合Graphviz工具,使用CodeViz可以生成直观和漂亮的C/C++程序函数之间的调用关系图。    1、安装graphviz    在安装CodeViz之前,必须先安装它所依赖的工具dot,否则将无法完成./configure操作并提示以下错误信息:checking for dot...not foundFATA

2011-11-18 13:15:58 17941 4

原创 *p++和*++p的区别

接下来,通过示例彻底理解自增运算符的两种用法(自减的用法与之类似,只不过是加1变成了减1)。    1、++i和i++的区别    如清单1(注意代码中的注释): #include int main(void){ int a, b, i = 7; i++; //等价于i = i + 1; ++i; //等价于i = i + 1;

2011-11-07 13:47:15 163341 12

原创 指针的运算

其实,在C语言中,指针功能的强大,主要体现在指针变量的间接运算上,指针涉及的运算并不多。    1、基本运算    指针变量的基本运算包括赋值、取地址以及取值(间接运算)等运算。    举例,如清单1: #include int main(void){ int a = 5; int *p = &a; int b = *p; *

2011-11-06 19:35:09 18958 2

原创 作用域与函数传值调用

在C语言中,所有变量、宏、函数(函数的声明形式即为函数原型)、自定义数据类型以及别名等数据必须先声明后使用。通常在头文件中包含这些声明,如extern int global_data,这个声明只是告诉编译器全局变量的类型和名字,至于对它的定义(分配内存的声明即为定义)则在别处进行。    1、作用域    在C语言中,常见的有代码块(一对花括号之间的代码)作用域和文件作用域。    所

2011-11-06 16:19:28 1576

原创 char *p = "123"和char a[] = "123"根本就不同

示例代码如下: #include int main(void){ char *p = "123"; //等价于char *p; p = "123"; char a[] = "123"; //等价于char a[] = {'1', '2', '3', '\0' }; printf("address a = %p, p = %p, &p = %p\n"

2011-11-03 23:26:08 8966

原创 准确理解typedef的用法

在C语言中,关键字typedef用来为现有数据类型创建一个别名,而不是用来创建一个新的数据类型。    1、typedef的用法    简单的例子,如清单1:    #include typedef int type_int;int main(void){ type_int a = 0x10203040; short b = a;

2011-11-02 14:36:56 3010

原创 二级指针与取地址运算符

接下来,我们结合下面的例子来理解二级指针的概念。#include int main(void){ int a = 3; int *one_ptr = &a; //相当于int *one_ptr;one_ptr = &a; int **two_ptr = &one_ptr; //相当于int **two_ptr; two_ptr = &one_p

2011-11-01 22:48:38 7572

原创 简单而透彻地理解C语言指针

不少C语言初学者都感觉指针很难理解,其实造成这样的困扰,仅仅是因为指针变量的声明和使用方式与普通的变量(如整型变量)不同而已。    要透彻理解C语言指针,只要能看懂下面三点即可(结合下面的代码):#include int main(void){ int *int_ptr; short *short_ptr; char *char_ptr;

2011-11-01 17:49:50 2081

qBittorrent.zip

编译qBittorrent所需的源代码,包括boost_1_71_0.zip、libtorrent-rasterbar-1.2.2.tar.gz、openssl-1.1.1d.tar.gz、qbittorrent-4.2.5.tar.gz、qt-everywhere-src-5.13.2.zip和zlib-1.2.11.tar.gz。

2020-09-10

TR2011-688.pdf

Exploiting the Hard-Working DWARF: Trojan and Exploit Techniques Without Native Executable Code

2019-11-26

vlc-2.2.8-win32.zip

vlc-2.2.8免安装软件,包含播发程序vlc.exe,核心库libvlc.dll,libvlccore.dll,以及所有相关插件、语言文件包等等,适用于win32平台,使用NSIS软件即可制作成完整的安装程序。 CRC32: 8BF6D4F7 MD5: A0B9F964374AA9351577E067566D38FD SHA-1: D4C65B8CC522031CCBC6917BF04ECD63D366D901 SHA-256: 8767A8BED8BA8863508A1F9BF20CB067D7F441936617CE3D86DE4C99706A9FCD

2018-04-18

4.4BSD Lite

内含TCP/IP详解卷2源代码

2017-04-03

net-snmp源码包

net-snmp-5.4.2.1.tar.gz

2014-12-23

iputils-s20121221.tar.bz2

The iputils package is set of small useful utilities for Linux networking. It was originally maintained by Alexey Kuznetsov. http://www.skbuff.net/iputils/

2013-03-08

net-tools-1.60.tar.bz2

包含常用的网络工具,如ifconfig、netstat、route、arp等等。

2012-11-30

u-boot和Linux内核镜像以及制作好的文件系统

博文《制作文件系统之五:基于BusyBox的默认配置来构建文件系统》所用的u-boot和Linux内核镜像(适用于优龙FS2410)以及制作好的文件系统(适用于ARM体系结构)。

2011-12-07

fontconfig-2.4.2.tar.gz

fontconfig-2.4.2.tar.gz,包含它所依赖的库expat-2.0.0.tar.gz。

2011-11-23

popt-1.7.tar.gz

popt源码包popt-1.7.tar.gz。

2011-11-23

libusb源码包

包含libusb-0.1.12.tar.gz和usbutils-0.72.tar.gz。

2011-11-22

tiff源码包

包含tiff-3.8.2.tar.gz和tiff-3.7.4.tar.gz,使用tiff-3.8.2.tar.gz中的libtool-1.5.20即可在Ubuntu上成功交叉编译tiff-3.8.2。

2011-11-22

freetype源码包

包含freetype-2.3.2.tar.bz2和freetype-1.3.1.tar.gz。

2011-11-22

libpng-1.2.16.tar.bz2

libpng-1.2.16.tar.bz2

2011-11-22

libjpeg源码包

包含libtool-2.2.4.tar.bz2和jpegsrc.v6b.tar.gz。

2011-11-22

zlib库,包含最新的1.2.5版本

包含zlib-1.2.3.tar.bz2和zlib-1.2.5.tar.gz。

2011-11-22

基于ARM的GCC编译器

基于ARM的GCC编译器,版本4.1.1,已包含常用库。

2011-11-21

最新yaffs2源码包

实测支持linux-2.6.38.8,运行良好。

2011-11-18

空空如也

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

TA关注的人

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