摘要: 名词解析: TCU:translation control unit TBU:tanslation buffer unit IOVA:IO virtual address IPA:intermediate physical address SMMU基础概念: MMU是用于CPU访问资源(DDR、外设 阅读全文
posted @ 2024-03-10 14:27 lethe1203 阅读(1145) 评论(0) 推荐(0) 编辑
摘要: TZC400是 ARM 公司提供的一个 IP 核,用于实现在系统级集成电路(SoC)中的安全性和可信任性。TZC400 是 TrustZone Address Space Controller 400 的缩写,是 ARM 的 TrustZone 技术的一部分。 TrustZone 是 ARM 公司开 阅读全文
posted @ 2024-03-10 14:15 lethe1203 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 以下仅是个人对CMN的浅显理解: CMN全称为coherent mesh network,是一种互联技术,通过在系统中设立多个节点之间的互联来实现高性能和可靠性 CMN的具体应用:应用于多核之间的cache一致性 以上图为例,每个cluster均有片内cache,当CPU对DDR写一个值时,例如向d 阅读全文
posted @ 2024-03-05 23:55 lethe1203 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 本文转载:【GIC】一文看懂GICv3 1 GIC基本功能 1.1 GICv3概述 由于SOC中外设及与其相关的中断数量众多,且各中断又有多种不同的配置方式,为了减轻CPU的负担,现代处理器中断的配置和管理一般都通过中断控制器实现。 GIC是arm公司推出可与cortex-A和cortex-R处理器 阅读全文
posted @ 2024-03-05 23:14 lethe1203 阅读(570) 评论(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 阅读(265) 评论(0) 推荐(0) 编辑
摘要: AMBA(Advanced Microcontroller Bus Architecture)是ARM公司推出的一种开放式的总线标准,用于连接处理器、内存和外设模块,构建高性能、低功耗的嵌入式系统。 AMBA包括了多个总线协议,其中包括APB(Advanced Peripheral Bus)、AHB 阅读全文
posted @ 2024-03-05 22:22 lethe1203 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 简单日志系统设计 在高通或者MTK的源码中,以camera系统为例,多个子模块,我们可以通过向debug系统中通过打开关闭相关模块对应的bit位来开启或关闭模块日志 在内核中实现其实并不复杂,使用module_param来创建一个sys节点来进行日志控制: 如下: static int debug 阅读全文
posted @ 2024-03-05 22:17 lethe1203 阅读(14) 评论(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 阅读(93) 评论(0) 推荐(0) 编辑
摘要: C 语言中的回调函数是一种函数指针,可以将其作为参数传递给另一个函数,在该函数中调用回调函数来完成特定的任务 具体来说,回调函数通常用于异步编程或事件驱动编程,以处理异步任务完成后的回调 简单使用demo: #include <stdio.h> // 回调函数类型定义 typedef void (* 阅读全文
posted @ 2024-02-25 23:57 lethe1203 阅读(6) 评论(0) 推荐(0) 编辑
摘要: __weak关键字 __weak是一个c/c++编译器关键字,用于定义一个弱化符号。弱化符号是一种在链接阶段可以被覆盖的符号,允许多个同名符号存在于不同的目标文件中,而不会产生冲突。 当一个符号被声明为__weak时,它具有两个特性: 1、如果该符号在某个目标文件中被定义,那么这个定义将成为默认实现 阅读全文
posted @ 2024-02-25 23:27 lethe1203 阅读(624) 评论(0) 推荐(0) 编辑