不然你要我怎么样

彪悍的代码不需要注释

Archive for the ‘Embedded’ Category

【转贴】如何调整Linux内核启动中的驱动初始化顺序

leave a comment

【问题】

此处我要实现的是将芯片的ID用于网卡MAC地址,网卡驱动是enc28j60_init,但是,读取芯片ID的函数,在as352x_afe_init模块中,所以要先初始化as352x_afe_init。此处,内核编译完之后,在生成的system.map中可以看到,enc28j60_init在as352x_afe_init之前,所以,无法去读芯片ID。所以我们的目标是,将as352x_afe_init驱动初始化放到enc28j60_init之前,然后才能读取芯片ID,才能用于网卡初始化的时候的,将芯片ID设置成网卡MAC地址。

【解决过程】 Read the rest of this entry »

转载请注明: 转载自不然你要我怎么样
本文链接地址: 【转贴】如何调整Linux内核启动中的驱动初始化顺序

Written by xiangmocheng

九月 10th, 2009 at 5:13 下午

Posted in Embedded,Linux

Tagged with ,

kmalloc vmalloc malloc区别

3 comments

kmalloc()和vmalloc()介绍

kmalloc()

用于申请较小的、连续的物理内存

1. 以字节为单位进行分配,在<linux/slab.h>中

2. void *kmalloc(size_t size, int flags) 分配的内存物理地址上连续,虚拟地址上自然连续

3. gfp_mask标志:什么时候使用哪种标志?如下:

———————————————————————————————-
情形                                                  相应标志
———————————————————————————————-
进程上下文,可以睡眠                  GFP_KERNEL
进程上下文,不可以睡眠               GFP_ATOMIC
中断处理程序                            GFP_ATOMIC
软中断                                    GFP_ATOMIC
Tasklet                                  GFP_ATOMIC
用于DMA的内存,可以睡眠         GFP_DMA | GFP_KERNEL
用于DMA的内存,不可以睡眠     GFP_DMA | GFP_ATOMIC
———————————————————————————————-

4. void kfree(const void *ptr)

释放由kmalloc()分配出来的内存块
Read the rest of this entry »

转载请注明: 转载自不然你要我怎么样
本文链接地址: kmalloc vmalloc malloc区别

Written by xiangmocheng

九月 9th, 2009 at 2:23 下午

Posted in Embedded,Linux

Tagged with , ,

【转贴】Linux kernel 2.6.27内核编译配置选项(一)

leave a comment

原文参见这里

—————————————————

General setup
常规设置

Read the rest of this entry »

转载请注明: 转载自不然你要我怎么样
本文链接地址: 【转贴】Linux kernel 2.6.27内核编译配置选项(一)

Written by xiangmocheng

六月 9th, 2009 at 4:42 下午

Posted in Embedded,Linux

Tagged with