文章目录

  • 1. 流程分析
  • 2. 流程总结

1. 流程分析

航向规划中航点编辑,就是下图中的红色框Waypoint的编辑,当然也包括其他特殊点编辑。它属于航线规划视图PlanView.qml中的内容

通过倒推分析,顺着问题找答案逻辑会更清晰。

● 通过关键词锁定文件位置

直接搜:“Travel to a position in 3D space” 发现在.json文件中,不直接。
继续搜:“Altitude relative to launch altitude” :

● SimpleItemEditor.qml

简单分析 SimpleItemEditor.qml 文件发现和航点UI都能一一对应。

● SimpleItemEditor

继续搜"SimpleItemEditor.qml"发现:

//SimpleMissionItem.cc
_editorQml = QStringLiteral("qrc:/qml/SimpleItemEditor.qml");
//TakeoffMissionItem.cc
_editorQml = QStringLiteral("qrc:/qml/SimpleItemEditor.qml");

再搜下 “_editorQml” 能发现不少“同类”

//测绘相关
//SurveyComplexItem.cc
_editorQml = "qrc:/qml/SurveyItemEditor.qml";
//固定翼的复杂航点
//FixedWingLandingComplexItem.cc
_editorQml = "qrc:/qml/FWLandingPatternEditor.qml";
//第一个航点,也就是“Mission Start”,如下图
//MissionSettingsItem.cc
_editorQml = "qrc:/qml/MissionSettingsEditor.qml";


另通过Q_PROPERTY修饰后,editorQml 就可以在 QML 中访问,VisualMissionItem继承流程此处不做分析。

//VisualMissionItem.hQ_PROPERTY(QString   editorQml    MEMBER _editorQml   CONSTANT) ///< Qml code for editing this item

● editorQml

editorQml在QML的调用:

//MissionItemEditor.qml
//在Loader {id:                 editorLoader...source:             missionItem.editorQml ///---[Mark]...}

● PlanView

MissionItemEditor 最终被PlanView.qml中调用,并作为 listView-model-delegate 模型中的 delegate

