嵌入式Linux中文站

Linux动态库的编译与使用

阅读(78)

Linux下的动态库以.so为后缀,我也是初次在Linux下使用动态库,写一点入门步骤,以便以后能方便使用。第一步:编写Linux程序库文件1.动态库接口文件 // 动态库接口文件getmaxlen.h #ifndef _GETMAXLEN_H_ #define _GETMAXLEN_H_ int getMaxLen( int *sel, int N); #endif 文件2.动态库程序实现文件 // 动态库程序实现文件getmaxlen.c #include getmaxlen.h int getMax

linux异步IO的两种方式

阅读(199)

知道异步IO已经很久了,但是直到最近,才真正用它来解决一下实际问题(在一个CPU密集型的应用中,有一些需要处理的数据可能放在磁盘上。预先知道这些数据的位置,所以预先发起异步IO读请求。等到真正需要用到这些数据的时候,再等待异步IO完成。使用了异步IO,在发起IO请求到实际使用数据这段时间内,程序还可以继续做其他事情)。 假此机会,也顺便研究了一下linux下的异步IO的实现。 linux下主要有两套异步IO,一套是由glibc实现的(以下称之为glibc版本)、一套是由linux内核实现,并由libaio

Linux 下的dd命令使用详解

阅读(104)

一、dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2 参数注释: 1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。 if=input file 2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。 of=output file 3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。 obs=bytes:一次输出byte

C实战:项目构建Make,Automake,CMake

阅读(107)

本文继续C实战的主题,对同样非常流行的构建工具Make的用法和原理一探究竟,并顺便看一下一些高级衍生产品。 1 .Make基础首先我们编写一个简单的C项目,以此项目在实战中学习Make的相关知识。更全面的介绍请参考官方手册。cdai@vm /syspace/ 2 -ccpp/ 24 -pragmatic/build-tool/ make $ tree.├── hello.c├── hello.h├── main.c└── Makefile 0 directories, 4 files整个程序的逻辑非常简单

linux syscall 详解

阅读(146)

一、Syscall意义 内核提供用户空间程序与内核空间进行交互的一套标准接口,这些接口让用户态程序能受限访问硬件设备,比如申请系统资源,操作设备读写,创建新进程等。用户空间发生请求,内核空间负责执行,这些接口便是用户空间和内核空间共同识别的桥梁,这里提到两个字受限,是由于为了保证内核稳定性,而不能让用户空间程序随意更改系统,必须是内核对外开放的且满足权限的程序才能调用相应接口。 在用户空间和内核空间之间,有一个叫做Syscall(系统调用, system call)的中间层,是连接用户态和内核态的桥梁。这

使用Crash工具分析 Linux dump文件

阅读(118)

前言 Linux 内核(以下简称内核)是一个不与特定进程相关的功能集合,内核的代码很难轻易的在调试器中执行和跟踪。开发者认为,内核如果发生了错误,就不应该继续运 行。因此内核发生错误时,它的行为通常被设定为系统崩溃,机器重启。基于动态存储器的电气特性,机器重启后,上次错误发生时的现场会遭到破坏,这使得查找 内核的错误变得异常困难。 内核社区和一些商业公司为此开发了很多种调试技术和工具,希望可以让内核的调试变得简单。其中一种是单步跟踪调试方法,即使用代码调试器,一 步步的跟踪执行的代码,通过查看变量和寄存器

Linux网络底层收发探究

阅读(238)

一、基本框架 简单看了一下p1020内核中,网络底层的数据收发 先看一下linux内核中网络的层次结构 也是基本按照7层来构造 由于从ip层(网络层)往上就比较统一了,这里主要分析硬件层和链路层 二、名词解释 1.NAPI CPU数据接收靠中断和轮询的配合,达到较高的收发效率。 CPU接收外部数据时一般采用中断的方式,中断的好处是响应及时,如果数据量较小,则不会占用太多的CPU事件;缺点是数据量大时,会产生过多中断, 而每个中断都要消耗不少的CPU时间,从而导致效率反而不如轮询高。轮询方式与中断方式相反,

网卡驱动收发包过程

阅读(193)

网卡 网卡工作在物理层和数据链路层,主要由PHY/MAC芯片、Tx/Rx FIFO、DMA等组成,其中网线通过变压器接PHY芯片、PHY芯片通过MII接MAC芯片、MAC芯片接PCI总线 PHY芯片主要负责:CSMA/CD、模数转换、编解码、串并转换 MAC芯片主要负责: 比特流和帧的转换:7字节的前导码Preamble和1字节的帧首定界符SFD CRC校验 Packet Filtering:L2 Filtering、VLAN Filtering、Manageability / Host Filterin