会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
tggpx
博客园
首页
新随笔
联系
订阅
管理
2025年4月11日
Linux 中断
摘要: 中断的上下部 上半部: 处理严格时限的工作, 严格意义上的中断处理函数. 下半部: 中断来了立即执行上半部, 下半部会等待时机再执行. linux提供了这种机制 设备树中断描述 和GPIO结构类似, 中断控制器负责管理一组中断源, 在设备书中中断控制器有如下描述: intc:interrupt-co
阅读全文
posted @ 2025-04-11 00:26 天刚刚破晓
阅读(21)
评论(0)
推荐(0)
2025年4月10日
Linux pinctrl subsystem
摘要: 简单描述以下裸机的gpio pin控制流程: 使能对应总线 配置pin为gpio功能(gpio是pin的一种使用方式, pin还可以有其他的作用比如i2c... 谓之复用) 配置pin上下拉等 配置pin输入/输出 控制pin电平 对于上面流程 1 属于依赖问题, 已经被设备树解决了. 2 3 被抽
阅读全文
posted @ 2025-04-10 15:12 天刚刚破晓
阅读(10)
评论(0)
推荐(0)
2025年3月23日
Linux 驱动模型
摘要: 为了降低设备多样性带来的Linux驱动开发的复杂度,以及设备热拔插处理、电源管理等,Linux内核提出了设备模型(也称作Driver Model)的概念。设备模型将硬件设备归纳、分类,然后抽象出一套标准的数据结构和接口。驱动的开发,就简化为对内核所规定的数据结构的填充和实现。 http://www.
阅读全文
posted @ 2025-03-23 18:46 天刚刚破晓
阅读(25)
评论(0)
推荐(0)
2025年3月9日
Linux 驱动-设备树
摘要: 设备树格式 / { 属性名 = "属性值","可以多个"; 标签(通常是节点名简写): 字节点名@地址 { 属性名 = "属性值"; 属性名 = [0x00 0x01]; 属性名 = <1 2 3>; }; } &标签 { 属性名 = "向标签的节点追加内容"; }; 特殊节点: aliases {
阅读全文
posted @ 2025-03-09 17:12 天刚刚破晓
阅读(38)
评论(0)
推荐(0)
2025年3月3日
Linux 内核同步
摘要: 为什么要内核同步 防止共享资源的并发访问导致数据不一致 并发执行的来源 中断 进程切换 多处理器 内核同步的方法 主要就是 信号量 和 自选锁 两种加锁方式 原子操作 内核中定义了原子量类型atomic_t, 可以通过下面的函数来操作原子量 原子数操作 说明 ATOMIC_INIT(int) 初始化
阅读全文
posted @ 2025-03-03 20:43 天刚刚破晓
阅读(28)
评论(0)
推荐(0)
2025年2月28日
Linux 字符驱动架构
摘要: 如何往内核里添加一个字符驱动程序 分配设备号 前置: * 设备号分为主设备号和次设备号. * 主设备号是分配给设备驱动程序的唯一标识符,用于标识设备所属的驱动程序。它告诉内核在访问设备时应该调用哪个驱动程序来处理请求. * 次设备号是与主设备号配合使用的较小标识符,用于区分同一主设备号下的不同设备实
阅读全文
posted @ 2025-02-28 21:36 天刚刚破晓
阅读(13)
评论(0)
推荐(0)
2025年2月24日
Linux 模块
摘要: 什么是 Linux 模块 Linux模块,也就是可加载内核模块(LKMs),允许在运行时动态加载到内核中。 这说明两点: 是内核模块, 也就是说是内核的一部分, 只能依赖内核的接口, 且必须遵循内核的规则. 运行时可加载, 这避免了重复编译内核和重启系统. 并且内核和模块是分开的, 部署更灵活. 同
阅读全文
posted @ 2025-02-24 15:42 天刚刚破晓
阅读(18)
评论(0)
推荐(0)
2025年2月19日
qemu 嵌入式linux 开发环境搭建
摘要: 主要记录大致步骤. qemu 安装 https://www.qemu.org/download/ wget https://download.qemu.org/qemu-9.2.1.tar.xz tar --xz --get --file qemu-9.2.1.tar.xz cd qemu-9.2.
阅读全文
posted @ 2025-02-19 21:15 天刚刚破晓
阅读(119)
评论(0)
推荐(0)
2024年8月29日
bink LED
摘要: FPGA 学习笔记1 本系列文章用于记录FPGA学习过程, 类似流水账,不做总结提炼. blink LED 设计 模块化设计, 这里分为 分频器, led控制器, 复位信号产生器. 实现 分屏器 module Clk_div #( parameter DIV = 5000 )( input i_cl
阅读全文
posted @ 2024-08-29 23:31 天刚刚破晓
阅读(27)
评论(0)
推荐(0)
2024年7月15日
++ 新认识
摘要: 学c语言时对 x++ 或 ++x 的理解是 "先取值再+1, 先+1再取值" 今天在理解代码上遇见了问题 list.erase(it++); 对上面代码我理解等效于 list.erase(it); it++; 然而实际上这个代码运行不起来, 因为erase的时候it会被设置未空,再执行it++就会c
阅读全文
posted @ 2024-07-15 17:59 天刚刚破晓
阅读(7)
评论(0)
推荐(0)
下一页
公告