摘要: 以下仅是个人对CMN的浅显理解: CMN全称为coherent mesh network,是一种互联技术,通过在系统中设立多个节点之间的互联来实现高性能和可靠性 CMN的具体应用:应用于多核之间的cache一致性 以上图为例,每个cluster均有片内cache,当CPU对DDR写一个值时,例如向d 阅读全文
posted @ 2024-03-05 23:55 lethe1203 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 本文转载:【GIC】一文看懂GICv3 1 GIC基本功能 1.1 GICv3概述 由于SOC中外设及与其相关的中断数量众多,且各中断又有多种不同的配置方式,为了减轻CPU的负担,现代处理器中断的配置和管理一般都通过中断控制器实现。 GIC是arm公司推出可与cortex-A和cortex-R处理器 阅读全文
posted @ 2024-03-05 23:14 lethe1203 阅读(695) 评论(0) 推荐(0) 编辑
摘要: DW_apb_timers是新思设计的基于APB总线的一个IP DW_apb_timers框图如下: DW_apb_timers特性: 1、多达8个可编程定时器; 2、定时器宽度可设:8至32位; 3、支持两种运行模式:free running和user-mode; 4、支持定时器的独立计时; 5、 阅读全文
posted @ 2024-03-05 22:47 lethe1203 阅读(346) 评论(0) 推荐(0) 编辑
摘要: AMBA(Advanced Microcontroller Bus Architecture)是ARM公司推出的一种开放式的总线标准,用于连接处理器、内存和外设模块,构建高性能、低功耗的嵌入式系统。 AMBA包括了多个总线协议,其中包括APB(Advanced Peripheral Bus)、AHB 阅读全文
posted @ 2024-03-05 22:22 lethe1203 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 简单日志系统设计 在高通或者MTK的源码中,以camera系统为例,多个子模块,我们可以通过向debug系统中通过打开关闭相关模块对应的bit位来开启或关闭模块日志 在内核中实现其实并不复杂,使用module_param来创建一个sys节点来进行日志控制: 如下: static int debug 阅读全文
posted @ 2024-03-05 22:17 lethe1203 阅读(18) 评论(0) 推荐(0) 编辑
摘要: c语言代码中,存在大量的宏定义语句,宏定义本质是在预编译时的简单替换 注意到下面的代码宏定义如下: #define cam_debug(fmt, ...) \ do {\ if (debug & BIT(2)) { \ printk("CAM_DEBUG " fmt, __FILE__, __fun 阅读全文
posted @ 2024-03-05 22:10 lethe1203 阅读(122) 评论(0) 推荐(0) 编辑