Files
luban-lite-t3e-pro/doc/topics/sdk/display/display_init_process.html
2025-01-23 16:37:00 +08:00

204 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn" data-whc_version="26.0">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="description" content="Probe 和 Bind 过程 为了约束初始化顺序AICFB 为 component 的 master 设备DE、DI 和 panel 为 slave 设备component 框架保证 master 的初始化顺序在所有 slave 之后。各模块的初始化顺序如下: 图 1 . 显示模块的初始化顺序 其中: Master 调用 component_match_add() 接口声明一个 match ..."/><meta name="DC.rights.owner" content="(C) 版权 2025"/><meta name="copyright" content="(C) 版权 2025"/><meta name="generator" content="DITA-OT"/><meta name="DC.type" content="concept"/><meta name="DC.creator" content="yan.wang"/><meta name="DC.date.created" content="2024-01-18"/><meta name="DC.date.modified" content="2024-11-28"/><meta name="DC.format" content="HTML5"/><meta name="DC.identifier" content="display_initialization_process"/><meta name="DC.language" content="zh-CN"/><title>初始化流程</title><!-- Build number 2023110923. --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content=""/><meta name="wh-source-relpath" content="topics/sdk/display/display_init_process.dita"/><meta name="wh-out-relpath" content="topics/sdk/display/display_init_process.html"/>
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/commons.css?buildId=2023110923"/>
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/topic.css?buildId=2023110923"/>
<script src="../../../webhelp/app/options/properties.js?buildId=20250121171154"></script>
<script src="../../../webhelp/app/localization/strings.js?buildId=2023110923"></script>
<script src="../../../webhelp/app/search/index/keywords.js?buildId=20250121171154"></script>
<script defer="defer" src="../../../webhelp/app/commons.js?buildId=2023110923"></script>
<script defer="defer" src="../../../webhelp/app/topic.js?buildId=2023110923"></script>
<link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-styles-web.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/notes.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-common.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-images.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/footnote.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-web-watermark.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/topic-body-list.css?buildId=2023110923"/></head>
<body id="display_initialization_process" class="wh_topic_page frmBody">
<a href="#wh_topic_body" class="sr-only sr-only-focusable">
跳转到主要内容
</a>
<header class="navbar navbar-default wh_header">
<div class="container-fluid">
<div class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
<div class="wh_logo_and_publication_title_container">
<div class="wh_logo_and_publication_title">
<a href="http://www.artinchip.com" class=" wh_logo d-none d-sm-block "><img src="../../../company-logo-white.png" alt="RTOS SDK 使用指南SDK 指南文件"/></a>
<div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle"><span class="ph mainbooktitle">RTOS SDK 使用指南</span><span class="ph booktitlealt">SDK 指南文件</span></span></a></div>
</div>
</div>
<div class="wh_top_menu_and_indexterms_link collapse navbar-collapse" id="wh_top_menu_and_indexterms_link">
</div>
</div>
</div>
</header>
<div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">
<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="搜索 " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="搜索查询" required="required"/><button type="submit" class="wh_search_button" aria-label="搜索"><span class="search_input_text">搜索</span></button></div></form>
</div>
<div class="container-fluid" id="wh_topic_container">
<div class="row">
<nav class="wh_tools d-print-none navbar-expand-md" aria-label="Tools">
<div data-tooltip-position="bottom" class=" wh_breadcrumb "></div>
<div class="wh_right_tools">
<button class="wh_hide_highlight" aria-label="切换搜索突出显示" title="切换搜索突出显示"></button>
<button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="折叠截面" title="折叠截面"></button>
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="打印此页" aria-label="打印此页"></button></div>
</div>
</nav>
</div>
<div class="wh_content_area">
<div class="row">
<div class="col-lg-10 col-md-10 col-sm-10 col-xs-12" id="wh_topic_body">
<button id="wh_close_topic_toc_button" class="close-toc-button d-none" aria-label="Toggle topic table of content" aria-controls="wh_topic_toc" aria-expanded="true">
<span class="close-toc-icon-container">
<span class="close-toc-icon"></span>
</span>
</button>
<div class=" wh_topic_content body "><main role="main"><article class="- topic/topic concept/concept topic concept" role="article" aria-labelledby="ariaid-title1"><span class="edit-link" style="font-size:12px; opacity:0.6; text-align:right; vertical-align:middle"><a target="_blank" href="http://172.16.35.88/tasks/jdssno1uvvbf2mltu9kb9v3if05d5gopuakboe8hlud18rma/edit/F:/aicdita/aicdita-cn/topics/sdk/display/display_init_process.dita">Edit online</a></span><h1 class="- topic/title title topictitle1" id="ariaid-title1">初始化流程</h1><div class="date inPage">28 Nov 2024</div><div style="color: gray;">
Read time: 1 minute(s)
</div><div class="- topic/body concept/conbody body conbody"><section class="- topic/section section" id="display_initialization_process__section_y1b_11g_d1c" data-ofbid="display_initialization_process__section_y1b_11g_d1c"><h2 class="- topic/title title sectiontitle">Probe 和 Bind 过程</h2>
<p class="- topic/p p" data-ofbid="d73372e28__20250121171523">为了约束初始化顺序AICFB 为 component 的 master 设备DE、DI 和 panel 为 slave 设备component 框架保证
master 的初始化顺序在所有 slave 之后。各模块的初始化顺序如下:</p>
<div class="- topic/p p" data-ofbid="d73372e31__20250121171523">
<figure class="- topic/fig fig fignone" id="display_initialization_process__fig_uh2_b1g_d1c" data-ofbid="display_initialization_process__fig_uh2_b1g_d1c"><br/><div class="imagecenter"><img class="- topic/image image imagecenter" id="display_initialization_process__image_z1b_11g_d1c" src="../../../images/display/driver_bind.png" width="384" alt="driver_bind"/></div><br/><figcaption data-caption-side="bottom" class="- topic/title title figcapcenter"><span class="figtitleprefix fig--title-label"><span class="fig--title-label-number"> 1</span><span class="fig--title-label-punctuation">. </span></span><span class="fig--title">显示模块的初始化顺序</span></figcaption></figure>
</div>
<p class="- topic/p p" data-ofbid="d73372e41__20250121171523">其中:</p>
<ol class="- topic/ol ol" id="display_initialization_process__ol_abb_11g_d1c" data-ofbid="display_initialization_process__ol_abb_11g_d1c"><li class="- topic/li li" data-ofbid="d73372e45__20250121171523">
<p class="- topic/p p" data-ofbid="d73372e47__20250121171523">Master 调用 component_match_add() 接口声明一个 match 队列。</p>
</li><li class="- topic/li li" data-ofbid="d73372e50__20250121171523">
<p class="- topic/p p" data-ofbid="d73372e52__20250121171523">Master 调用 component_master_add_with_match() 将自己注册进 component 框架。</p>
</li><li class="- topic/li li" data-ofbid="d73372e55__20250121171523">
<p class="- topic/p p" data-ofbid="d73372e57__20250121171523">Slave 调用 component_add()完成 slave 注册。</p>
</li><li class="- topic/li li" data-ofbid="d73372e60__20250121171523">
<p class="- topic/p p" data-ofbid="d73372e62__20250121171523">各模块的 probe 顺序没有约束,设备的注册和声明在 probe 函数中进行。</p>
</li><li class="- topic/li li" data-ofbid="d73372e65__20250121171523">
<p class="- topic/p p" data-ofbid="d73372e67__20250121171523">每个子设备都要实现自己的 bind() 和 unbind() 接口struct component_ops当 match 队列中的模块都完成
probe 后component 框架会调用模块的 bind() 接口。</p>
</li><li class="- topic/li li" data-ofbid="d73372e70__20250121171523">
<p class="- topic/p p" data-ofbid="d73372e72__20250121171523">各 slave 按 match 队列顺序执行 bind()component 框架保证 master 最后执行。</p>
</li><li class="- topic/li li" data-ofbid="d73372e75__20250121171523">
<p class="- topic/p p" data-ofbid="d73372e77__20250121171523">aicfb-&gt;bind() 主要完成 framebuffer 申请、fb 设备注册、使能 UI 图层、使能 panel 等动作。</p>
</li></ol>
</section><section class="- topic/section section" id="display_initialization_process__section_bbb_11g_d1c" data-ofbid="display_initialization_process__section_bbb_11g_d1c"><h2 class="- topic/title title sectiontitle">硬件时序要求</h2><p class="- topic/p p" data-ofbid="d73372e84__20250121171523">DE、DI、panel
三个硬件模块在初始化时有一些时序要求,包含先后顺序、延迟大小,主要约束来自于 panel 侧。 为了应对这样的硬件特性,驱动设计中使用 callback
方式来实现多个模块间的互相调用。</p>
<div class="- topic/p p" data-ofbid="d73372e87__20250121171523">
<figure class="- topic/fig fig fignone" id="display_initialization_process__fig_jgb_c1g_d1c" data-ofbid="display_initialization_process__fig_jgb_c1g_d1c"><br/><div class="imagecenter"><img class="- topic/image image imagecenter" id="display_initialization_process__image_cbb_11g_d1c" src="../../../images/display/display_callbacks.png" width="480" alt="callbacks1"/></div><br/></figure>
</div><p class="- topic/p p" data-ofbid="d73372e94__20250121171523">在 fb 的 bind()中,会调用这些回调来完成初始化,如下图(其中关系比较绕的是 panel 初始化逻辑):</p><div class="- topic/p p" data-ofbid="d73372e96__20250121171523"><br/><div class="imagecenter"><img class="- topic/image image imagecenter" id="display_initialization_process__image_dbb_11g_d1c" src="../../../images/display/fb_bind.png" width="480" alt="fb_bind"/></div><br/></div></section></div></article></main></div>
</div>
<nav role="navigation" id="wh_topic_toc" aria-label="On this page" class="col-lg-2 d-none d-lg-block navbar d-print-none">
<div id="wh_topic_toc_content">
<div class=" wh_topic_toc "><div class="wh_topic_label">在本页上</div><ul><li class="section-item"><div class="section-title"><a href="#display_initialization_process__section_y1b_11g_d1c" data-tocid="display_initialization_process__section_y1b_11g_d1c">Probe 和 Bind 过程</a></div></li><li class="section-item"><div class="section-title"><a href="#display_initialization_process__section_bbb_11g_d1c" data-tocid="display_initialization_process__section_bbb_11g_d1c">硬件时序要求</a></div></li></ul></div>
</div>
</nav>
</div>
</div>
</div>
<footer class="navbar navbar-default wh_footer">
<div class=" footer-container mx-auto ">
<title>footer def</title>
<style><!--
.p1 {
font-family: FangZhengShuSong, Times, serif;
}
.p2 {
font-family: Arial, Helvetica, sans-serif;
}
.p3 {
font-family: "Lucida Console", "Courier New", monospace;
}
--></style>
<div class="webhelp.fragment.footer">
<p class="p1">Copyright © 2019-2024 广东匠芯创科技有限公司. All rights reserved.</p>
</div><div>
<div class="generation_time">
Update Time: 2025-01-21
</div>
</div>
</div>
</footer>
<div id="go2top" class="d-print-none">
<span class="oxy-icon oxy-icon-up"></span>
</div>
<div id="modal_img_large" class="modal">
<span class="close oxy-icon oxy-icon-remove"></span>
<div id="modal_img_container"></div>
<div id="caption"></div>
</div>
<script src="${pd}/publishing/publishing-styles-AIC-template/js/custom.js" defer="defer"></script>
</body>
</html>