![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kernel
文章平均质量分 54
dachunfree
冰冻三尺,非一日之寒
展开
-
ftrace+printk 跟踪dma_alloc_coherent分配失败
系统:linux 3.0硬件平台:zynq用dma_alloc_coherent 分配160k Bytes给dma用的物理内存总是失败。还是深究下其原因吧!为了方便跟踪函数走向,安装了ftrace进行跟踪。1.ftrace的安装。make menuconfig 选择 kernel hacking ---->Tracers:我把相关trace都打开了,比如跟踪中断时延,抢占时延选定后然后进行保存。从新make即可。2.ftrace的使用:#我是通过char字符驱动的wr原创 2021-04-20 08:35:07 · 1466 阅读 · 0 评论 -
【转】creat_mapping
http://blog.csdn.net/huyugv_830913/article/details/58846281 ARM920T的MMU工作原理下图显示了MMU地址转化关系一级表项的地址(pmd) = ( (TLB) & (0xFFFFC000) )+ ( (Table Index)<<2 );注1:TLB(Translate tabl...转载 2019-11-05 19:25:41 · 198 阅读 · 0 评论 -
各种栈了解下
本文链接:https://blog.csdn.net/yangkuanqaz85988/article/details/52403726转载请注明出处: http://kyang.cc/栈是什么?栈有什么作用?首先,栈 (stack) 是一种串列形式的 数据结构。这种数据结构的特点是 后入先出 (LIFO, Last In First Out),数据只能在串列的一端 (称为:栈顶 top...转载 2019-10-24 16:53:13 · 177 阅读 · 0 评论 -
内存泄漏工具kmemleak 使用方法
1.kmemleak使用方法https://www.cnblogs.com/arnoldlu/p/8568090.html2.英文手册https://www.kernel.org/doc/html/latest/dev-tools/kmemleak.html3.原理分析http://blog.chinaunix.net/uid-26859697-id-5758036.html...原创 2019-07-22 14:14:33 · 1847 阅读 · 0 评论 -
arm linux 系统调用
操作系统为在用户态运行的进程与硬件设备进行交互,提供操作系统的系统服务,提供了一组接口。在应用程序和硬件之间,提供内核的系统-服务设置一个额外层具有很多最优点。首先,这使得编程更加容易,把用户从学习硬件设备的低级编程特性中解放出来。其次,这极大地提高了系统的安全性,因为内核在试图满足某个请求之前在接口级就可以检查这种请求的正确性。最后,更重要的是这些接口使得程序具有可移植性,因为只要内...原创 2019-06-29 18:11:20 · 227 阅读 · 0 评论 -
kernel之启动流程head.S
通过上一篇Makefile我们分析到了,编译出vmlinux的第一个原材料是head.o。.先回顾下uboot是怎么启动kernel的。uboot将kernel从flash中拷贝到sdram后,设置tag进行工作交接,然后启动内核。theKernel (0, bd->bi_arch_number, bd->bi_boot_params);r0 : 0r1 : bd->bi...原创 2019-01-29 16:31:09 · 597 阅读 · 0 评论 -
linux内存malloc【转】
Linux的虚拟内存管理有几个关键概念:Linux 虚拟地址空间如何分布?malloc和free是如何分配和释放内存?如何查看堆内内存的碎片情况?既然堆内内存brk和sbrk不能直接释放,为什么不全部使用 mmap 来分配,munmap直接释放呢 ?Linux 的虚拟内存管理有几个关键概念: 1、每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址; 2、虚拟地址可通...转载 2019-02-14 17:55:54 · 301 阅读 · 0 评论 -
kernel之启动第一个用户进程
上一篇说到,kernel代码重定位完成后,设置栈,跳转到 start_kernel去启动init进程。uboot的环境变量打印:bootargs=console=ttyS0,115200 mem=512M root=/dev/mmcblk1p1 rw rootwait init=/sbin/initstart_kernel rest_init(); kerne...原创 2019-02-01 15:36:43 · 328 阅读 · 0 评论 -
kernel之Makefile分析
首先拿到kernel,我们和uboot一样,首先进行 make *_defconfig,然后看到底做了什么呢?搜索: find . -name *defconfig 文件。我们找到对应板卡。./arch/arm/configs/xilinx_zynq_defconfig首先我们执行 make xilinx_zynq_defconfig看打印:# configuration w...原创 2019-01-24 19:51:03 · 681 阅读 · 0 评论 -
【转】【Linux 内核】内存管理(二)伙伴算法
https://blog.csdn.net/wenqian1991/article/details/27968779 通常情况下,一个高级操作系统必须要给进程提供基本的、能够在任意时刻申请和释放任意大小内存的功能,就像malloc 函数那样,然而,实现malloc 函数并不简单,由于进程申请内存的大小是任意的,如果操作系统对malloc 函数的实现方法不对,将直接导致一个不可避免...转载 2018-11-12 14:56:28 · 110 阅读 · 0 评论 -
【转】【linux内核】linux调度算法--快速找到最优进程及时间片算法
为什么要了解内核的调度策略呢?呵呵,因为它值得我们学习,不算是废话吧。内核调度程序很先进很强大,管理你的LINUX上跑的大量的乱七八糟的进程,同时还保持着对用户操作的高灵敏响应,如果可能,为什么不把这种思想放到自己的应用程序里呢?或者,有没有可能更好的实现自己的应用,使得操作系统能够以自己的意志来分配资源给自己的进程?带着这两个问题来看看KERNEL。首先回顾上我们开发应用程序,基本上就两种类...转载 2018-11-13 16:56:01 · 269 阅读 · 0 评论