- 博客(14)
- 资源 (12)
- 收藏
- 关注
原创 Linux应用程序Makefile模版
本文在 http://sourceforge.net/projects/gcmakefile/ 的成果上改进得来。主要修改如下:1.去掉了说明部分,使得模版更简洁; 模版本身已经具备自说明特性。2.去掉自动生成目标名称部分; 目标名称必须指定。3.%.d文件替换为.%.d文件, 即隐藏了依赖文件, 使得源代码目录编译后看起来更简洁.4.如果不指定源代码目录(SRCDIRS),
2012-04-24 10:54:21 2909
转载 跟我一起写 Makefile(转)
本文只是将原文系列连载贴在了一起,方便阅读, 也方便自己学习。原文作者: 陈皓; 出处如下:http://blog.csdn.net/haoel/article/details/2886http://blog.csdn.net/haoel/article/details/2887http://blog.csdn.net/haoel/article/details/2888
2012-04-20 22:47:17 943
原创 Linux 2.6内核驱动模块Makefile模版
这个模版非常简洁,单目录下增减源文件时无需修改。注意模块的编译有两次make调用的过程,这两次过程之间Makefile中定义的变量是无法自动传递的,所以必须通过命令行来传递。 KVERS = $(shell uname -r)# Kernel modulesMODNAME=testobj-m := $(MODNAME).oOBJS = $(patsubs
2012-04-20 16:57:48 1032
原创 基于netfilter机制的IP数据包过滤驱动模版
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if L
2012-04-20 16:32:52 1635
原创 使用netlink机制实现内核空间和用户空间的双向消息通讯
linux内核2.6版本中提供的各种用户空间和内核空间的通讯机制中, 只有netlink机制能够提供类似于Windows内核中事件通知机制类似的通信能力: 既可以从内核空间主动发消息给用户空间(Windows上是KeSetEvent; linux上是netlink_unicast/netlink_broadcast), 也可以在用户空间阻塞等待唤醒(Windows是WaitForSingleObj
2012-03-29 00:08:03 5756
原创 内核空间到用户空间的共享内存映射
当内核空间和用户空间存在大量数据交互时, 共享内存映射就成了这种情况下的不二选择; 它能够最大限度的降低内核空间和用户空间之间的数据拷贝, 从而大大提高系统的性能.以下是创建从内核空间到用户空间的共享内存映射的模板代码(在内核2.6.18和2.6.32上测试通过):1.内核空间分配内存:#include #include #include int mmap_
2012-03-28 22:20:33 5060
原创 linux内核中分配4M以上大内存的方法
在内核中, kmalloc能够分配的最大连续内存为2的(MAX_ORDER-1)次方个page(参见alloc_pages函数, "if (unlikely(order >= MAX_ORDER)) return NULL;"), page的大小一般是4K bytes,MAX_ORDER缺省定义为11, 所以如果不修改内核, kmalloc能够分配的最大连续内存一般是4M
2012-03-28 00:05:35 6793
转载 转载: grub2基础教程-修订版
注意:/etc/grub.d/00_header中的timeout是同一操作系统(即某一磁盘分区下的linux或windows系统)不同启动选项菜单(对于windows, 核心相同, 仅启动参数不同; 对于linux, 内核和启动参数可能都不同)之间的选择等待时间./etc/grub.d/30_os-prober中timeout是主机上不同操作系统(在不同的磁盘分区)之间的选择等待时间
2012-03-27 23:25:53 1296
原创 使用KGDB调试内核和模块
内核空间的代码(包括内核和模块)无法像应用程序那样使用gdb进行简单直观的调试.代码调试一般有两种方法: 一种是通过调试器辅助调试, 如gdb, Visual C++的集成调试环境, JTAG仿真器的集成调试环境; 这种调试方法可以对代码进行单步跟踪, 所以一次运行基本上就可以排查一条运行路径; 也可以在程序出错时检查调用栈信息, 从而迅速定位问题所在; 所以这种调试方法尤其适合于初期
2012-03-27 23:02:40 8852 2
原创 修改Linux内核启动参数
内核启动参数一般保存在 /boot/grub/menu.lst (对应"kernel"开头的行) 或者 /boot/grub/grub.cfg (对应linux开头的行)文件中, 系统启动时由grub引导并传递给内核. 以下是/boot/grub/menu.lst文件中的示例片段: title Fedora Core (2.6.18-1.2798.fc6)
2012-03-27 22:22:53 18853 1
原创 Linux内核编译简略步骤
在内核源代码目录下执行以下步骤:1."make mrproper", 清理源代码目录, 对于刚下载的内核, 可省略该步骤2."make menuconfig", 直接保存默认配置即可(一般默认配置就是发行版的默认配置), 也可根据需要修改相关配置.3."make dep", 检查模块间的依赖关系4."make bzImage", 编译内核5."make modu
2012-03-27 20:07:22 2118
原创 Linux系统终端界面(非图形界面)分辨率修改方法
Linux系统终端界面的默认分辨率是640x480, 能够显示的字符长度和行数非常有限, 非常不方便. 在对驱动进行调试时, 如果希望实时看到printk的打印, 则必须在原始终端界面下, 在GNOME图形界面下的仿真终端中是无法实时看到printk打印的信息的. 所以终端界面的分辨率调大一些非常有意义.调整方法:1.首先要修改终端界面的分辨率需要内核支持, 在make menuc
2012-03-27 19:24:00 6813
原创 VMWare虚拟机Bridged类型网卡ping不通的原因和解决办法
VMWare虚拟机下 Bridged类型网卡 可以使虚拟机和主机处于同一物理网络内, 纯粹从网络连接上来讲, 此时的虚拟机和主机本身已经没有任何区别, 所以非常适合用于在虚拟机中基于网络对嵌入式系统的进行调试开发.但当主机上存在多个物理网卡或虚拟网卡时, 一旦其中的某个网卡发生断开或禁用/启用之类的操作, 则虚拟机中Bridged类型网卡的IP地址往往就会出现ping不通的现象, 一旦
2012-03-27 18:31:05 32101 3
原创 Windows下VMWare虚拟机串口设置
VMWare可以使用命名管道在两个虚拟机之间模拟串口, 这在同一主机上的两台虚拟机之间需要通过串口进行通信时非常方便, 使用kgdb调试linux内核就是其典型的应用.具体操作: --> "Edit virtual machine settings"--> "Add..."硬件设备--> 选择"Serial Port"--> 点击 "Next" 并选择 "Out
2012-03-27 17:57:11 11525
华为公司是如何开展信号完整性与电源完整性分析研究工作的姜向中.pdf
2020-02-25
集成电路制造工艺介绍.rar
2020-02-25
CSR Bluelab开发文档——Implementing Streams in BlueLab
2012-04-11
CSR Bluelab开发文档——VM Memory Mapping and Memory Usage
2012-04-11
CSR Bluelab开发文档——Guide to BlueLab Libraries
2012-04-11
CSR Bluelab开发文档——Writing BlueCore Applications
2012-04-11
BC417143B-GIQN-E4/BC417143B-GIRN-E4数据手册
2012-04-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人