![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux内核
文章平均质量分 60
内核态开发与测试
eeblacksmith
这个作者很懒,什么都没留下…
展开
-
RWXSP权限
r = readw = writex = executes = sharedp = private (copy on write)原创 2022-04-10 11:04:05 · 154 阅读 · 0 评论 -
POSIX
posix是什么都不知道,就别说你懂Linux了! - 云+社区 - 腾讯云转载 2021-11-03 22:09:36 · 86 阅读 · 0 评论 -
Linux内存管理 (22)内存检测技术(slub_debug/kmemleak/kasan)
Linux常见的内存访问错误有:越界访问(out of bounds) 访问已经释放的内存(use after free) 重复释放 内存泄露(memory leak) 栈溢出(stack overflow)不同的工具有不同的侧重点,本章主要从slub_debug、kmemleak、kasan三个工具介绍。kmemleak侧重于内存泄露问题发现。slub_debug和kasan有一定的重复,部分slub_debug问题需要借助slabinfo去发现;kasan更快,所有问题独立上转载 2021-10-29 23:05:24 · 1675 阅读 · 0 评论 -
如何测试Linux内核
本文翻译自:https://embeddedbits.org/how-is-the-linux-kernel-tested/ How is the Linux kernel tested?您是否想过如何测试Linux内核?如何维护Linux内核这一使用了全球数千名程序员开发的,数百万行代码的开源项目的质量?这不是一件容易的事。但这并不意味着这是一件不可能的事!大约每3个月(10到12周)就会发布一个新的Linux内核版本。在此期间,将为“合并窗口”保留2周的时间,其中所有已开发和批准的内容都..转载 2021-07-08 11:09:14 · 1120 阅读 · 0 评论 -
linux的中断子系统简介(汇编和hard irq部分)_ARM平台(S5PV210)
2011年9月份时候做的笔记, 当时阅读中断子系统的代码后做的一个PPT, 内核版本不记得了, 硬件平台是samsung 的S5PV210.这部分主要是针对汇编和hard irq的部分, 在hard irq处理后的softirq的处理, 以及下半部的处理(tasklet/workqueue)都没有涉及.原创 2015-01-04 10:07:37 · 1839 阅读 · 1 评论 -
Linux内核驱动开发之KGDB单步调试内核(kgdboc方式)
之前用KGDBOC调试过内核, 但是当时的PPT找不到了, 网上google了一下, 下面这篇文章介绍的比较详细, 转载备份.文章原始出处:http://blog.csdn.net/gqb666/article/details/9117597,作者:gqb666 作者还有一篇文章是 http://blog.csdn.net/gqb_driver/article/details/9转载 2015-01-05 16:43:14 · 719 阅读 · 0 评论 -
Android/Linux内核驱动相关经典书籍大合集(Linux驱动工程师必备)
文章原始出处:http://blog.csdn.net/gqb666/article/details/8790680,作者:gqb666 博主从事嵌入式Linux内核驱动开发工作,在工作学习中收集了一些Linux内核驱动开发相关的经典书籍,最近将这些经典书籍陆续以资源的形式传到了CSDN上,希望能给同行以帮助,但因为博主下载积分级别关系,还有些经典书籍(像《深入Linux内核架构中文版》(现转载 2015-01-05 17:00:11 · 913 阅读 · 0 评论 -
Kernel low-level debugging functions linux汇编的调试方法
2011年7月份收藏的一片文章, 原标题是"Kernel low-level debugging functions linux汇编的调试方法". 现在在http://blog.chinaunix.net/uid-21961753-id-1810659.html, 不知道博主是不是作者本人.当时用这个方法解决了一个手机项目的一个bug (接USB,按音量键后无法开机).转载 2015-01-05 16:22:11 · 1282 阅读 · 0 评论 -
kernel workqueue 一点使用注意事项
keventd_wq 是kernel里面全局的一个workqueue, 相关的接口有:schedule_workschedule_work_on(特定cpu)schedule_delayed_workschedule_delayed_work_on(特定cpu)flush_scheduled_work每个cpu上都有一个events的kernel thread去处理keve原创 2015-03-05 11:19:16 · 1128 阅读 · 0 评论 -
Freescale i.MX6 Linux Ethernet Driver驱动源码分析(一)
转载地址:http://blog.163.com/thinki_cao/blog/static/8394487520146308450620/ 最近需要在Freescale i.MX6上移植Ethernet AVB的内核patch,Ethernet AVB的Wiki:http://en.wikipedia.org/wiki/Audio_Video_Bridging,而Fr转载 2015-04-16 16:12:56 · 3523 阅读 · 0 评论 -
Freescale i.MX6 Linux Ethernet Driver驱动源码分析(二)
转载地址:http://blog.163.com/thinki_cao/blog/static/8394487520147191712154/ 上一篇文章分析了Freescale i.MX6 Linux Ethernet Driver的device的添加和driver的加载过程,接下来分析fec_enet_init()函数:首先提一点这个函数的声明是static int转载 2015-04-16 16:27:57 · 2200 阅读 · 0 评论 -
USB GADGET测试小程序
之前写的跑在FPGA上的测试USB GADGET的功能(HID)的小程序.#include #include #include #include #include #include #include #include #include #define BUF_LEN 512struct options { const char *opt; unsigned原创 2015-04-21 15:11:54 · 700 阅读 · 0 评论 -
bitbang
之前看过linux下的SPI bitbang驱动, 但是当时没弄明白为什么叫bitbang. 以下是一些google的信息.WhatIs Bit-Banging?Bit-bangingis a method of using general-purpose I/O lines to emulate a serial port.Microcontrollers that in原创 2016-07-29 10:35:44 · 2161 阅读 · 0 评论 -
Linux下/dev/mem和/dev/kmem的区别
来自 http://blog.csdn.net/williamwanglei/article/details/8636564Linux下/dev/mem和/dev/kmem的区别:/dev/mem: 物理内存的全镜像。可以用来访问物理内存。/dev/kmem: kernel看到的虚拟内存的全镜像。可以用来访问kernel的内容。作用:前者用来访问物理转载 2014-12-15 17:17:21 · 964 阅读 · 0 评论 -
mips板子上跑usb_modeswitch遇到问题记录
4, 5年前在做手机产品的时候, 也移植过usb_modeswitch到ARM的板子上, 当时的版本已经不记得了.这两天在弄mips板子上的移植工作, 到官网看了下, 版本已经到了2.2.0, 依赖的usblib也是新的1.0版本了, 不再兼容原来的0.1版本. 此外还有个usb-modeswitch-data package (2014-05-29)的数据库的东东.原创 2014-12-05 17:32:18 · 4077 阅读 · 0 评论 -
Page table, TLB, Cache简介(x86)
分页模型以x86为例, intel的处理器的分页单元处理4kB的页, 32位的线性地址(虚拟地址)被分为3个域: -Directory, 目录, 最高10位 -Table, 页表, 中间10位 -Offset, 偏移, 低12位 -正在使用的页目录的地址放在控制寄存器CR3中, directory字段决定页目录中的目录项, 而ta原创 2014-12-31 16:39:58 · 5921 阅读 · 0 评论 -
linux I2C 驱动小结
老样子, 自己看code的一点小结, 文字均为原创. 转发请注明出处.1. 重要的结构体struct i2c_driver { int id; unsigned int class; /* Notifies the driver that a new bus has appeared. This routine * can be原创 2014-12-15 17:56:20 · 531 阅读 · 0 评论 -
Linux下清除缓存 drop_caches, sysctl
转自 http://blog.csdn.net/sky_qing/article/details/89884611. 用命令 free -m 查看一下内存的使用情况:然后清除缓存后再来查看一下内存的使用情况:前后对比可发现,缓存由之前的110M缩小到了25M,效果比较明显。2. 下面说一下 drop_caches:清空 pagecache:转载 2014-12-15 16:30:29 · 14019 阅读 · 7 评论 -
linux SPI bitbang 小结
前段时间同事调试 SPI 驱动, 遇到个问题来问我, 帮忙澄清了并顺便看了下SPI bitbang的驱动代码流程, 小结在此. 内核版本 3.6.4本文所有文字都是原创, 转发请注明出处.她的问题是这样的" 如果bitbang结构体不是排在第一个的话, 会有kernel warning出现." 以s3c24xx_spi 为例.struct s3c24xx_spi{原创 2014-12-15 17:38:04 · 4749 阅读 · 0 评论 -
内核中的 /proc/meminfo
来自 http://leave001.blog.163.com/blog/static/1626912932010111101124590/先看Documentation/filesystem/proc.txt中对meminfo的介绍:meminfo:Provides information about distribution and utilizatio转载 2014-12-15 16:24:49 · 2061 阅读 · 0 评论 -
linux 的中断处理
之前在ARM平台上分析过中断处理的详细步骤, 写了个PPT, 但是后来找不到了. 正好前一阵子看mips下的中断的时候, 随手写了点东西, 还是记录到blog上来吧, 方便查找.这里面的每一个文字都是我自己码出来的, 转载的兄弟请注明出处.1. 重要的结构体介绍struct irq_desc { unsigned int irq;原创 2014-12-15 17:28:41 · 710 阅读 · 0 评论 -
linux ethernet PHY 驱动
今年在FPGA上和IC那边一起验证了MAC/PHY, 基于linux 3.6.4, 这边小结一下代码.原创 2014-12-18 14:04:22 · 6549 阅读 · 1 评论 -
某USB GPRS 模块遇到的枚举问题
也是出现在ucos平台下.顺便说一下, 公司的ucos平台下的usb的代码(包括usb core, ehci部分, usb mass storage class, usb video class, usb hid, usb serial, usb GPRS MODEM等等) 都是从linux下一只过去的, 中间的艰辛, 真是不足为外人道也.回到正题, 这是个MTK芯片的GPRS模块原创 2014-12-18 10:18:31 · 787 阅读 · 0 评论 -
嵌入式linux自动登录
原文在 http://www.cnblogs.com/masky/p/3175221.html 最近又把同事的fl2440板子拿过来跑了起来,没有太大收获,就解决了一个自动登录的问题:::respawn:/sbin/getty -L ttySAC0 115200 vt100 -n root -I "Auto login as root ...“inittab里面使用这句话登转载 2015-01-30 16:45:41 · 2739 阅读 · 0 评论 -
zlib-1.2.8 mips 平台交叉编译
1. ./configure --shared --prefix=`pwd`/install2. 修改makefile a. CC=/home/public/mt-toolchain/usr/bin/mipsel-linux-uclibc-gcc b. LDSHARED=/home/public/mt-toolchain/usr/bin/mipsel-linux-uclib原创 2014-12-09 17:34:11 · 1074 阅读 · 0 评论 -
USB spec TT 部分的摘要
项目上发现, 板子如果接hub, hub上挂两个手柄的话, 会发现只有一个手柄能用. 但是同样的hub和手柄在PC上是能正常使用的.由于手柄是低速设备, 因此需要涉及到 SPLIT INTERRUPT IN 的传输, 这部分需要host的软件对TT以及SSPLIT/CSPLIT进行恰当的处理.估计是什么地方代码有问题. 检查代码后发现, tt_no_collision 这个函数居然是一个空原创 2014-12-24 16:43:10 · 2613 阅读 · 0 评论 -
openssl-1.0.2-beta3 mips 平台交叉编译
1. ./config --cross-compile-prefix=/home/public/mt-toolchain/usr/bin/mipsel-linux-uclibc- --prefix=`pwd`/build no-asm shared 说明:no-asm 在交叉编译过程中不使用汇编代码代码加速编译过程. shared 生成动态链接库.2. 修改Makefile原创 2014-12-09 17:04:42 · 2232 阅读 · 0 评论 -
linux 3.6.4上遇到的console打印问题小记
V6的FPGA回来了,需要调试千兆的网卡.由于之前V5上是用3.6.4的版本做的USB/SD的验证,因此这次还打算在3.6.4上开发.由于CPU core的型号没有变,因此打算直接把之前的image下载下去直接跑.但是遇到问题,启动时候console的打印非常不正常,只能打印出一些东西,而且打印很不完整,按一下键盘,能再吐点之前的printk信息出来.更严重的是,到了log原创 2015-02-02 15:45:53 · 828 阅读 · 0 评论 -
linux下的内存统计
记录下项目这两天遇到的一个内存方面的问题.环境: mips24K, 内存128M(扣除audio/video直接控制的内存后, 剩下65M), 内核版本2.6.29.4项目那边反馈说, 加载wifi相关的东西后, 内存少了很多. 怎么回事呢?1. 先ps, cat /proc/meminfo# ps PID USER VSZ STAT COMMAND原创 2014-12-15 15:52:36 · 895 阅读 · 0 评论