10 2023 档案
摘要:于是乎,我们想到了总线,用一个统一的接口协议,设计出一个符合要求的总线,然后将ARM核和各种外设模块挂载在总线上,这样,命令和数据似乎便可以在CPU和外设之间自由穿梭。 1 AMBA总线 AMBA,英文全称为Advanced Microcontroller Bus Architecture,即高级微
阅读全文
摘要:0.AMBA总线概括 AMBA(Advanced Microcontroller Bus Architecture) 总线是由ARM公司提出的一种开放性的片上总线标准,它独立于处理器和工艺技术,具有高速度低功耗等特点。 系统芯片中各个模块之间需要有接口来连接; 总线作为子系统之间共享的通信链路; 其
阅读全文
摘要:CCI(Cache Coherent Interconnect)是ARM中的cache一致性控制器。 CCI-400将互连和一致性功能结合到一个模块中。它支持多达两个ACE 主节点的连接,例如: Cortex®-A7 processor Cortex-A15 processor Cortex-A17
阅读全文
摘要:之前介绍通过命令行配置和使用ftrace功能,但是实际中,我们也会希望抓C/C++程序中某段代码的调度情况。笔者前不久就遇到这种问题,某个函数调用时延概率超过100ms,是为什么?这时候就需要在他们代码中使能ftrace抓执行此函数时候,任务的调度情况。 观察某段代码执行过程中的情况,ftrace提
阅读全文
摘要:1 图 1 Linux profiling 手段一览 软件埋点: 手动埋点:主动调用 trace 函数来实现埋点。 Android systrace 即是这样一个例子,如图 2 和 图 3 所示 自动埋点:借助工具链,自动埋点,对函数的 entry 和 return 进行 hook。 Linux f
阅读全文
摘要:Linux内核的tracing buffer是一种用于存储内核跟踪数据的特殊缓冲区。它用于记录内核中发生的事件和活动,以帮助开发人员进行性能分析和故障排查。该缓冲区可以在内核运行时启用,并且可以通过特定的跟踪工具和API进行访问和分析。跟踪缓冲区可以包含一系列事件和数据,如函数调用、中断、系统调用、
阅读全文