Linux
文章平均质量分 78
pandy_gao
这个作者很懒,什么都没留下…
展开
-
Linux中断申请流程
原创文章,转载请注明出处:本文主要分析linux内核中设备驱动程序是如何申请中断的。中断的申请分为两个阶段,接下来分别对两个阶段进行分析。第一阶段:获取软件中断号,irq = platform_get_irq(pdev, 0)->of_irq_get(dev->dev.of_node, num); drivers/base/platform.c{ 1. 解析dts中device no...原创 2018-02-11 12:06:15 · 9197 阅读 · 0 评论 -
Linux Platform驱动的注册流程
原创文章, 转载请注明出处。1 platform device是如何挂载在platform_bus上:linux platfrom驱动在加载的时候都有相应的优先级, linux定义了不同的initcall接口表示不同的优先级,比如:core_initcall,arch_initcall。本文从arch_initcall_sync(of_platform_default_populate_init)...原创 2018-02-11 11:49:26 · 1222 阅读 · 0 评论 -
Linux内核中网络数据的接收
1. Linux网络数据的接收始于中断,本文用wifi驱动ath10k进行分析,中断处理函数为 ath10k_pci_interrupt_handler,那么中断处理函数是如何与网卡关联?要了解这个 问题就得了解pcie接口网卡的注册流程: ->ath10k_pci_init drivers/net/wireless/ath/ath10k/pci.c ->ath10k_pci_p...原创 2018-02-12 10:19:43 · 1218 阅读 · 0 评论 -
Linux中断的响应流程
原创文章, 转载请注明出处。这篇文章主要讨论的话题是当中断发生时Linux内核是如何处理中断的。当CPU检测到中断的时候,linux内核首先会跳转至arch/arm/kernel/entry-armv.S中进行处理,然后切换到IRQ_MODE(vector_stub irq, IRQ_MODE, 4),最后运行到irq_handler。code如下:vector_irq: irq中断的入口, ...原创 2018-02-11 12:12:47 · 7043 阅读 · 0 评论 -
Linux GIC 的初始化
原创文章,转载请注明出处.Linux中断的初始化流程:Linux kernel的启动入口是start_kernel(), 在init/main.c中,start_kernel()中有一系列初始化操作,比如:boot_cpu_init(),setup_arch(&command_line),mm_init()等, 本文主要分析init_IRQ()__irqchip_of_table实际为静态...原创 2018-02-11 12:00:14 · 2222 阅读 · 0 评论 -
Linux内核中网络数据的传输
分析网络数据的传输,首先需要了解TCP/IP模型:APPLICATION <=> SOCKET <=>TCP/UDP <=> IPv4/IPv6 <=> MAC <=> PHYSOCKET: net/socket.c熟悉socket编程的人都知道网络数据通过sock进行传输,比如write/sendmsg(sock, buff, size...原创 2018-02-12 10:28:14 · 767 阅读 · 0 评论 -
Linux 内核中的kmalloc和slab分配器
在linux内核中我们经常使用kmalloc()进行内存分配,那么kmalloc()是如何分配的呢? 本文主要对kmalloc()和slab内存分配器进行分析。废话不多说,直接上code:devm_kzalloc(&pdev->dev, sizeof(*lpi2c_imx), GFP_KERNEL);{ #define GFP_KERNEL (__GFP_RECLAIM ...原创 2018-02-12 12:24:00 · 1521 阅读 · 0 评论 -
Linux ioremap分析
ioremap()将物理地址转换为虚拟地址 ->ioremap(addr, size) arch/arm64/include/asm/io.h->__ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE)){ #define PROT_DEVICE_nGnRE (PROT_DEFAULT | PTE_PXN | PTE_UXN | ...原创 2018-02-12 10:39:22 · 1128 阅读 · 0 评论