//PlanView.qml
//Mission Item Editor
Item {id:                     missionItemEditor...QGCListView {id:                 missionItemEditorListView...model:              _missionController.visualItems//-- List Elementsdelegate: MissionItemEditor {...}
}

2. 流程总结

具体流程图如下:

#mermaid-svg-DwbL0jJta9a10HwJ .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-DwbL0jJta9a10HwJ .label text{fill:#333}#mermaid-svg-DwbL0jJta9a10HwJ .node rect,#mermaid-svg-DwbL0jJta9a10HwJ .node circle,#mermaid-svg-DwbL0jJta9a10HwJ .node ellipse,#mermaid-svg-DwbL0jJta9a10HwJ .node polygon,#mermaid-svg-DwbL0jJta9a10HwJ .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-DwbL0jJta9a10HwJ .node .label{text-align:center;fill:#333}#mermaid-svg-DwbL0jJta9a10HwJ .node.clickable{cursor:pointer}#mermaid-svg-DwbL0jJta9a10HwJ .arrowheadPath{fill:#333}#mermaid-svg-DwbL0jJta9a10HwJ .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-DwbL0jJta9a10HwJ .flowchart-link{stroke:#333;fill:none}#mermaid-svg-DwbL0jJta9a10HwJ .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-DwbL0jJta9a10HwJ .edgeLabel rect{opacity:0.9}#mermaid-svg-DwbL0jJta9a10HwJ .edgeLabel span{color:#333}#mermaid-svg-DwbL0jJta9a10HwJ .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-DwbL0jJta9a10HwJ .cluster text{fill:#333}#mermaid-svg-DwbL0jJta9a10HwJ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-DwbL0jJta9a10HwJ .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-DwbL0jJta9a10HwJ text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-DwbL0jJta9a10HwJ .actor-line{stroke:grey}#mermaid-svg-DwbL0jJta9a10HwJ .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-DwbL0jJta9a10HwJ .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-DwbL0jJta9a10HwJ #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-DwbL0jJta9a10HwJ .sequenceNumber{fill:#fff}#mermaid-svg-DwbL0jJta9a10HwJ #sequencenumber{fill:#333}#mermaid-svg-DwbL0jJta9a10HwJ #crosshead path{fill:#333;stroke:#333}#mermaid-svg-DwbL0jJta9a10HwJ .messageText{fill:#333;stroke:#333}#mermaid-svg-DwbL0jJta9a10HwJ .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-DwbL0jJta9a10HwJ .labelText,#mermaid-svg-DwbL0jJta9a10HwJ .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-DwbL0jJta9a10HwJ .loopText,#mermaid-svg-DwbL0jJta9a10HwJ .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-DwbL0jJta9a10HwJ .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-DwbL0jJta9a10HwJ .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-DwbL0jJta9a10HwJ .noteText,#mermaid-svg-DwbL0jJta9a10HwJ .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-DwbL0jJta9a10HwJ .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-DwbL0jJta9a10HwJ .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-DwbL0jJta9a10HwJ .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-DwbL0jJta9a10HwJ .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwbL0jJta9a10HwJ .section{stroke:none;opacity:0.2}#mermaid-svg-DwbL0jJta9a10HwJ .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-DwbL0jJta9a10HwJ .section2{fill:#fff400}#mermaid-svg-DwbL0jJta9a10HwJ .section1,#mermaid-svg-DwbL0jJta9a10HwJ .section3{fill:#fff;opacity:0.2}#mermaid-svg-DwbL0jJta9a10HwJ .sectionTitle0{fill:#333}#mermaid-svg-DwbL0jJta9a10HwJ .sectionTitle1{fill:#333}#mermaid-svg-DwbL0jJta9a10HwJ .sectionTitle2{fill:#333}#mermaid-svg-DwbL0jJta9a10HwJ .sectionTitle3{fill:#333}#mermaid-svg-DwbL0jJta9a10HwJ .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwbL0jJta9a10HwJ .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-DwbL0jJta9a10HwJ .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwbL0jJta9a10HwJ .grid path{stroke-width:0}#mermaid-svg-DwbL0jJta9a10HwJ .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-DwbL0jJta9a10HwJ .task{stroke-width:2}#mermaid-svg-DwbL0jJta9a10HwJ .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwbL0jJta9a10HwJ .taskText:not([font-size]){font-size:11px}#mermaid-svg-DwbL0jJta9a10HwJ .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwbL0jJta9a10HwJ .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-DwbL0jJta9a10HwJ .task.clickable{cursor:pointer}#mermaid-svg-DwbL0jJta9a10HwJ .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-DwbL0jJta9a10HwJ .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-DwbL0jJta9a10HwJ .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-DwbL0jJta9a10HwJ .taskText0,#mermaid-svg-DwbL0jJta9a10HwJ .taskText1,#mermaid-svg-DwbL0jJta9a10HwJ .taskText2,#mermaid-svg-DwbL0jJta9a10HwJ .taskText3{fill:#fff}#mermaid-svg-DwbL0jJta9a10HwJ .task0,#mermaid-svg-DwbL0jJta9a10HwJ .task1,#mermaid-svg-DwbL0jJta9a10HwJ .task2,#mermaid-svg-DwbL0jJta9a10HwJ .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-DwbL0jJta9a10HwJ .taskTextOutside0,#mermaid-svg-DwbL0jJta9a10HwJ .taskTextOutside2{fill:#000}#mermaid-svg-DwbL0jJta9a10HwJ .taskTextOutside1,#mermaid-svg-DwbL0jJta9a10HwJ .taskTextOutside3{fill:#000}#mermaid-svg-DwbL0jJta9a10HwJ .active0,#mermaid-svg-DwbL0jJta9a10HwJ .active1,#mermaid-svg-DwbL0jJta9a10HwJ .active2,#mermaid-svg-DwbL0jJta9a10HwJ .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-DwbL0jJta9a10HwJ .activeText0,#mermaid-svg-DwbL0jJta9a10HwJ .activeText1,#mermaid-svg-DwbL0jJta9a10HwJ .activeText2,#mermaid-svg-DwbL0jJta9a10HwJ .activeText3{fill:#000 !important}#mermaid-svg-DwbL0jJta9a10HwJ .done0,#mermaid-svg-DwbL0jJta9a10HwJ .done1,#mermaid-svg-DwbL0jJta9a10HwJ .done2,#mermaid-svg-DwbL0jJta9a10HwJ .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-DwbL0jJta9a10HwJ .doneText0,#mermaid-svg-DwbL0jJta9a10HwJ .doneText1,#mermaid-svg-DwbL0jJta9a10HwJ .doneText2,#mermaid-svg-DwbL0jJta9a10HwJ .doneText3{fill:#000 !important}#mermaid-svg-DwbL0jJta9a10HwJ .crit0,#mermaid-svg-DwbL0jJta9a10HwJ .crit1,#mermaid-svg-DwbL0jJta9a10HwJ .crit2,#mermaid-svg-DwbL0jJta9a10HwJ .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-DwbL0jJta9a10HwJ .activeCrit0,#mermaid-svg-DwbL0jJta9a10HwJ .activeCrit1,#mermaid-svg-DwbL0jJta9a10HwJ .activeCrit2,#mermaid-svg-DwbL0jJta9a10HwJ .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-DwbL0jJta9a10HwJ .doneCrit0,#mermaid-svg-DwbL0jJta9a10HwJ .doneCrit1,#mermaid-svg-DwbL0jJta9a10HwJ .doneCrit2,#mermaid-svg-DwbL0jJta9a10HwJ .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-DwbL0jJta9a10HwJ .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-DwbL0jJta9a10HwJ .milestoneText{font-style:italic}#mermaid-svg-DwbL0jJta9a10HwJ .doneCritText0,#mermaid-svg-DwbL0jJta9a10HwJ .doneCritText1,#mermaid-svg-DwbL0jJta9a10HwJ .doneCritText2,#mermaid-svg-DwbL0jJta9a10HwJ .doneCritText3{fill:#000 !important}#mermaid-svg-DwbL0jJta9a10HwJ .activeCritText0,#mermaid-svg-DwbL0jJta9a10HwJ .activeCritText1,#mermaid-svg-DwbL0jJta9a10HwJ .activeCritText2,#mermaid-svg-DwbL0jJta9a10HwJ .activeCritText3{fill:#000 !important}#mermaid-svg-DwbL0jJta9a10HwJ .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwbL0jJta9a10HwJ g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-DwbL0jJta9a10HwJ g.classGroup text .title{font-weight:bolder}#mermaid-svg-DwbL0jJta9a10HwJ g.clickable{cursor:pointer}#mermaid-svg-DwbL0jJta9a10HwJ g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-DwbL0jJta9a10HwJ g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-DwbL0jJta9a10HwJ .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-DwbL0jJta9a10HwJ .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-DwbL0jJta9a10HwJ .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-DwbL0jJta9a10HwJ .dashed-line{stroke-dasharray:3}#mermaid-svg-DwbL0jJta9a10HwJ #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-DwbL0jJta9a10HwJ #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-DwbL0jJta9a10HwJ #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-DwbL0jJta9a10HwJ #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-DwbL0jJta9a10HwJ #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-DwbL0jJta9a10HwJ #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-DwbL0jJta9a10HwJ #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-DwbL0jJta9a10HwJ #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-DwbL0jJta9a10HwJ .commit-id,#mermaid-svg-DwbL0jJta9a10HwJ .commit-msg,#mermaid-svg-DwbL0jJta9a10HwJ .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwbL0jJta9a10HwJ .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwbL0jJta9a10HwJ .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwbL0jJta9a10HwJ g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwbL0jJta9a10HwJ g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-DwbL0jJta9a10HwJ g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-DwbL0jJta9a10HwJ g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-DwbL0jJta9a10HwJ g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-DwbL0jJta9a10HwJ g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-DwbL0jJta9a10HwJ .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-DwbL0jJta9a10HwJ .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-DwbL0jJta9a10HwJ .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-DwbL0jJta9a10HwJ .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-DwbL0jJta9a10HwJ .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-DwbL0jJta9a10HwJ .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-DwbL0jJta9a10HwJ .edgeLabel text{fill:#333}#mermaid-svg-DwbL0jJta9a10HwJ .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwbL0jJta9a10HwJ .node circle.state-start{fill:black;stroke:black}#mermaid-svg-DwbL0jJta9a10HwJ .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-DwbL0jJta9a10HwJ #statediagram-barbEnd{fill:#9370db}#mermaid-svg-DwbL0jJta9a10HwJ .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-DwbL0jJta9a10HwJ .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-DwbL0jJta9a10HwJ .statediagram-state .divider{stroke:#9370db}#mermaid-svg-DwbL0jJta9a10HwJ .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-DwbL0jJta9a10HwJ .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-DwbL0jJta9a10HwJ .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-DwbL0jJta9a10HwJ .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-DwbL0jJta9a10HwJ .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-DwbL0jJta9a10HwJ .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-DwbL0jJta9a10HwJ .note-edge{stroke-dasharray:5}#mermaid-svg-DwbL0jJta9a10HwJ .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-DwbL0jJta9a10HwJ .error-icon{fill:#522}#mermaid-svg-DwbL0jJta9a10HwJ .error-text{fill:#522;stroke:#522}#mermaid-svg-DwbL0jJta9a10HwJ .edge-thickness-normal{stroke-width:2px}#mermaid-svg-DwbL0jJta9a10HwJ .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-DwbL0jJta9a10HwJ .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-DwbL0jJta9a10HwJ .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-DwbL0jJta9a10HwJ .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-DwbL0jJta9a10HwJ .marker{fill:#333}#mermaid-svg-DwbL0jJta9a10HwJ .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-DwbL0jJta9a10HwJ {color: rgba(0, 0, 0, 0.75);font: ;}

QGCListView
PlanView.qml
MissionItemEditor.qml
missionItem.editorQml
SimpleItemEditor.qml
MissionSettingsEditor.qml
FWLandingPatternEditor.qml
SurveyItemEditor.qml
...

QGC源码分析——航向规划中航点编辑流程(QGroundControl)相关推荐

  1. Netty源码分析第1章(Netty启动流程)----第4节: 注册多路复用

    Netty源码分析第1章(Netty启动流程)---->第4节: 注册多路复用 Netty源码分析第一章:Netty启动流程   第四节:注册多路复用 回顾下以上的小节, 我们知道了channe ...

  2. Android 系统(78)---《android framework常用api源码分析》之 app应用安装流程

    <android framework常用api源码分析>之 app应用安装流程 <android framework常用api源码分析>android生态在中国已经发展非常庞大 ...

  3. 【SemiDrive源码分析】【X9芯片启动流程】12 - freertos_safetyos目录Cortex-R5 DIL2.bin 之 sdm_display_init 显示初始化源码分析

    [SemiDrive源码分析][X9芯片启动流程]12 - freertos_safetyos目录Cortex-R5 DIL2.bin 之 sdm_display_init 显示初始化源码分析 一.s ...

  4. 【SemiDrive源码分析】【X9芯片启动流程】08 - X9平台 lk 目录源码分析 之 目录介绍

    [SemiDrive源码分析][X9芯片启动流程]08 - X9平台 lk 目录源码分析 之 目录介绍 一./rtos/lk/ 目录结构分析 1.1 /rtos/lk_boot/ 目录结构分析 1.2 ...

  5. 【SemiDrive源码分析】【X9芯片启动流程】21 - MailBox 核间通信机制介绍(代码分析篇)之 Mailbox for Linux 篇

    [SemiDrive源码分析][X9芯片启动流程]21 - MailBox 核间通信机制介绍(代码分析篇)之 Mailbox for Linux 篇 一.Mailbox for Linux 驱动框架分 ...

  6. 【SemiDrive源码分析】【X9芯片启动流程】20 - MailBox 核间通信机制介绍(代码分析篇)之 MailBox for RTOS 篇

    [SemiDrive源码分析][X9芯片启动流程]20 - MailBox 核间通信机制介绍(代码分析篇)之 MailBox for RTOS 篇 一.Mailbox for RTOS 源码分析 1. ...

  7. 【SemiDrive源码分析】【X9芯片启动流程】30 - AP1 Android Kernel 启动流程 start_kernel 函数详细分析(一)

    [SemiDrive源码分析][X9芯片启动流程]30 - AP1 Android Kernel 启动流程 start_kernel 函数详细分析(一) 一.Android Kernel 启动流程分析 ...

  8. 【SemiDrive源码分析】【X9芯片启动流程】19 - MailBox 核间通信机制介绍(理论篇)

    [SemiDrive源码分析][X9芯片启动流程]19 - MailBox 核间通信机制介绍(理论篇) 一.核间通信 二.核间通信软件架构 三.Mailbox 设备驱动 3.1 Mailbox for ...

  9. 【SemiDrive源码分析】【X9芯片启动流程】23 - MailBox 核间通信机制介绍(代码分析篇)之 RPMSG-IPCC Kernel 篇

    [SemiDrive源码分析][X9芯片启动流程]23 - MailBox 核间通信机制介绍(代码分析篇)之 RPMSG-IPCC Kernel 篇 一.RPMSG 接口 1.1 Linux Kern ...

最新文章

  1. AspectJ切入点语法详解
  2. 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 ExpandoMetaClass 进行方法注入 )
  3. centos6.2部署jdk+tomcat+mysql总结
  4. 带你了解『百度智能云发布云智一体的AI开发全栈模式』
  5. 前端开发的正确姿势——各种文件的目录结构规划及引用
  6. java诸神之战游戏_mj回溯算法 - osc_7bgz0no1的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. C. Number of Pairs
  8. 空间换时间,查表法的经典例子
  9. C++建立队列_利用链表
  10. dw怎么修改html框架的宽度,Dreamweaver (dw)cs6中div标签宽度和高度设置方法
  11. 7添加静态路由 hat red_Centos7/RHEL 7 配置静态路由
  12. 富文本编辑器使用案例
  13. webstorm比较文件差异
  14. Mybatis 核心知识点整理成图
  15. WorkNC如何创建夹具系统 (以虎钳为例)
  16. 24点游戏---java编写
  17. 什么是高防服务器,高防服务器的原理
  18. Jsoup 爬取真气网排名信息
  19. 初学者指南:如何毫不费力地优化Jupyter笔记本?
  20. 浏览器开发者工具修改html后执行,谷歌Chrome浏览器开发者工具教程—JS调试篇

热门文章

  1. 记一次稀里糊涂的面试
  2. 面向过程与面向对象的区别
  3. 在aws云将本地虚拟机镜像上传
  4. Hadoop总结——Hadoop基础
  5. ios打没有签名的ipa包
  6. IDEA创建父项目和子项目
  7. ffmpeg 图片转视频
  8. [BZOJ1233][Usaco2009Open]干草堆tower(单调队列优化)
  9. 浏览器下载的excel文件损坏无法打开
  10. 进度条程序详解(Linux)