Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6467195
  • 博文数量: 579
  • 博客积分: 1548
  • 博客等级: 上尉
  • 技术积分: 16635
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-12 15:29
个人简介

http://www.csdn.net/ http://www.arm.com/zh/ https://www.kernel.org/ http://www.linuxpk.com/ http://www.51develop.net/ http://linux.chinaitlab.com/ http://www.embeddedlinux.org.cn http://bbs.pediy.com/

文章分类

全部博文(579)

文章存档

2018年(18)

2015年(91)

2014年(159)

2013年(231)

2012年(80)

发布时间:2013-01-11 14:48:13

1,cat :   把两个文件合并成一个文件。2,whereis:   查找源代码,二进制和帮助文件,而不是所有类型的文件,此命令查找的目录是由环境变量 $PATH 指定3,locate:   进行查找,但并不是真正对硬盘上的文件系统进行查找,而是对文件名数据库进行检索,   可以使用通配符4,df:   查看硬盘被占用了多少空间和剩余多少空间5,last:   查看曾经登陆到此系统的用户清单6,less:   查看文件内容,并且在查看的过程中可以使用光标......【阅读全文】

阅读(1453) | 评论(0) | 转发(1)

发布时间:2013-01-10 13:57:07

在系统调用的所有处理函数中都包括了 asmlinkage 限定符,这不是 C 语言语法的标准成分。asmlinkage 是一个汇编语言宏,定义在 <include/linux/linkage.h> 中。其用途:asmlinkage标识该函数从汇编代码内被调用。对于大多数平台来说,它根本什么都不做!但该宏连同 GCC 增强特性(__attribute__)一同在 IA-32 和 IA-64 系统上使用时,只是为了统治编译器该函数的特别的调用规范(即该函数从汇编代码内被调用)。......【阅读全文】

阅读(2108) | 评论(0) | 转发(0)

发布时间:2013-01-09 14:42:59

MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0Slab将缓存分为两种:一种是专用高速缓存,另外一种是普通高速缓存。请注意,这里所说的高速缓存和硬件没有必然的关系,它只是slab分配器中的一个软件概念。专用高速缓存中用来存放内核使用的数据结构,例如:mm,skb,vm等等普通高速缓存是指存放一般的数据,比如内核为指针分配一段内存所有的高速缓存区都通过链表的方式组织在一起,它的首结点是cache_chain另外,普通高速缓存将分配区分为32*(2^0),32*(2^1),32*(2^2) ….32*(2^12)大小,共......【阅读全文】

阅读(3120) | 评论(0) | 转发(2)

发布时间:2013-01-09 11:33:46

