乐于学习与分析
http://blog.pfan.cn/xman/44320.html Windbg是微软开发的免费源码级调试工具。
https://banu.com/blog/2/how-to-use-epoll-a-complete-example-in-c/ Thursday, 2 June 2011 @ 1...
https://github.com/felipecruz/rio/blob/master/src/network.
#include #include #include #include #include #include #include #include #include #inc...
SPI协议是一种同步的串行数据连接标准,由摩托罗拉公司命名,可工作于全双工模式。相关通讯设备可工作于m/s模式。主设备发起数据帧,允许多个从设备的存在。每个从设备 有独立的片选信号,SPI一般来说是四线串行总线结构。
android调试crash——反汇编转一位大牛的博文,对作者敬礼。以前也遇见过同样的问题,当时想的就是通过其他方法绕过去。看到大牛的解决方案,的确佩服万分。其实,以前在Moto的时候,遇见Core Dump问题几乎就是用同样方法来定位的。
http://www.developer.nokia.com/Community/Wiki/QML%E4%B8%8EQt_C%2B%2B_%E4%BA%A4%E4%BA%92%E6%9C%B...
可以接收链路层MAC帧的原始套接字 前面我们介绍过了通过原始套接字socket(AF_INET, SOCK_RAW, protocol)我们可以直接实现自行构造整个IP报文,然后对其收发。
转自一个高手:(郁闷的是字体怎么老是出问题呀,都修改编辑里好几遍了!) http://blog.csdn.net/zhenwenxian/article/details/4804968 关于这一部分的blog,所有的内容均摘自自己的工作总结笔记,在很多网站都发现了自己写的技术总结的转载感到很高兴,虽然我还是个菜鸟,但是我会继续努力。
基于原始套接字编程 在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证: 也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进行赤裸裸的修改,当然还有IP头。
1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。 【硬连接】硬连接指通过索引节点来进行连接。
提起数码产品的接口,大家都能列举出一大片,什么S端子、AV端子、色差分量接口、VGA接口、DVI接口……而说到HDMI数字信号接口,消费者更不会陌生,作为最新一代的数字接口,HDMI已经广泛应用于各种数码产品上,不管是平板电视、DVD碟机、高清播放机,还是投影仪、数码摄像机、液晶显示器,以及蓝光DVD和HD DVD,都少不了HDMI数字信号接口的身影。
u-boot支持许多CPU,以及一些常见的开发板。本文以u-boot-2011.06这个最新版本为例,简要介绍一下u-boot在smdk2410上的启动流程。 首先系统是从arch/arm/cpu/arm920t目录下的start.
一、核心数据结构串口驱动有3个核心数据结构,它们都定义在1、uart_driveruart_driver包含了串口设备名、串口驱动名、主次设备号、串口控制台(可选)等信息,还封装了tty_driver(底层串口驱动无需关心tty_driver)。
poll_wait不会挂起当前进程,而是把自己注册到某个事件等待队列中. poll_wait()是用在select系统调用中的. 一般你的代码会有一个struct file_operations结构, 其中fop->poll函数指针指向一个你自己的函数, 在这个函数里应该调用poll...
本文来自“The most stupid C bug ever”,很有意思,分享给大家。我相信这样的bug,就算你是高手你也会犯的。你来看看作者犯的这个Bug吧。。 首先,作者想用一段程序来创建一个文件,如果有文件名的话,就创建真正的文件,如果没有的话,就调用?tmpfile()?创建临时文件。
有人在酷壳的留言版上询问下面的问题 keep_walker :今天晚上我看到这篇文章。http://programmers.stackexchange.com/questions/62502/small-c-projects 我也遇到了和提问的老外一样的问题。
月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。
软中断(softIRQ)是内核提供的一种延迟执行机制,它完全由软件触发,虽然说是延迟机制,实际上,在大多数情况下,它与普通进程相比,能得到更快的响应时间。软中断也是其他一些内核机制的基础,比如tasklet,高分辨率timer等。
摘要:本文主要讲述linux如何处理ARM cortex A9多核处理器的内存管理部分。主要包括对伙伴系统算法流程的介绍。 法律声明:《LINUX3.0内核源代码分析》系列文章由谢宝友(scxby@163.com)发表于http://xiebaoyou.blog.chinaunix.net,文章中的LINUX3.0源代码遵循GPL协议。
摘要:本文主要讲述linux如何处理ARM cortex A9多核处理器的内存管理部分。主要包括对页面释放流程的介绍。 法律声明:《LINUX3.0内核源代码分析》系列文章由谢宝友(scxby@163.com)发表于http://xiebaoyou.blog.chinaunix.net,文章中的LINUX3.0源代码遵循GPL协议。
摘要:本文主要讲述linux如何处理ARM cortex A9多核处理器的内存管理部分。主要包括对页面分配函数的介绍。 法律声明:《LINUX3.0内核源代码分析》系列文章由谢宝友(scxby@163.com)发表于http://xiebaoyou.blog.chinaunix.net,文章中的LINUX3.0源代码遵循GPL协议。
摘要:本文主要讲述linux如何处理ARM cortex A9多核处理器的内核同步部分。主要包括其中的内存屏障、原子变量、每CPU变量。 自旋锁、信号量、complete、读写自旋锁、读写信号量、顺序锁、RCU放在后文介绍。
摘要:第二章主要讲述linux如何处理ARM cortex A9多核处理器的中断、异常。介绍了中断向量表的入口、通用的中断处理代码、中断和软中断、延迟处理、中断异常的返回过程。 第二章内容较多,会分几个部分讲述。
摘要:本章主要介绍了LINUX3.0内存寻址方面的内容,重点对follow_page函数进行注释,以帮助读者大致了解ARM A9的页表组织。 读者需要理解一些基本概念:虚拟地址、物理地址、MPU、MMU、ARM中的二级页表、cache、TLB。
将磁盘格式化为FAT12文件系统. Source code: 点击(此处)折叠或打开 ;%define _BOOT_DEBUG_ ; 做 Boot Sector 时一定将此行注释掉!将此行打开后用 nasm Boot.
分区只是内核的概念,就是说A~B地址放内核,C~D地址放文件系统,(也就是规定哪个地址区间放内核或者文件系统)等等。 1:在内核MTD中可以定义分区A~B,C~D。。。。。。并予以绝对的地址赋值给每个分区。
总的来分,Linux文件系统分为两类,基于Flash和基于RAM的文件系统。两者的特点是,基于Flash的文件系统是掉电可保存的,但对于RAM的文件系统掉电是会丢失的。 一、基于Flash的日志型的文件系统 1、只读的CramFS文件系统简介 CramFS是一个压缩式的文件系统,它并不需要一次性的将文件系统中的所有内容都解压缩到内存之中,而是在系统需要访问某个位置的数据时,首先计算出该数据在CramFS文件系统中的位置,将这段数据实时地解压缩到内存中,而不是所有的数据。
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。 共享资源,欢迎转载:http://hbhuanggang.
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。 共享资源,欢迎转载:http://hbhuanggang.
共享内存是系统出于多个进程之间通讯的考虑,而预留的的一块内存区。在/proc/sys/kernel/目录下,记录着共享内存的一些限制,如一 个共享内存区的最大字节数shmmax,系统范围内最大共享内存区标识符数shmmni等,可以手工对其调整,但不推荐这样做。
定位oops的具体代码行 来自Linus Torvalds的讨论: https://groups.google.com/group/ ... 41/ed9c0a0cfcd31111 例如这样的一个Oops: Oops: 0000 ...
在Linux下,通过bluez 蓝牙库可以用C语言轻松实现蓝牙通信。在ubuntu下可以用 apt-get install libbluetooth-dev 安装该库。下面是几个简单示例。
一、 概述 U-boot中的TFTP用于发送较小的文件。下层使用UDP协议,发送使用UDP 69端口,每次发送的最大分组为512 Bytes。发送双方采用超时重传机制。
使用Bochs和GDB对内核进行源代码级调试 Written by YY Wednesday, 21 April 2010 12:49 http://osfromscratch.
很多版本的Linux都是关闭core dump功能的。可以使用ulimit –c来判断当前系统是否启用core dump。 点击(此处)折叠或打开 $ulimit –c 0 -c为内核core dump文件大小限制,0表示该系统没有开启core dump,可以使用下边的命令来开启core dump。
前段时间对内核的模块重新做了研究,对内核模块的编译流程也作了一定的了解,比起5年前有更深入的认识。 根据LDD3的内核模块makefile和原理说明,我根据自己的需要做了适当的修改使得这个Makefile脚本可以方便被应用于不同的简单模块编译,并可以在模块需要编译进内...
开发板上只有Nor Flash,所以为了实现层次文件系统,需要为Linux2.6.20增加Nor Flash MTD驱动支持。其实工作量并不大,因为已经有现成的程序可供参考。MTD的驱动程序都集中在drivers/mtd里面。
觉得这位同学关于内存动态分配讲的很通俗易懂,所以转载了:)现象 1 压力测试过程中,发现被测对象性能不够理想,具体表现为: 进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约70 2 用ps -o majflt,minflt -C program命令查看,发现majflt每秒增量为0,而minflt每秒增量大于10000。
隐患 1.忽略返回状态 第一个隐患很明显,但它是开发新手最容易犯的一个错误。如果您忽略函数的返回状态,当它们失败或部分成功的时候,您也许会迷失。反过来,这可能传播错误,使定位问题的源头变得困难。
S3C2440内部集成了一个Nand flash控制器。S3C2440的Nand flash控制器包含了如下的特性: l 一个引导启动单元 l Nand Flash存储器接口,支持8位或16位的每页大小为256字,512字节,1K字和2K字节的Nand flash l 软件模式:用户可以直接访问Nand Flash存储器,此特性可以用于Nand Flash存储器的读、擦除和编程。
移植路上真是荆棘满路,时不时让你疯狂一两天,却无可奈何... 网上已有很多相关的移植教程,第一步,当然是照着做。问题是我的Linux是2.6.19.2,与前些版本相比(据查,2.6.17版还在),在移植过程中,我发现有两个变化。
Linux-2.6.20的cs8900驱动分析 几经波折,在开发板上终于可以使用网络了。Linux 内核可以通过网络挂接网络文件系统了。首先感谢Internet ,Google 等帮助过我的工具,还要感谢各位嵌友的无私奉献。
gcc的学习在C接触到linux以后就开始不断的学习,也知道了一些基本的用法,但是关于gcc的使用还是有很多值得我们加深的地方。gcc只是一个编译工具而已。也就相当于我们在windows环境下的visual c++等一样,区别是visual c++是基于IDE的,而gcc是这些IDE的基础。
u-boot引导友善之臂Linux内核 作者:kangear Email:kangear@163.com Blog:kangear.blog.chinaunix.net 当我刚接触u-boot时,不想自产自用,先用人家移植好的。
编写 USB 驱动程序 (本部分的一些示例源码来自drivers/usb/usb-skeleton.c,它是Linux内核为我们提供的最基础的USB驱动程序,USB骨架程序) 驱动程序把驱动对象注册到 USB 子系统中,之后使用供应商(idVendor)和设备(idProduct)标识来判断对应的硬件是否已经安装.
xxd的作用就是将一个文件以十六进制的形式显示出来,具体选项如下。 -a : 它的作用是自动跳过空白内容,默认是关闭的 -c : 它的后面加上数字表示每行显示多少字节的十六进制数,默认是16字节。
在上一篇博文里,我们已经看到Linux如何有效地利用80x86的分段和分页硬件单元把逻辑地址转换为线性地址,在由线性地址转换到物理地址。那 么我们的应用程序如何使用这些逻辑地址,整个内存的地址布局又是怎样的?打一个比方,内存就像一座城市,而居住在这个城市里的市民就像是各个进程,一个市 民吃喝拉撒睡,当然就得用于“房子”、“车子”、“票子”等各种各样的资源。
这段代码还是比较容易理解的.就不单独解释了。 点击(此处)折叠或打开 /* Copy some data bits from skb to kernel buffer. */ int skb_copy_bits(const struct sk_buff *skb, int o...
JTAG相关的理论基础 理论基础内容来源于中国芯动力网站论坛:http://socvista.com/bbs/viewthread.php?tid=1468,经过了本人的重新组织。