随笔分类 -  linux 内核

摘要:延时函数的两种常用名称是sleep和delay。一般在上位机多见sleep,单片机常用delay。那么sleep和delay的意义有何区别? sleep意为睡眠,即线程挂起,由定时器重新唤醒线程。sleep作用期间,该线程不占用CPU资源。 delay意为延迟,即线程等待,由线程自身进行循环查询,在 阅读全文
posted @ 2022-12-08 11:13 zxiaocheng 阅读(1550) 评论(0) 推荐(0) 编辑
摘要:static DEVICE_ATTR_RW(test); #define DEVICE_ATTR_RW(_name) \ struct device_attribute dev_attr_##_name = __ATTR_RW(_name) struct device_attribute dev_a 阅读全文
posted @ 2022-11-22 17:26 zxiaocheng 阅读(581) 评论(0) 推荐(0) 编辑
摘要:一、coresight coresight是ARM公司提出的,用于对复杂的SOC,实现debug和trace的架构。该架构,包含了多个coresight组件。众多的coresight组件,构成了一个coresight系统。我们也可以根据coresight架构,实现自己的coresight组件。每个c 阅读全文
posted @ 2022-07-08 15:09 zxiaocheng 阅读(701) 评论(1) 推荐(0) 编辑
摘要:一、基础理论概述1. 有三种 preemption model 和适用场景非强占式内核(服务器)强占式内核(低延迟桌面)voluntary kernel preemption(桌面)2. 动态功耗 = C * Freq * Voltage^2 其中Freq 是CPU运行频率,Voltage是CPU核 阅读全文
posted @ 2022-07-06 19:35 zxiaocheng 阅读(860) 评论(0) 推荐(0) 编辑
摘要:kernel部分: 如需宏控制kernel这部分代码时,参考以下步骤新增kernel config. 1.请在您的driver code所在目录中的Kconfig文件增加您的宏定义 具体怎么写可以参考Kconfig中的其他宏定义 举个例子: config MTK_FB bool “MediaTek 阅读全文
posted @ 2021-04-26 20:30 zxiaocheng 阅读(1072) 评论(0) 推荐(1) 编辑
摘要:原子位操作 操作函数的参数是一个指针和一个位号 原子位操作定义在文件中。令人感到奇怪的是位操作函数是对普通的内存地址进行操作的。原子位操作在多数情况下是对一个字长的内存访问,因而位号该位于0-31之间(在64位机器上是0-63之间),但是对位号的范围没有限制。 原子操作中的位操作部分函数如下:voi 阅读全文
posted @ 2021-04-13 14:42 zxiaocheng 阅读(5663) 评论(0) 推荐(0) 编辑
摘要:做底层驱动免不了gpio打交道,所以对其操作和调试进行了一下简单的梳理一、gpio的调试方法 在Linux下,通过sysfs,获取gpio状态,也可以操作gpio。1、获取gpio状态 cd /sys/kernel/debug/ cat gpio2、操作gpio(以gpio99为例) cd /sys 阅读全文
posted @ 2021-03-26 15:11 zxiaocheng 阅读(5381) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示