- 博客(9)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 函数指针的调用
#include #include #include void test(int);int main(){void (*fp)(int);fp=test;(*fp)(9); fp(9); return 0;}void test(int a){printf( "%d\n", a );
2017-01-23 09:59:24 404
原创 Linux的cpufreq(动态变频)技术
linux低功耗研究也有一段时间了,基本把低功耗的实现方式想清楚了(主要分成机制和策略),这段时间的工作主要在机制上。暂时想实现的主要的机制有:cpu级,设备驱动级,系统平台级。管理颗粒度不断递增,形成三驾马车齐驱的形势。 cpu级:主要实现比较容易的在系统处于目标在于频繁发生、更高粒度的电源状态改变,主要的实现方式为idle,包括今天的主要想讲的动态主频。设备驱动级:主要
2017-01-21 14:47:15 1204
原创 内核调试的一些配置
学习编写驱动程序要构建安装自己的内核(标准主线内核)。最重要的原因之一是:内核开发者已经建立了多项用于调试的功能。但是由于这些功能会造成额外的输出,并导致能下降,因此发行版厂商通常会禁止发行版内核中的调试功能。1 内核配置为了实现内核调试,在内核配置上增加了几项: Kernel hacking ---> [*] Magic SysRq key [*]
2017-01-21 14:41:07 434
原创 内核调试的几种方法
1.首先在编译生成内核的时候同时生成了一个vmlinux,使用gdb。 在内核配置时,make menuconfig 要打开complie with debug info选项。 注意这行: PC is at skb_release_data+0x74/0xc4 这告诉我们,skb_release_data函数有0xc4这么大,而Oops发生在0x74处。 那么我
2017-01-21 14:31:58 3107
转载 DVFS--动态电压频率调整
Linux低功耗研究也有一段时间了,基本把低功耗的实现方式想清楚了(主要分成机制和策略),这段时间的工作主要在机制上。暂时想实现的主要的机制有:cpu级,设备驱动级,系统平台级。管理颗粒度不断递增,形成三驾马车齐驱的形势。 cpu级:主要实现比较容易的在系统处于目标在于频繁发生、更高粒度的电源状态改变,主要的实现方式为idle,包括今天的主要想讲的动态主频。
2017-01-21 10:01:44 788
转载 全志A10/A20 Bootloader加载过程分析
原文 : http://blog.csdn.net/allen6268198/article/details/12905425从这里开始:http://linux-sunxi.org/Bootable_SD_card代码仓库:https://github.com/linux-sunxiA10/A20 Bootloader加载过程分析注:由于全志A10和A20在加载
2017-01-20 16:06:46 1049
转载 rootfs
rootfs仅仅是符合VFS规范的而且又具有如上3个特点的一个文件系统说明:本文基于Linux2.6.29内核分析;其他内核版本仅供参考。Android2.3及Linux2.6.29内核模拟器版本编译与调试 前边通过源码情景分析,看过了总线、设备、驱动及其发现机制,Linux2.6内核udev设备节点创建相关;对于文件系统,一直望而生畏,但内核学习、这部分
2017-01-20 14:19:58 9353
原创 initramfs
nitramfs是在ramfs的cache实现上加了一层很薄的封装,其他内核开发人员编写了一个改进版tmpfs,这个文件系统上的数据可以写出到交换分区,而且可以设定一个tmpfs装载点的最大尺寸以免耗尽内存。initramfs就是tmpfs的一个应用。最初的想法是Linus提出的: 把cache当作文件系统装载。他在一个叫ramfs的cache实现上加了一层很薄的封装,其他内核
2017-01-20 10:32:52 528
转载 根据内核Oops 定位代码
内核开发时有时候出现Oops,例如一个野指针会导致内核崩溃,如运行时出现以下log:现在有三种方法可以找出具体出现野指针的地方[plain] view plain copy print? 5.438972] bells bells: wm5102-aif1 samsung-i2s.0 mapping ok [ 5.4438
2017-01-13 10:35:04 469
TA创建的收藏夹 TA关注的收藏夹
TA关注的人