kernel
蜗牛逐日
这个作者很懒,什么都没留下…
展开
-
flash驱动及文件系统
三言两语聊Kernel:flash驱动及文件系统flash种类flash分为nor flash和nand flash。nor flash的容量较小,但访问速度相对快;nand flash的容量较大。访问flash的流程用户访问flash的内容大概是要经历这些过程:用户->vfs->具体文件系统->mtd设备(字符设备、块设备)->cfi命令字->flash。现在的flash一般都满足c...转载 2020-04-22 09:15:14 · 1045 阅读 · 0 评论 -
memcpy.S分析
/* SPDX-License-Identifier: GPL-2.0-only *//* * Copyright (C) 2013 Regents of the University of California */#include <linux/linkage.h>#include <asm/asm.h>/* void *memcpy(void *, c...原创 2019-12-13 17:39:47 · 304 阅读 · 0 评论 -
ubuntu 编译安装内核
目前,我的Ubuntu系统的内核版本是3.13.0,我想使用低版本的内核3.14来替代它,步骤如下:以下过程全部在root权限下操作。1、 安装必备软件编译工具:#apt-get install libncurses5-dev build-essential kernel-package注意:(1)libncurses5-dev是为之后配置内核能运行 make转载 2016-06-13 21:27:32 · 723 阅读 · 0 评论 -
系统故障调试
4.5. 调试系统故障即便你已使用了所有的监视和调试技术, 有时故障还留在驱动里, 当驱动执行时系统出错. 当发生这个时, 能够收集尽可能多的信息来解决问题是重要的.注意"故障"不意味着"崩溃". Linux 代码是足够健壮地优雅地响应大部分错误:一个故障常常导致当前进程的破坏而系统继续工作. 系统可能崩溃, 如果一个故障发生在一个进程的上下文之外, 或者如果系统的一些至关重要的部分毁坏了. ...原创 2019-06-18 11:22:33 · 405 阅读 · 0 评论 -
dynamic_debugfs使用
内核开启模块:CONFIG_DYNAMIC_DEBUG文件系统挂载:mount -t debugfs none /sys/kernel/debug/查看log的过滤格式:在语法层面上,一个命令由一系列的规格匹配组成,随后由一个标记来改变这规格。command ::= match-spec* flags-specmatch-spec常用来选择一个已知的dprintk()调用点的子集来套...原创 2019-09-14 00:01:16 · 344 阅读 · 0 评论 -
Linux驱动开发错误:module license 'unspecified' taints kernel
如果我们由多个C文件来构造一个模块,那么C文件的名字不能和模块名字一样。例如:hello_main.c,file1.c file2.c在Makefile:obj-m := hello.ohello-objs = file1.o file2.o hello_main.o。...原创 2019-09-14 02:11:13 · 575 阅读 · 0 评论 -
内核打印不分行
static void hex_dump_buffer(const char *s, int linenum, char *buf, int len){ int i = 0; char *tmpbuf = buf; pr_debug("%s line num: %d len 0x%x \n", s, linenum, len); for(...原创 2019-09-20 16:58:25 · 937 阅读 · 0 评论 -
使用debugfs
在進行Linux驅動開發時經常見到使用pr_debug和dev_dbg打印驅動的log,如果在內核配置時選擇了CONFIG_DYNAMIC_DEBUG宏,那麼就可以利用類似下面的命令打開對應文件的log:echo -n “file xxx.c +p” > /sys/kernel/debug/dynamic_debug/control但是有時候我們需要看到這個文件在內核啓動階段的log,那...转载 2019-09-23 11:25:02 · 970 阅读 · 0 评论