“当遇到烦恼时,男人通常会选择呆在自己的洞穴里,而女人习惯通过倾诉释放压力。。。”
OMG我变成女人了!今晚和本森同学闲话家常,对话中满是层出不穷的八卦!爆点!某人竟然宣称他单身!某人竟然对我隐瞒重要的事实真相!某人和某人第一次见面就~!@#¥%……
不过我口风超严,所以有秘密的同学可以放心我什么都没有说!Trust me!
嗯今晚天气很好很适合晒衣服!就这样!
彪悍的代码不需要注释
【问题】
此处我要实现的是将芯片的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内核启动中的驱动初始化顺序
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区别