Linux内核
文章平均质量分 69
xxccry
Linux嵌入式BSP
展开
-
软中断 简介
在SMP(对称多处理器)系统中,中断下半部的“串行化”执行没有充分利用SMP的多CPU特性。因此,Linux Kernel 2.4扩展了softirq(软中断请求)的机制。转载 2022-11-20 10:30:22 · 841 阅读 · 0 评论 -
Linux - 网络lockup原因分析
Linux - 网络lockup原因分析原创 2022-10-03 09:21:59 · 1407 阅读 · 2 评论 -
Jetson - eMMC启动流程
Jetson - eMMC启动流程sdio扫描drivers/mmc/host/sdhci-tegra.cstatic int sdhci_tegra_probe(struct platform_device *pdev){ ... ... host = sdhci_pltfm_init(pdev, soc_data->pdata, sizeof(*tegra_host)); ... ...}drivers/mmc/原创 2022-10-03 09:21:24 · 389 阅读 · 0 评论 -
Linux内核栈调试
Linux内核栈调试dump_stack现象原因分析oops信息寄存器信息应用层信息调用栈关系objdump反汇编内核编译反汇编命令分析 Linux内核驱动调试经常遇到定位困难的问题,除了在代码之间添加log(printk/dev_info等)以外,还可以借助栈(stack)信息定位到代码。dump_stack现象原因 内核打印栈信息的常见原因有:oops崩溃:常见问题有空指针、内存访问越界等dump_stack函数:需要头文件linux/kprobes.h和asm/traps.h原创 2021-11-21 15:59:22 · 2124 阅读 · 0 评论 -
Linux内核锁
Linux内核锁spinlock单CPU系统多CPU系统semaphoremutex理解spinlock单CPU系统 include/linux/spinlock_api_up.h#define __LOCK(lock) \ do { preempt_disable(); ___LOCK(lock); } while (0) #define __UNLOCK(lock) \ do { preempt_enable(); ___UNLOCK(lock); } while (0)多CPU原创 2021-11-21 01:32:27 · 407 阅读 · 0 评论 -
Linux音频子系统
Linux音频子系统硬件基础ALSA简介包含框架代码结构数据流向目录ALSA核心层作用字符设备ASoC框架硬件架构软件架构数据结构TODO硬件基础 传统音频电路包含麦克风、前置放大器、模数转换器ADC、数模转换器DAC、输出放大器、扬声器,如图所示:ALSA简介包含内核驱动 alsa-driver用户空间开发包 alsa-libs开发包插件 alsa-plugins设置管理工具包 alsa-utils声音处理小程序包 alsa-tools特殊音频固件支持包 alsa-firm原创 2021-11-17 22:28:41 · 859 阅读 · 0 评论 -
Linux网络机制 - NAPI
背景 外部设备与中央处理器交互一般有两种手段:轮询和中断。 ● 中断看似很高效,但是却会遗漏一些数据,避免遗漏的机制要么由硬件实现要么由上层的软件实现。 ● 轮询没有中断高效,会做很多徒劳的操作,而且必须引入暂存机制,由于cpu不可能每次查询硬件的时候正好有事情可做,但轮询不会遗漏请求。 当外部设备活跃时,频繁的中断会导致大量的CPU开销,此时最好用轮询,但是外设活动很缓和的时候,轮询将会浪费CPU资源。机制 NAPI是中断和轮询的结合,数据量低时采用中断,数据量高时采用轮询。Cre原创 2021-11-17 12:18:51 · 149 阅读 · 0 评论