
linux 内核
newnewman80
这个作者很懒,什么都没留下…
展开
-
kernel thread简单使用
本节介绍下kernel thread简单使用的例子实验. 我的系统: joseph:/usr/src/linux-2.6.23/joseph# uname -aLinux joseph 2.6.23 #1 SMP PREEMPT Fri May 6 18:02:45 CST 2011 i686 GNU/Linux 文件: ├── hello.c └──转载 2011-11-22 16:18:15 · 6656 阅读 · 0 评论 -
FAT: codepage cp437 not found
FAT: codepage cp437 not found 2012-03-02 11:07:32| 分类:Linux |字号 订阅升级内核至2。6。39 mount 不了fat盘 dmesg出现下述错误:[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).[drm] No drive转载 2012-11-20 18:16:18 · 6577 阅读 · 0 评论 -
Linux的调度程序-Schedule( )
一个好的调度算法应当考虑以下几个方面: (1)公平:保证每个进程得到合理的CPU时间。 (2)高效:使CPU保持忙碌状态,即总是有进程在CPU上运行。 (3)响应时间:使交互用户的响应时间尽可能短。 (4)周转时间:使批处理用户等待输出的时间尽可能短。 (5)吞吐量:使单位时间内处理的进程数量尽可能多。 很显然,这5个目标不可能同时达到,所以,不同的操作系统会在这几转载 2013-02-22 09:29:49 · 1547 阅读 · 0 评论 -
netlink 判断USB热插拔事件
做嵌入式开发,尤其在网关、路由器或者其他支持USB设备的终端上,为了提高用户体验,我们常常需要支持自动识别并挂载USB设备功能。某些应用程序,在使用USB设备的过程中,也希望能够侦测到USB断开事件,不至于某些工作因为USB已经不存在而白做。在Linux下,我们主要有两种办法检测USB热插拔。 第一种便是定时检查/proc/scsi/scsi文件,该文件内会按照标准格式保存着当前设备转载 2013-04-07 11:05:43 · 7683 阅读 · 1 评论 -
定时器 LED 闪烁功能
最近工作中涉及到在一定的时间之后对特定的动作进行处理。比如按键,按键需要在按下至少4S之后,重新启动系统之类、此时使用定时器,可以确保准确的计时。下面的实现可以通用。struct timer_list os_timer_t; //定义定时器#define OS_TIMER_FUNC(_fn) \ void _fn(unsigned long timer_arg)#define OS_转载 2013-06-28 15:19:21 · 2456 阅读 · 0 评论 -
uboot参数区中的bootargs如何传给内核
uboot参数区中的bootargs如何传给内核呢?平台:STi7162uboot版本:uboot 1.3.1(st已做过修改) st平台的内存首地址是0x80000000,此地址不是固定的,不同类型的芯片是不同的,比如samsung的arm920t是0x30000000。uboot提供两种工作模式:一是启动加载模式(start loading),一是下载模式(do转载 2013-07-15 09:27:45 · 1571 阅读 · 0 评论 -
内核驱动读写文件
有时候需要在linux内核中读写文件数据--大多是在需要调试的驱动程序--中读写文件数据。在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主 要有: filp_open()filp_close(), vfs_read() vfs_write(),set_fs(),get_fs()等,这些函数在linux/fs.h和asm/uaccess.h头文件中声转载 2013-07-18 09:17:46 · 4829 阅读 · 1 评论 -
linux 内核定时器详解
linux 内核定时器 timer_list详解http://www.linux-cn.com/html/linux/kernel/20070412/1886.shtml http://linux.ccidnet.com/art/741/20061116/952655_1.htmlLinux内核2.4版中去掉了老版本内核中的静态定时器机制,而只留下动态定时器。相应地在timer_转载 2013-02-28 18:24:02 · 812 阅读 · 0 评论 -
利用qemu进行内核源码级调试
=================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.youkuaiyun.com/gdt_a20=================================概要:看kernel代码的时候,变量多了,就记不清楚了,尤其是读内存部分代码的时候,传来传去,常常不知道改成什么样子了,内存布局到底变成什么了,也转载 2013-08-21 16:59:03 · 869 阅读 · 0 评论 -
Linux设备模型(中)之上层容器
基本概念 总线 Linux设备模型是由总线(bus_type),设备(device),驱动(device_driver)这三个数据结构来描述的。总线是处理器和一个或多个设备之间的通道。在设备模型中, 所有的设备都通过总线相连, 甚至是内部的虚拟“platform”总线(下一篇介绍),注意,这里设备模型中只是为个更好方便管理,所以有些总线是pic,i2c,usb等,但都只是一个分类的名字转载 2013-08-26 15:53:59 · 776 阅读 · 0 评论 -
Linux设备模型(下)之Platform
从Linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device和 platform_driver 。Linux 中大部分的设备驱动,都可以使用这套机制,设备用 platform_device 表示;驱动用platform_driver 进行注册。 platform是一个虚拟的地址总线,相比pci,usb,它主要用于描述SOC上的片上资源,比如s3c2440上集成的控制器(转载 2013-08-26 15:54:40 · 1401 阅读 · 0 评论 -
Linux设备模型(上)之底层模型
以《LDD3》的说法:Linux设备模型这部分内容可以认为是高级教材,对于多数程序作者来说是不必要的。但是我个人认为:对于一个嵌入式Linux的底层程序员来说,这部分内容是很重要的。以我学习的ARM9为例,有很多总线(如SPI、IIC、IIS等等)在Linux下已经被编写成了子系统,无需自己写驱动;而这些总线又不像PCI、USB等在《LDD3》上有教程,有时还要自己研究它的子系统构架,甚至要自己添转载 2013-08-26 15:07:31 · 750 阅读 · 0 评论 -
centos6.5 升级内核
主机环境: centos6.5内核版本: 2.6.32升级版本: 2.6.38步骤1、下载内核版本参考:https://blog.youkuaiyun.com/sinat_36564972/article/details/81560395或下载地址:https://www.kernel.org/pub/linux/kernel/v2.6/获取2.6.38内核版本。2、解压...原创 2019-04-26 15:38:39 · 367 阅读 · 0 评论 -
Linux物理内存管理概述
在内核态申请内存比在用户态申请内存要更为直接,它没有采用用户态那种延迟分配内存技术。内核认为一旦有内核函数申请内存,那么就必须立刻满足该申请内存的请求,并且这个请求一定是正确合理的。相反,对于用户态申请内存的请求,内核总是尽量延后分配物理内存,用户进程总是先获得一个虚拟内存区的使用权,最终通过缺页异常获得一块真正的物理内存。1.物理内存的内核映射IA32架构中内核虚拟地址空间只有1GB大小转载 2012-11-12 23:13:46 · 4227 阅读 · 0 评论 -
coredump简介与coredump原因总结
coredump简介与coredump原因总结什么是coredump?通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。可以理解为把程序工作的当前状态存储成一个文件。许多程序和操作系统出错时会自动生成一个core文件。如何使用coredump?coredump可以用在很多场合,使用Linux,或者solaris的人可能都有过这种经历,系统在跑转载 2012-11-12 13:11:35 · 36787 阅读 · 1 评论 -
kthread_create 简单使用
kthread_create:创建线程。struct task_struct *kthread_create(int (*threadfn)(void *data),void *data,const char *namefmt, ...);线程创建后,不会马上运行,而是需要将kthread_create() 返回的task_struct指针传给wake_up_process(),然后通过此转载 2011-12-07 15:36:39 · 30750 阅读 · 2 评论 -
Linux中/proc目录下文件详解(二)
声明:可以自由转载本文,但请务必保留本文的完整性。作者:张子坚email:zhangzijian@163.com说明:本文所涉及示例均在fedora core3下得到。-----------------------------------------------------------------------------------------------------/proc转载 2012-02-14 16:00:22 · 598 阅读 · 0 评论 -
Linux中/proc目录下文件详解(三)
声明:可以自由转载本文,但请务必保留本文的完整性。作者:张子坚email:zhangzijian@163.com说明:本文所涉及示例均在fedora core3下得到。---------------------------------------------------------------------------------------------------/proc/n转载 2012-02-14 16:03:07 · 690 阅读 · 0 评论 -
手工释放linux内存——/proc/sys/vm/drop_caches
总有很多朋友对于Linux的内存管理有疑问,之前一篇[转]理解Linux的性能日志似乎也没能清除大家的疑虑。而在新版核心中,似乎对这个问题提供了新的解决方法,特转出来给大家参考一下。最后,还附上我对这方法的意见,欢迎各位一同讨论。 当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有转载 2012-02-14 16:15:55 · 611 阅读 · 0 评论 -
基于Linux2.6.35内核的zImage启动过程研究
环境: 硬件平台:ARM9 S3C2440 TQ2440开发板。 软件环境:VM7.1虚拟机;Fedora10;arm-linux-gcc 4.3.3;Linux2.6.35;u-boot2010.06(天嵌原版本)一、 zImage、uImage和vmLinux相关概念当正确配置完内核后,采用make zImage 、make bzImag转载 2012-05-16 11:04:10 · 2359 阅读 · 0 评论 -
利用消息队列来实现IPC
本程序的功能是利用系统V(Sys V)消息队列来实现进程间的通信(IPC). 简单地介绍程序: 用到的一个数据结构-------消息,用一个结构体来表示: struct msgbuf {long mtype; // 消息的类型 char mtext[1 ]; // 消息的内容,并不是表示只存一个字符 }转载 2012-10-31 13:49:49 · 759 阅读 · 0 评论 -
内核停顿于“Sending DHCP requests”
解决:在uboot的bootarg参数里设置静态IP地址,配合UBOOT环境变量设置:setenv ethaddr setenv ipaddr setenv serverip setenv netmask setenv gatewayip等等。bootargs=noinitrd root=/dev/nfs rw nfsroot=192.168.1.88:/home/nfs/r原创 2012-10-31 18:50:30 · 3917 阅读 · 0 评论 -
系统处理 IRQ_EINT0 IRQ_EINT11 的过程
系统处理 IRQ_EINT0 IRQ_EINT11 的过程主要分析系统处理 IRQ_EINT0 IRQ_EINT11 的过程。 2440处理器的中断组织成两层:主中断 和 次中断,一共可以处理60个中断源。 主中断 和 次中断 经过中断构架的抽象之后,编写驱动程序时,我们不用考虑这两层中断,直接使用request_irq 注册 60个中断源的某个,就可以直接使用中断了。转载 2012-10-23 16:32:15 · 7828 阅读 · 0 评论 -
yaffs2 支持linux内核操作
1.从http://www.yaffs.net/download-yaffs-using-git网址下载得到yaffs和yaffs2的源文件2.解压后,进入到yaffs2目录下,通过yaffs2目录下的脚本文件patch-ker.sh来给内核打补丁使用命令即可实现./patch-ker.sh c /home/linux-2.6.32.2上面这个命令完成了三件事情(也可以手动修改实现)转载 2012-11-06 10:05:57 · 1883 阅读 · 0 评论 -
mini2440移植linux-2.6.32.7内核
题记:linux内核移植的文章网上很多,而且有的还写的非常好。本篇不期望起到多大的作用,只是梳理一下自己移植的步骤,适当加入自己的点滴理解,方便日后查阅。如有错误,欢迎指正!友情提示:1.按照正常步骤移植linux-2.6.32.7内核会出现下面的错误:kernel/time/clocksource.c: In function 'clocksource_register':ker转载 2012-11-09 15:33:02 · 678 阅读 · 0 评论 -
Uncompressing Linux..... done, booting the kernel.
内核启动卡在Uncompressing Linux..... done, booting the kernel.这好像是个老生常谈的问题了。成因在网上也罗列了很多种,可这次我碰到的,却没百度出解决方法,纠结了我很久才解决。我先把造成Uncompressing Linux..... done, booting the kernel.的常见的几种可能再罗列一下1、机器码不匹配解决方法:在配转载 2012-11-09 14:36:27 · 689 阅读 · 0 评论 -
内核调试技术
1.调试技术内核编程带来了它自己的,独特的调试挑战。内核代码不能简单地在调试器中执行,也不能被简单地跟踪,因为它是一组不与特定进程相关的功能。内核代码的错误非常难重现并且可能导致整个系统崩溃,因此破坏很多用来发现它们的证据。本章将介绍在如此恼人的情况下你可以用来监视内核代码和跟踪错误的技术。1.1.内核中的调试支持在第二章中,我们建议你编译和安装你自己的内核,而不是运行你所使用的发转载 2012-11-07 15:10:28 · 10543 阅读 · 2 评论 -
什么是OPTEE-OS
1. 为什么会出现这种技术?为了安全,例如:保护指纹虹膜的生物特征数据2. 为了确保数据安全各家公司都做了些什么?Arm公司提出的了trustzone技术,用一根安全总线(称为NS位)来判断当前处于secure world还是non-secure world状态,状态的切换由ATF(arm trusted firmware)来完成3. 有哪些Normal world osLin...转载 2019-05-10 14:36:08 · 764 阅读 · 0 评论