这里没有 去详细考虑neutron server怎么初始化的,而是直接从加载插件的地方开始分析.首先我们看下下面这个文件. Neutron/api/v2/router.py class APIRouter(base_wsgi.Router): @classmethod def factory(cls, global_config, **local_config): return cls(**local_config) def __init__(self, **local_config): #用来…
instance_init 函数追下去,绝大多数的代码都在初始化如下结构体 typedef struct { INST_MODE mode; instance_init -ANCHOR //instance mode (tag or anchor) INST_STATES testAppState ; int instance_init_s(int mode) TA_INIT //state machine - current state INST_STATES nextState ; //st…
录音例程涉及了录音和播放两大块内容,这篇笔记就先来说说播放,暂且先击破解码这部分功能. 我的锤子便签中有上个月记下的一句话,“斯蒂芬·平克说,写作之难,在于把网状思考,用树状结构,体现在线性展开的语句里.”这篇代码解析也有类似的困难,代码的网状结构,如何用文章这种线性载体来体现.我尽量挑出了主干,来讲解自己的理解.另外在文章最后添加了一个模块拓扑图来帮助消化. 我还是建议大家还是多琢磨下源码,代码的事还是让代码来说话,笔记是一个辅助的概括梳理. 本文作者twowinter,转载请注明:http:…
单例模式是是常用经典十几种设计模式中最简单的..NET中单例模式的实现也有很多种方式.下面我来介绍一下NopCommerce中单例模式实现. 我之前的文章就分析了一下nop中EngineContext的实现.EngineContext是把一个Web请求用Nop的EngineContext引擎上下文封装.里面提供了一个IEngine的单例对象的访问方式. 下面就是EngineContext的源码: 一.EngineContext using System.Configuration; using…
前言 录音例程涉及了录音和播放两大块内容,上篇笔记说了播放,这篇就来说说录音这块,也就是音频编码这部分功能. 上篇笔记中的这段话太装逼了,我决定再复制下,嘿嘿. “我的锤子便签中有上个月记下的一句话,“斯蒂芬·平克说,写作之难,在于把网状思考,用树状结构,体现在线性展开的语句里.”这篇代码解析也有类似的困难,代码的网状结构,如何用文章这种线性载体来体现.” 跟上篇笔记的做法一样,还是挑出了主干,来讲下自己的理解.另外在文章最后添加了一个模块拓扑图来帮助消化. 本文作者twowinter,转载请注…
RT-thread提供了组件化功能,具体实现是在components/init文件夹下components.c文件中实现的.应用组件化功能首先在rtconfig.h中添加宏定义#define RT_USING_COMPONENTS_INIT:若需要启用调试模式,则还要添加#define RT_DEBUG_INIT 1. void rt_components_board_init(void) { #ifndef _MSC_VER #if RT_DEBUG_INIT //启用初始化调试模式,主要目的…
专题文档汇总目录 Notes:ARM平台Clock/Timer架构:System counter.Timer以及两者之间关系:Per cpu timer通过CP15访问,System counter通过memory mapped IO访问:将System counter和Per cpu timer分别作为clocksource和clock event device注册到Linux时间子系统. 原文地址:Linux时间子系统之(十七):ARM generic timer驱动代码分析 一.前言 关注…
返回目录:<ARM-Linux中断系统>. 总结: 原文地址:<linux kernel的中断子系统之(七):GIC代码分析> 参考代码:http://elixir.free-electrons.com/linux/v3.17-rc3/source 一.前言 GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1-V4(V2最多支持8个ARM core,V3…
一.前言 GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1-V4(V2最多支持8个ARM core,V3/V4支持更多的ARM core,主要用于ARM64服务器系统结构).目前在ARM官方网站只能下载到Version 2的GIC architecture specification,因此,本文主要描述符合V2规范的GIC硬件及其驱动. 具体GIC硬件的实现形态有两…
一.前言 关注ARM平台上timer driver(clocksource chip driver和clockevent chip driver)的驱动工程师应该会注意到timer硬件的演化过程.在单核时代,各个SOC vendor厂商购买ARM core的IP,然后自己设计SOC上的peripherals,这里面就包括了timer的硬件.由于没有统一的标准,各个厂商的设计各不相同,这给驱动工程师带来了工作量.然而,如果仅仅是工作量的话就还好,实际上,不仅仅如此.linux的时间子系统要求硬件t…