最近看tty驱动源码,发现了一个以前老板上课时讲过的一个c语言技巧,不是很理解,上网学习了一下,总结如下:   在linux源码里 struct tty_buffer { struct tty_buffer *next; char *char_buf_ptr; unsigned char *flag_buf_ptr; int used; int size; int commit; int read; /* Data points here */ unsigned long data[0];......【阅读全文】

阅读(1396) | 评论(0) | 转发(0)

发布时间:2013-01-08 14:11:36

Linux内核中提供的一些字符串转换函数: lib/vsprintf.c [html] view plaincopyprint? 1. unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base)     2. unsigned long simple_strtoul(const&n......【阅读全文】

阅读(2517) | 评论(0) | 转发(1)

发布时间:2013-01-08 11:08:22

测试代码: 点击(此处)折叠或打开#include#include#include#include#include#include#include#includeMODULE_LICENSE("Dual BSD/GPL");MODULE_AUTHOR("S......【阅读全文】

阅读(2272) | 评论(0) | 转发(1)

发布时间:2013-01-07 19:30:25

 英文原文:10 steps to becoming a better programmer   这篇文章要介绍的,是我作为专业程序员这些年来学到的能真正提高我的代码质量和整体工作效率的 10 件事情。   1. 永远不要复制代码   不惜任何代价避免重复的代码。如果一个常用的代码片段出现在了程序中的几个不同地方,重构它,把它放到一个自己的函数里。重复的代码会导致你的 同事在读你的代码时产生困惑。而重复的代码如果在一个地方修改,在另外一个地方忘记修改,就会产生到处是 bug,它还会使你的代码体积变得臃肿。现代的编程语言提供了很好的方法来解决这些问题,例如,下面这个问题在以前很难解决......【阅读全文】

阅读(2834) | 评论(0) | 转发(3)

发布时间:2013-01-07 18:28:07

点击(此处)折叠或打开#include<linux/device.h>#include<linux/module.h>#include<linux/kernel.h>#include<linux/stat.h>#include<linux/init.h>#include<linux/string.h>#include<linux/sysfs.h>#include<linux/kobject.h>MODULE_LICENSE("Dual BSD/GPL");MODULE_AUTHOR("SM");s......【阅读全文】

阅读(1797) | 评论(0) | 转发(1)

发布时间:2013-01-07 16:09:14

文章的例子和实验使用《LDD3》所配的lddbus模块(稍作修改)。 提示:在学习这部分内容是一定要分析所有介绍的源代码,知道他们与上一部分内容(kobject、kset、attribute等等)的关系,最好要分析一个实际的“flatform device”设备,不然会只学到表象,到后面会不知所云的。 总线 总线是处理器和一个或多个设备之间的通道,在设备模型中, 所有的设备都通过总线相连, 甚至是内部的虚拟"platform"总线。总线可以相互插入。设备模型展示了总线和它们所控制的设备之间的实际连接。在 Linux 设备模型中, 总线由 bus_type 结构表示, 定义在 &......【阅读全文】

阅读(2043) | 评论(0) | 转发(1)

发布时间:2013-01-07 10:55:08

在linux-2.6.36内核上加载编译驱动时,出现  error:unknown field 'ioctl' specified in initializer 原因是:在2.6.36内核上file_operations发生了重大的改变: 原先的   int (*ioctl)(struct inode*, struct file*, unsigned int, unsigned long); 被改为了           long (*unlocked_ioctl) (struct file *, un......【阅读全文】

阅读(1991) | 评论(0) | 转发(0)

发布时间:2013-01-06 16:26:30

在 ldd_bus.h 定义如下://LDD driver typestruct ldd_driver{    char    *version;    struct module *module;    struct device_driver driver;    struct driver_attribute    version_attr;};//A device type for things "plugg......【阅读全文】

阅读(2313) | 评论(0) | 转发(2)

发布时间:2013-01-06 15:10:56

1. TI官方资源 TI中文主页 : http://focus.ti.com.cn/cn/tihome/docs/homepage.tsp 或者:http://www.ti.com 从“处理器”连接可以连接到每个芯片的资料主页,比如: http://focus.ti.com.cn/cn/docs/prod/folders/print/omap3530.html 或直接访问www.ti.com.omap3530 可以下载数据手册,应用文档,用户手册,开发工具等 2 开发环境和软件开发包下载 建议大家注册一个myti,方便下载一些软件工具和资料,并可以设定邮箱提醒 http://m......【阅读全文】

阅读(4851) | 评论(0) | 转发(3)

发布时间:2013-01-06 11:45:24

点击(此处)折叠或打开#include <linux/types.h>     //dev_t,MAJOR,MINOR,MKDEV#include <linux/fs.h>        //file_operations,struct file,struct indoe,register/unregister_chrdev,register/alloc/unregister_chrdev_regino,#include <linux/cdev.......【阅读全文】

阅读(4205) | 评论(0) | 转发(2)

发布时间:2013-01-06 10:41:21

这句主要作用是提示编译器,对这个函数的调用需要像printf一样,用对应的format字符串来check可变参数的数据类型。例如:extern int my_printf (void *my_object, const char *my_format, ...)__attribute__ ((format (printf, 2, 3)));format (printf, 2, 3)告诉编译器,my_format相当于printf的format,而可变参数是从my_printf的第3个参数开始。这样编译器就会在编译时用和printf一样的check法则来确认可变参数是否正确了。......【阅读全文】

阅读(2946) | 评论(0) | 转发(1)

发布时间:2013-01-06 09:43:44

PC操作系统:ubuntu 11.10使用的开发板:am335x_evm开发板使用的操作系统:linux 3.2 在新版本的内核中struct device 已经没有bus_id成员,取而代之的是通过dev_name和dev_set_name对设备的名字进行操作。         dev_name和dev_set_name在2.6.35.6内核中的源代码如下:         static inline const char *d......【阅读全文】

阅读(2343) | 评论(0) | 转发(0)

发布时间:2013-01-04 18:49:12

#include<linux/miscdevice.h>建一个miscdevice结构体static struct miscdevice misc = {       .minor = MISC_DYNAMIC_MINOR,       .name = DEVICE_NAME,       .fops = &dev_fops,};在驱动函数初始化中注册这个混杂设备misc_register(&a......【阅读全文】

阅读(2081) | 评论(0) | 转发(1)

发布时间:2013-01-04 18:36:36

http://ishare.iask.sina.com.cn/download/explain.php?fileid=10466019&page=0......【阅读全文】

阅读(1146) | 评论(0) | 转发(1)

发布时间:2013-01-04 16:44:18

exec用被执行的程序完全替换调用它的程序的影像。fork创建一个新的进程就产生了一个新的PID, exec启动一个新程序,替换原有的进程,因此这个新的被exec执行的进程的PID不会改变, 和调用exec函数的进程一样。 int   exec…装入和运行其它程序: int   execl(  char *pathname,char *arg0,char *arg1,...,char *argn,NULL) int   execle( char *pathname,char *ar......【阅读全文】

阅读(1910) | 评论(0) | 转发(2)

发布时间:2013-01-04 15:43:53

1.结构框图:2.管脚功能描述3.状态图:Power on: 上电Reset Procedure: 复位过程Initialization: 初始化ZQCL: 上电初始化后,用完成校准ZQ电阻。ZQCL会触发DRAM内部的校准引擎,      一旦校准完成,校准后的值会传递到DRAM的IO管脚上,并反映为输出驱动和ODT阻值。ZQCS: 周期性的校准,能够跟随电压和温度的变化而变化。校准需要更短的时间窗口,     &......【阅读全文】

阅读(12267) | 评论(0) | 转发(12)

发布时间:2013-01-04 15:41:59

首先,我们先了解一下内存的大体结构工作流程,这样会比较容量理解这些参数在其中所起到的作用。这部分的讲述运用DDR3的简化时序图。   DDR3的
内部是一个存储阵列,将数据“填”进去,你可以它想象成一张表格。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就
可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)就是逻辑
Bank(Logical Bank,下面简称Bank)。 DDR3内部Bank示意图,这是一个NXN的阵列,B代表Bank......【阅读全文】

阅读(12233) | 评论(0) | 转发(15)

发布时间:2013-01-04 15:07:19

转载自:http://i.linuxtoy.org/files/pdf/fwunixref.pdf文件命令ls – 列出目录ls -al – 使用格式化列出隐藏文件cd dir - 更改目录到 dircd – 更改到 home 目录pwd – 显示当前目录mkdir dir – 创建目录 dirrm file – 删除 filerm -r dir – 删除目录 dirrm -f file – 强制删除 filerm -rf dir – 强制删除目录 dir *cp file1 file2 – 将 file1 复制到 file2cp -r dir1 dir2 – 将 dir1 复制到 dir2;......【阅读全文】

阅读(1487) | 评论(0) | 转发(1)

发布时间:2012-12-31 17:18:47

     前两天把内核关于内核启动参数的一些知识彻底地分析了一遍《Linux内核源码分析--内核启动命令行的传递过程(Linux-3.0 ARMv7)》,发现了一些以前没有注意的细节问题,这里总结如下:一、2.6.32以后的内核不再对cmdline中的未知参数输出警告信息     以前在移植内核的时候,如果cmdline中有未知的参数,内核一般会打印如下警告:Unknown boot option `**********': ignoring    但是这次我在uboot的bootargs中添加了内核未知的参数,比......【阅读全文】

阅读(2280) | 评论(0) | 转发(0)

发布时间:2012-12-31 17:15:31





    在完成了zImage自解压之后,就跳转到了解压后的内核(也就是vmlinux的bin版本Image),具体的入口可以在arch/arm/kernel/vmlinux.lds.S(最终的链接脚本是通过这个文件产生的)中获得:
......
SECTIONS
{
#ifdef CONFIG_XIP_KERNEL
. = XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR);
#else
. = PAGE_OFFSET + TEXT_OFFSET;
#endif

.init : { /* Init co......【阅读全文】

阅读(3528) | 评论(0) | 转发(3)

发布时间:2012-12-31 17:14:10

1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。 2. Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。 3. 文件系统。包括根文件系统和建立于 Flash 内存设备之上文件系统。通常用 ram disk 来......【阅读全文】

阅读(3253) | 评论(0) | 转发(7)

发布时间:2012-12-31 17:13:36

1、嵌入式Linux软件结构与分布在一般情况下嵌入式Linux系统中的软件主要分为以下及部分:(1)引导加载程序:其中包括内部ROM中的固化启动代码和Boot Loader两部分。而这个内部固化ROM是厂家在芯片生产时候固化的,作用基本上是引导Boot Loader。有的芯片比较复杂,比如Omap3,他在flash中没有代码的时候有许多启动方式:USB、UART或以太网等等。而S3C24x0则很简单,只有Norboot和Nandboot。(2)Linux kernel 和drivers。(3)文件系统。包括根文件系统和建立于Flash内存设备之上的文件系统(EXT4、UBI、CRAMFS等等)......【阅读全文】

阅读(2502) | 评论(0) | 转发(0)
给主人留下些什么吧!~~

Dafanzi2016-12-05 18:21

我找到代码了 不用了 谢谢

回复  |  举报

Dafanzi2016-12-05 17:20

大佬,在你这篇讲解内存池的博文(http://blog.chinaunix.net/uid-28458801-id-4254501.html)中,list.h源文件没有提供啊。你能提供这个博文的完整代码我学习学习吗?能的话发给我邮箱可以吗?brottfan@163.com谢谢啦

回复  |  举报
留言热议
请登录后留言。

登录 注册