[doc] update flash,usb,pm,fatfs rst

This commit is contained in:
jzlv 2021-10-14 18:54:16 +08:00
parent d66a28da5c
commit 8b587dbed2
546 changed files with 65199 additions and 460 deletions

View file

@ -119,13 +119,14 @@
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">6. BLE 客户端和服务端互连</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#id1">6.1. 准备工具</a></li>
@ -405,12 +406,12 @@
</ul>
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> $ <span class="nb">cd</span> &lt;sdk_path&gt;/bl_mcu_sdk
$ make <span class="nv">BOARD</span><span class="o">=</span>bl706_iot <span class="nv">APP</span><span class="o">=</span>ble_peripheral <span class="nv">SUPPORT_FREERTOS</span><span class="o">=</span>y <span class="nv">SUPPORT_FLOAT</span><span class="o">=</span>y <span class="nv">SUPPORT_BLE</span><span class="o">=</span>y
$ make <span class="nv">BOARD</span><span class="o">=</span>bl706_iot <span class="nv">APP</span><span class="o">=</span>ble_peripheral <span class="nv">SUPPORT_FLOAT</span><span class="o">=</span>y
</pre></div>
</td></tr></table></div>
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> $ <span class="nb">cd</span> &lt;sdk_path&gt;/bl_mcu_sdk
$ make <span class="nv">BOARD</span><span class="o">=</span>bl706_iot <span class="nv">APP</span><span class="o">=</span>ble_central <span class="nv">SUPPORT_FREERTOS</span><span class="o">=</span>y <span class="nv">SUPPORT_FLOAT</span><span class="o">=</span>y <span class="nv">SUPPORT_BLE</span><span class="o">=</span>y
$ make <span class="nv">BOARD</span><span class="o">=</span>bl706_iot <span class="nv">APP</span><span class="o">=</span>ble_central <span class="nv">SUPPORT_FLOAT</span><span class="o">=</span>y
</pre></div>
</td></tr></table></div>
<ul>

View file

@ -40,7 +40,7 @@
<link rel="index" title="索引" href="../../genindex.html" />
<link rel="search" title="搜索" href="../../search.html" />
<link rel="next" title="6. BLE 客户端和服务端互连" href="ble_scan_demo.html" />
<link rel="prev" title="4. LowPower 低功耗评估" href="lowpower_demo.html" />
<link rel="prev" title="4. Power Management" href="lowpower_demo.html" />
</head>
<body class="wy-body-for-nav">
@ -119,13 +119,14 @@
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">5. BOOT2 IAP</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#id1">5.1. 准备工具</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id2">5.2. 实验现象</a></li>
@ -210,12 +211,12 @@
<p>Bouffalo Lab 为 IAP 功能应用提供了相应的 boot2_iap.bin 文件,并将其与 Dev Cube 软件包同步发布。
用户可以配合 Dev Cube 图形界面烧写软件,将已有的 boot2_iap.bin 文件烧录进目标板,烧录
一次之后,就可以通过 IAP 功能,在线更新用户代码。</p>
<p>bl_mcu_sdk 开源了 boot2_iap 的软件源码,用户可以到 examples/boot2_iap 查阅代码,并完成编译烧写。编译烧写过程可以参考《快速开发指南》介绍。</p>
<p>bl_mcu_sdk 开源了 boot2_iap 的软件源码,用户可以到 <code class="docutils literal notranslate"><span class="pre">examples/boot2_iap</span></code> 查阅代码,并完成编译烧写。编译烧写过程可以参考《快速开发指南》介绍。</p>
<div class="section" id="id1">
<h2><span class="section-number">5.1. </span>准备工具<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><p>最新版本的 Dev Cube</p></li>
<li><p>Bl706 开发板</p></li>
<li><p>BL706 开发板</p></li>
<li><p>TTL-USB 电平转换芯片</p></li>
</ul>
</div>
@ -232,7 +233,7 @@
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="ble_scan_demo.html" class="btn btn-neutral float-right" title="6. BLE 客户端和服务端互连" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="lowpower_demo.html" class="btn btn-neutral float-left" title="4. LowPower 低功耗评估" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="lowpower_demo.html" class="btn btn-neutral float-left" title="4. Power Management" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>

View file

@ -119,13 +119,14 @@
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">7. EMAC 以太网应用</a><ul class="current">

View file

@ -119,13 +119,14 @@
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">7. EMAC 以太网应用</a><ul class="current">

View file

@ -118,13 +118,14 @@
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">7. EMAC 以太网应用</a><ul class="current">

View file

@ -119,13 +119,14 @@
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">7. EMAC 以太网应用</a><ul class="current">

View file

@ -119,13 +119,14 @@
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">7. EMAC 以太网应用</a><ul class="current">

View file

@ -119,13 +119,14 @@
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">7. EMAC 以太网应用</a><ul>

View file

@ -7,7 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>2. Fatfs 文件系统读写 &mdash; BL_MCU_SDK 开发指南 0.3 文档</title>
<title>2. FatFs 文件系统读写(SD 卡) &mdash; BL_MCU_SDK 开发指南 0.3 文档</title>
@ -119,13 +119,21 @@
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">2. FatFs 文件系统读写(SD 卡)</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#id1">2.1. 准备工具</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id2">2.2. 硬件连接</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id3">2.3. 软件实现</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id4">2.4. 编译和烧录</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id5">2.5. 实验现象</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="emac/index.html">7. EMAC 以太网应用</a></li>
@ -177,7 +185,7 @@
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">2. </span>Fatfs 文件系统读写</li>
<li><span class="section-number">2. </span>FatFs 文件系统读写(SD 卡)</li>
<li class="wy-breadcrumbs-aside">
@ -196,8 +204,225 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="fatfs">
<h1><span class="section-number">2. </span>Fatfs 文件系统读写<a class="headerlink" href="#fatfs" title="永久链接至标题"></a></h1>
<div class="section" id="fatfs-sd">
<h1><span class="section-number">2. </span>FatFs 文件系统读写(SD 卡)<a class="headerlink" href="#fatfs-sd" title="永久链接至标题"></a></h1>
<p>本 demo 主要演示使用 spi 驱动 sd 卡并挂载 fatfs 文件系统的例子。其中 fatfs api 见 <a class="reference external" href="http://elm-chan.org/fsw/ff/00index_e.html">Fatfs 官网</a></p>
<div class="section" id="id1">
<h2><span class="section-number">2.1. </span>准备工具<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><p>一张 class10 的 sd 卡和 sd 卡转spi 转接板</p></li>
</ul>
</div>
<div class="section" id="id2">
<h2><span class="section-number">2.2. </span>硬件连接<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<p>本 demo 基于 BL706_AVB 开发板,连接方式如下</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">GPIO</span> <span class="n">function</span> <span class="n">GPIO</span> <span class="n">pin</span>
<span class="o">----------------------------------</span>
<span class="n">SD_CS</span> <span class="o">&lt;--&gt;</span> <span class="n">GPIO10</span>
<span class="n">SPI_SCK</span> <span class="o">&lt;--&gt;</span> <span class="n">GPIO19</span>
<span class="n">SPI_MISO</span> <span class="o">&lt;--&gt;</span> <span class="n">GPIO20</span>
<span class="n">SPI_MOSI</span> <span class="o">&lt;--&gt;</span> <span class="n">GPIO21</span>
</pre></div>
</div>
</div>
<div class="section" id="id3">
<h2><span class="section-number">2.3. </span>软件实现<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><p>软件代码见 <code class="docutils literal notranslate"><span class="pre">examples/spi/spi_dma_sd</span></code></p></li>
</ul>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp">#define BSP_SPI_CLOCK_SOURCE ROOT_CLOCK_SOURCE_BCLK</span>
<span class="cp">#define BSP_SPI_CLOCK_DIV 0</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>配置 <code class="docutils literal notranslate"><span class="pre">SPI</span></code> 设备时钟源,见 <code class="docutils literal notranslate"><span class="pre">bsp/board/bl706_avb/clock_config.h</span></code></p></li>
</ul>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp">#define CONFIG_GPIO19_FUNC GPIO_FUN_SPI</span>
<span class="cp">#define CONFIG_GPIO20_FUNC GPIO_FUN_SPI</span>
<span class="cp">#define CONFIG_GPIO21_FUNC GPIO_FUN_SPI</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>配置 <code class="docutils literal notranslate"><span class="pre">SPI</span></code> 设备复用引脚,见 <code class="docutils literal notranslate"><span class="pre">bsp/board/bl706_avb/pinmux_config.h</span></code>,,如有改动,请自行修改</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">注解</p>
<p>为适配 bl702_avb 硬件, SPI 的 MOSI 和 MISO 默认进行了调换,如果想要恢复默认,修改 <code class="docutils literal notranslate"><span class="pre">drivers/bl702_driver/hal_drv/default_config/spi_config.h</span></code><code class="docutils literal notranslate"><span class="pre">SPI_SWAP_ENABLE</span></code> 为 0</p>
</div>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp">#define BSP_USING_SPI0</span>
<span class="cp">#if defined(BSP_USING_SPI0)</span>
<span class="cp">#ifndef SPI0_CONFIG</span>
<span class="cp">#define SPI0_CONFIG \</span>
<span class="cp">{ \</span>
<span class="cp">.id = 0, \</span>
<span class="cp">.clk = 18000000,\</span>
<span class="cp">.mode = SPI_MASTER_MODE, \</span>
<span class="cp">.direction = SPI_MSB_BYTE0_DIRECTION_FIRST, \</span>
<span class="cp">.clk_polaraity = SPI_POLARITY_LOW, \</span>
<span class="cp">.clk_phase = SPI_PHASE_1EDGE, \</span>
<span class="cp">.datasize = SPI_DATASIZE_8BIT, \</span>
<span class="cp">.fifo_threshold = 4, \</span>
<span class="cp">}</span>
<span class="cp">#endif</span>
<span class="cp">#endif</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>使能 <code class="docutils literal notranslate"><span class="pre">BSP_USING_SPI0</span></code> 并配置 <code class="docutils literal notranslate"><span class="pre">SPI</span></code> 设备配置,见 <code class="docutils literal notranslate"><span class="pre">bsp/board/bl706_avb/peripheral_config.h</span></code></p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">注解</p>
<p>sd卡的频率不能过高所以设置成 18M 比较合适</p>
</div>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp">#define BSP_USING_DMA0_CH3</span>
<span class="cp">#define BSP_USING_DMA0_CH4</span>
<span class="cp">#if defined(BSP_USING_DMA0_CH3)</span>
<span class="cp">#ifndef DMA0_CH3_CONFIG</span>
<span class="cp">#define DMA0_CH3_CONFIG \</span>
<span class="cp"> { \</span>
<span class="cp"> .id = 0, \</span>
<span class="cp"> .ch = 3, \</span>
<span class="cp"> .direction = DMA_MEMORY_TO_PERIPH, \</span>
<span class="cp"> .transfer_mode = DMA_LLI_ONCE_MODE, \</span>
<span class="cp"> .src_req = DMA_REQUEST_NONE, \</span>
<span class="cp"> .dst_req = DMA_REQUEST_SPI0_TX, \</span>
<span class="cp"> .src_width = DMA_TRANSFER_WIDTH_8BIT, \</span>
<span class="cp"> .dst_width = DMA_TRANSFER_WIDTH_8BIT, \</span>
<span class="cp"> }</span>
<span class="cp">#endif</span>
<span class="cp">#endif</span>
<span class="cp">#if defined(BSP_USING_DMA0_CH4)</span>
<span class="cp">#ifndef DMA0_CH4_CONFIG</span>
<span class="cp">#define DMA0_CH4_CONFIG \</span>
<span class="cp"> { \</span>
<span class="cp"> .id = 0, \</span>
<span class="cp"> .ch = 4, \</span>
<span class="cp"> .direction = DMA_PERIPH_TO_MEMORY, \</span>
<span class="cp"> .transfer_mode = DMA_LLI_ONCE_MODE, \</span>
<span class="cp"> .src_req = DMA_REQUEST_SPI0_RX, \</span>
<span class="cp"> .dst_req = DMA_REQUEST_NONE, \</span>
<span class="cp"> .src_width = DMA_TRANSFER_WIDTH_8BIT, \</span>
<span class="cp"> .dst_width = DMA_TRANSFER_WIDTH_8BIT, \</span>
<span class="cp"> }</span>
<span class="cp">#endif</span>
<span class="cp">#endif</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>使能 <code class="docutils literal notranslate"><span class="pre">BSP_USING_DMA0_CH3</span></code> <code class="docutils literal notranslate"><span class="pre">BSP_USING_DMA0_CH4</span></code> 并配置 <code class="docutils literal notranslate"><span class="pre">DMA</span></code> 设备配置,见 <code class="docutils literal notranslate"><span class="pre">bsp/board/bl706_avb/peripheral_config.h</span></code></p></li>
</ul>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">fatfs_sd_driver_register</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">FATFS_DiskioDriverTypeDef</span> <span class="n">sdDiskioDriver</span><span class="p">;</span>
<span class="n">memset</span><span class="p">(</span><span class="o">&amp;</span><span class="n">sdDiskioDriver</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">FATFS_DiskioDriverTypeDef</span><span class="p">));</span>
<span class="n">sdDiskioDriver</span><span class="p">.</span><span class="n">MMC_disk_status</span> <span class="o">=</span> <span class="n">sd_disk_status</span><span class="p">;</span>
<span class="n">sdDiskioDriver</span><span class="p">.</span><span class="n">MMC_disk_initialize</span> <span class="o">=</span> <span class="n">sd_disk_initialize</span><span class="p">;</span>
<span class="n">sdDiskioDriver</span><span class="p">.</span><span class="n">MMC_disk_write</span> <span class="o">=</span> <span class="n">sd_disk_write</span><span class="p">;</span>
<span class="n">sdDiskioDriver</span><span class="p">.</span><span class="n">MMC_disk_read</span> <span class="o">=</span> <span class="n">sd_disk_read</span><span class="p">;</span>
<span class="n">sdDiskioDriver</span><span class="p">.</span><span class="n">MMC_disk_ioctl</span> <span class="o">=</span> <span class="n">sd_disk_ioctl</span><span class="p">;</span>
<span class="n">sdDiskioDriver</span><span class="p">.</span><span class="n">Translate_Result_Code</span> <span class="o">=</span> <span class="n">Translate_Result_Code</span><span class="p">;</span>
<span class="n">disk_driver_callback_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">sdDiskioDriver</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>实现 fatfs 需要的底层接口</p></li>
</ul>
<p>剩余代码见 main.c。</p>
</div>
<div class="section" id="id4">
<h2><span class="section-number">2.4. </span>编译和烧录<a class="headerlink" href="#id4" title="永久链接至标题"></a></h2>
<ul>
<li><p><strong>CDK 编译</strong></p>
<p>打开项目中提供的工程文件spi_dma_sd.cdkproj</p>
<p>参照 <a class="reference internal" href="../../get_started/Windows_quick_start_cdk.html#windows-cdk-quick-start"><span class="std std-ref">Windows 下使用 CDK (类 MDK Keil)开发指南</span></a> 的步骤编译下载即可</p>
</li>
<li><p><strong>命令行编译</strong></p></li>
</ul>
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> $ <span class="nb">cd</span> &lt;sdk_path&gt;/bl_mcu_sdk
$ make <span class="nv">BOARD</span><span class="o">=</span>bl706_avb <span class="nv">APP</span><span class="o">=</span>spi_dma_sd
</pre></div>
</td></tr></table></div>
<ul>
<li><p><strong>烧录</strong></p>
<p>详见 <a class="reference internal" href="../../get_started/bl_dev_cube.html#bl-dev-cube"><span class="std std-ref">BLDevCube 烧录工具指南</span></a></p>
</li>
</ul>
</div>
<div class="section" id="id5">
<h2><span class="section-number">2.5. </span>实验现象<a class="headerlink" href="#id5" title="永久链接至标题"></a></h2>
</div>
</div>

View file

@ -7,7 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>4. LowPower 低功耗评估 &mdash; BL_MCU_SDK 开发指南 0.3 文档</title>
<title>4. Power Management &mdash; BL_MCU_SDK 开发指南 0.3 文档</title>
@ -119,20 +119,23 @@
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">4. LowPower 低功耗评估</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#id1">4.1. 简介</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id2">4.2. <strong>低功耗示例测试方法</strong></a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id3">4.2.1. <strong>编译低功耗示例代码</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="#id4">4.2.2. <strong>准备低功耗测试所需的硬件环境</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="#xshell">4.2.3. <strong>使用 Xshell 开始评估低功耗性能</strong></a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">4. Power Management</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#id1">4.1. 准备工具</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id2">4.2. 硬件连接</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id3">4.3. 软件实现</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#pds">4.3.1. PDS 模式</a></li>
<li class="toctree-l3"><a class="reference internal" href="#hbn">4.3.2. HBN 模式</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#id4">4.4. 编译和烧录</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id5">4.5. 实验现象</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="boot2_iap_info.html">5. BOOT2 IAP</a></li>
@ -186,7 +189,7 @@
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">4. </span>LowPower 低功耗评估</li>
<li><span class="section-number">4. </span>Power Management</li>
<li class="wy-breadcrumbs-aside">
@ -205,119 +208,334 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="lowpower">
<h1><span class="section-number">4. </span>LowPower 低功耗评估<a class="headerlink" href="#lowpower" title="永久链接至标题"></a></h1>
<div class="section" id="id1">
<h2><span class="section-number">4.1. </span>简介<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
<p>博流系列芯片拥有丰富的低功耗特性,以适配不同的低功耗应用场合。为了方便用户快速的评测使用 bl 系列 MCU 低功耗性能 bl_mcu_sdk 提供了一套抽象的低功耗接口,将低功耗等级分为四个等级,分别为</p>
<ol class="arabic simple">
<li><p>Running : Running 为 CPU 正常运行时的功耗,由客户应用代码执行的功能决定功耗。</p></li>
<li><p>WFI WFI 模式CPU 的 clock 处于被 Gating 状态CPU 停止运行当用户退出WFI模式的时候程序将会继续运行。</p></li>
<li><p>PDS : PDS 模式,关闭了芯片上大多数电源域,同时关闭了 CPU和 CPU 处于同一个电源域的 ITCMDTCM 等 RAM 不可使用,只有 64K 的 OCTAM 可以保存数据,可以通过内部 RTC 进行唤醒,或者使用 GPIO 引脚(在 GPIO 电源域没有关闭的情况下)唤醒。</p></li>
<li><p>HBN : HBN 模式,关闭了芯片上绝大多数电源域,关闭了 CPU 以及 64K OCRAM只有位于 AON 域的 4K RAM 可以保存数据,可以通过内部 RTC 进行唤醒,或者使用特定的唤醒引脚(位于 AON 域的引脚)唤醒。</p></li>
</ol>
<p>bl_mcu_sdk 提供了一个简单的低功耗参考示例(bl_mcu_sdk examples/power/lowpower_test/),旨在帮助用户快速评估低功耗功能,如果需要进一步适配自身的低功耗场景,采取不同的低功耗策略,请查阅相关 datasheet 或者寻找 Boufflao Lab 的技术支持。
在该示例中,外设及 CPU 的时钟选择均是晶振 32M。基于该示例的功耗测量结果如下表所示:</p>
<blockquote>
<div><table class="docutils align-default">
<colgroup>
<col style="width: 14%" />
<col style="width: 14%" />
<col style="width: 14%" />
<col style="width: 25%" />
<col style="width: 32%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>模式</p></th>
<th class="head"><p>参考电流</p></th>
<th class="head"><p>对应基础模式</p></th>
<th class="head"><p>唤醒源</p></th>
<th class="head"><p>备注</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>Running</p></td>
<td><p>5.68 mA</p></td>
<td><p>Run</p></td>
<td></td>
<td><p>所有外设时钟都打开</p></td>
</tr>
<tr class="row-odd"><td><p>WFI</p></td>
<td><p>3.14 mA</p></td>
<td><p>WFI</p></td>
<td><p>任意中断</p></td>
<td><p>除串口外,其它外设时钟关闭</p></td>
</tr>
<tr class="row-even"><td><p>PDS</p></td>
<td><p>10 uA</p></td>
<td><p>PDS 31</p></td>
<td><p>内部RTC/引脚中断</p></td>
<td><p>64K OCRAM保存数据</p></td>
</tr>
<tr class="row-odd"><td><p>HBN</p></td>
<td><p>1 uA</p></td>
<td><p>HBN 1</p></td>
<td><p>内部RTC/引脚中断</p></td>
<td><p>4K AON RAM保存数据</p></td>
</tr>
</tbody>
</table>
</div></blockquote>
<p>上表中的参考电流是通过示例固件测试得出的。符合 bl70x 系列 MCU 的 spec 的描述run wfi pds hbn 四种等级的定义简化了原先的 hbn level 以及 pds level 的设定。</p>
<p>见 bl702_bl704_bl706_DS_EN_Combo_1.9.pdf page 28</p>
<div class="figure align-default">
<img alt="../../_images/powerTable.png" src="../../_images/powerTable.png" />
</div>
</div>
<div class="section" id="id2">
<h2><span class="section-number">4.2. </span><strong>低功耗示例测试方法</strong><a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<div class="section" id="id3">
<h3><span class="section-number">4.2.1. </span><strong>编译低功耗示例代码</strong><a class="headerlink" href="#id3" title="永久链接至标题"></a></h3>
<p>在工程目录下键入 <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">APP=lowpower_test</span>&#160; <span class="pre">SUPPORT_SHELL=y</span> <span class="pre">BOARD=bl706_lp</span></code> 完成低功耗示例 bl706 的编译。或者直接使用 CDK 工程,完成编译下载
您可以参考本文档《快速开发指南》来获取更多编译烧写的信息。</p>
<p>当编译并烧写成功后连接串口到电脑端并复位芯片Xshell 会出现如下图所示的页面。</p>
<div class="figure align-default">
<img alt="../../_images/xShell_lowpower.png" src="../../_images/xShell_lowpower.png" />
</div>
</div>
<div class="section" id="id4">
<h3><span class="section-number">4.2.2. </span><strong>准备低功耗测试所需的硬件环境</strong><a class="headerlink" href="#id4" title="永久链接至标题"></a></h3>
<div class="section" id="power-management">
<h1><span class="section-number">4. </span>Power Management<a class="headerlink" href="#power-management" title="永久链接至标题"></a></h1>
<p>本 demo 主要演示 bl 系列 mcu 低功耗性能。具体低功耗介绍请参考 <a class="reference external" href="https://dev.bouffalolab.com/media/upload/doc/BL702_BL704_706_RM_zh_CN_1.1.pdf">BL702/704/706 参考手册</a></p>
<p>低功耗模式:</p>
<ul class="simple">
<li><p>Running : Running 为 CPU 正常运行时的功耗,由客户应用代码执行的功能决定功耗。</p></li>
<li><p>WFI 模式CPU 的 clock 处于被 Gating 状态CPU 停止运行当用户退出WFI模式的时候程序将会继续运行。</p></li>
<li><p>PDS 模式: 根据不同的模式关闭不同的电源域,当关闭了 CPU 电源域时ITCMDTCM RAM 不可使用,只有 64K 的 OCRAM 可以使用。</p></li>
<li><p>HBN 模式: 根据不同的模式关闭不同的电源域ITCMDTCM OCRAM RAM 无法使用,在 hbn0 下位于 AON 域的 4K RAM 可以使用,其他 hbn 模式下 4K RAM 也不可使用。</p></li>
</ul>
<p>演示内容:</p>
<ul class="simple">
<li><p>pds3 使用 gpio10 外部中断下降沿唤醒</p></li>
<li><p>pds31 使用 pds 唤醒脚 (gpio6) 唤醒</p></li>
<li><p>pds31 使用 pds timer 唤醒</p></li>
<li><p>hbn0 使用 acomp (gpio11) 唤醒</p></li>
<li><p>hbn1 使用 rtc 唤醒</p></li>
<li><p>hbn2 使用 hbn 唤醒脚 (gpio12) 唤醒</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">注解</p>
<p>高级别的唤醒源可以唤醒低级别的功耗模式,比如 hbn 唤醒脚可以唤醒所有的低功耗模式。</p>
</div>
<div class="section" id="id1">
<h2><span class="section-number">4.1. </span>准备工具<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><p>pc控制端使用串口终端软件xshell 或者 mobaxterm</p></li>
<li><p>可以串联电流表到电源端的电路板</p></li>
<li><p>电流表</p></li>
<li><p>一台 PC 主机(运行 Windows 或者 Linux 系统)</p></li>
<li><p>TTL 转 USB</p></li>
<li><p>滑动变阻器</p></li>
</ul>
<p>如下图所示,将电流表串联进入 bl706 模组的供电线路,通过 PC 端的串口调试助手软件,下发不同的低功耗指令,使得 bl706 进入对应的低功耗模式
观察电流表示值,完成评估。</p>
<div class="figure align-default">
<img alt="../../_images/lowpower_arch.png" src="../../_images/lowpower_arch.png" />
</div>
</div>
<div class="section" id="xshell">
<h3><span class="section-number">4.2.3. </span><strong>使用 Xshell 开始评估低功耗性能</strong><a class="headerlink" href="#xshell" title="永久链接至标题"></a></h3>
<p>用户可以通过在 Xshell 输入下述指令,进入对应的低功耗模式。</p>
<p><code class="docutils literal notranslate"><span class="pre">run</span></code></p>
<div class="section" id="id2">
<h2><span class="section-number">4.2. </span>硬件连接<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<p>本 demo 基于 BL706_LP 开发板,连接方式如下</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">GPIO</span> <span class="n">function</span> <span class="n">GPIO</span> <span class="n">pin</span>
<span class="o">----------------------------------</span>
<span class="n">PDS_WAKEUP</span> <span class="o">&lt;--&gt;</span> <span class="n">GPIO6</span>
<span class="n">EXTI</span> <span class="o">&lt;--&gt;</span> <span class="n">GPIO10</span>
<span class="n">ADC</span> <span class="o">&lt;--&gt;</span> <span class="n">GPIO11</span>
<span class="n">HBN_WAKEUP</span> <span class="o">&lt;--&gt;</span> <span class="n">GPIO12</span>
<span class="n">UART0_TX</span> <span class="o">&lt;--&gt;</span> <span class="n">GPIO14</span>
<span class="n">UART0_RX</span> <span class="o">&lt;--&gt;</span> <span class="n">GPIO15</span>
</pre></div>
</div>
</div>
<div class="section" id="id3">
<h2><span class="section-number">4.3. </span>软件实现<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<p>软件基于 shell 进行调试,如何注册 shell 命令这里不再说明。</p>
<div class="section" id="pds">
<h3><span class="section-number">4.3.1. </span>PDS 模式<a class="headerlink" href="#pds" title="永久链接至标题"></a></h3>
<ul class="simple">
<li><p>复位芯片之后,默认进入 run 模式,没有进入任何低功耗模式,芯片实际在运行 while(1); 语句。</p></li>
<li><p>软件代码见 <code class="docutils literal notranslate"><span class="pre">examples/pm/pds_mode_wakeup</span></code></p></li>
</ul>
<p><code class="docutils literal notranslate"><span class="pre">wfi</span></code></p>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp">#define CONFIG_GPIO6_FUNC GPIO_FUN_WAKEUP</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>进入 wfi 模式后面不加任何参数进入之后CPU 处于 clock gating 状态,降低功耗</p></li>
<li><p>进入 wfi 模式后,任何中断会唤醒,例如 uart 中断。在 Xshell 中敲击回车会触发 BL706 UART RX 中断,因此可以通过此方法唤醒 wfi 低功耗模式。</p></li>
<li><p>pds 唤醒脚配置pds3 和 pds31 使用,见 <code class="docutils literal notranslate"><span class="pre">bsp/board/bl706_lp/pinmux_config.h</span></code></p></li>
</ul>
<p><code class="docutils literal notranslate"><span class="pre">pds</span> <span class="pre">sleeptime</span></code></p>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp">#define CONFIG_GPIO10_FUNC GPIO_FUN_GPIO_EXTI_FALLING_EDGE</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>pds 可以选择带一个 sleeptime 的参数,决定其内部 RTC 唤醒时间。如果指令不带此参数,那么默认不使用 RTC 内部唤醒,目前的固件仅支持上电复位唤醒。</p></li>
<li><p>如果指令包含 sleeptime 参数pds 将会在``sleeptime * clock_period`` 的时刻被唤醒,表现为复位芯片,重新打印起始报文。</p></li>
<li><p>进入低功耗模式后RTC 的时钟是 32K因此 sleeptime 为 32768 时,表现为睡眠 1S 后唤醒。</p></li>
<li><p>外部中断引脚配置pds3 使用,见 <code class="docutils literal notranslate"><span class="pre">bsp/board/bl706_lp/pinmux_config.h</span></code></p></li>
</ul>
<p><code class="docutils literal notranslate"><span class="pre">hbn</span> <span class="pre">sleeptime</span></code></p>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp">#define CONFIG_GPIO12_FUNC GPIO_FUN_WAKEUP</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>hbn 可以选择带一个 sleeptime 的参数,决定其内部 RTC 唤醒时间。如果指令不带此参数,那么默认不使用 RTC 内部唤醒,目前的固件仅支持上电复位唤醒。</p></li>
<li><p>如果指令包含 sleeptime 参数hbn 将会在``sleeptime * clock_period`` 的时刻被唤醒,表现为复位芯片,重新打印起始报文。</p></li>
<li><p>进入低功耗模式后RTC 的时钟是 32K因此 sleeptime 为 32768 时,表现为睡眠 1S 后唤醒。</p></li>
<li><p>hbn 唤醒脚配置pds3 和 pds31 使用,见 <code class="docutils literal notranslate"><span class="pre">bsp/board/bl706_lp/pinmux_config.h</span></code></p></li>
</ul>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">gpio_attach_irq</span><span class="p">(</span><span class="n">GPIO_PIN_10</span><span class="p">,</span> <span class="n">gpio_int_callback</span><span class="p">);</span>
<span class="n">gpio_irq_enable</span><span class="p">(</span><span class="n">GPIO_PIN_10</span><span class="p">,</span> <span class="n">ENABLE</span><span class="p">);</span> <span class="c1">//only used for level3</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>注册 gpio10 外部中断回调函数并使能</p></li>
</ul>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">pds3_enter</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*</span><span class="n">argv</span><span class="p">[])</span>
<span class="p">{</span>
<span class="n">MSG</span><span class="p">(</span><span class="s">&quot;gpio wake up case,enter pds3 mode</span><span class="se">\r\n</span><span class="s">&quot;</span><span class="p">);</span>
<span class="n">bflb_platform_delay_ms</span><span class="p">(</span><span class="mi">50</span><span class="p">);</span>
<span class="n">pm_pds_mode_enter</span><span class="p">(</span><span class="n">PM_PDS_LEVEL_3</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> <span class="cm">/*hbn、pds、exti gpio can wakeup*/</span>
<span class="n">BL_CASE_SUCCESS</span><span class="p">;</span> <span class="cm">/*level 3 can run here*/</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="kt">int</span> <span class="nf">pds31_enter</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*</span><span class="n">argv</span><span class="p">[])</span>
<span class="p">{</span>
<span class="kt">int</span> <span class="n">second</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">argc</span> <span class="o">==</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span>
<span class="n">second</span> <span class="o">=</span> <span class="n">atoi</span><span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="n">second</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="n">MSG</span><span class="p">(</span><span class="s">&quot;gpio wake up case,enter pds31 mode</span><span class="se">\r\n</span><span class="s">&quot;</span><span class="p">);</span>
<span class="n">bflb_platform_delay_ms</span><span class="p">(</span><span class="mi">50</span><span class="p">);</span>
<span class="n">pm_pds_mode_enter</span><span class="p">(</span><span class="n">PM_PDS_LEVEL_31</span><span class="p">,</span> <span class="n">second</span><span class="p">);</span> <span class="cm">/*hbn、pds gpio can wakeup*/</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="n">SHELL_CMD_EXPORT</span><span class="p">(</span><span class="n">pds3_enter</span><span class="p">,</span> <span class="n">pds3</span> <span class="n">gpio</span> <span class="n">wakeup</span> <span class="n">test</span><span class="p">)</span>
<span class="n">SHELL_CMD_EXPORT</span><span class="p">(</span><span class="n">pds31_enter</span><span class="p">,</span> <span class="n">pds31</span> <span class="n">gpio</span> <span class="n">wakeup</span> <span class="n">test</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>注册进入 pds3 和 pds31 的命令</p></li>
</ul>
</div>
<div class="section" id="hbn">
<h3><span class="section-number">4.3.2. </span>HBN 模式<a class="headerlink" href="#hbn" title="永久链接至标题"></a></h3>
<ul class="simple">
<li><p>软件代码见 <code class="docutils literal notranslate"><span class="pre">examples/pm/hbn_mode_wakeup</span></code></p></li>
</ul>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp">#define CONFIG_GPIO11_FUNC GPIO_FUN_ADC</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>adc 引脚配置hbn0 下 acomp 使用,见 <code class="docutils literal notranslate"><span class="pre">bsp/board/bl706_lp/pinmux_config.h</span></code></p></li>
</ul>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp">#define CONFIG_GPIO12_FUNC GPIO_FUN_WAKEUP</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>hbn 唤醒脚配置hbn0、hbn1、hbn2 使用,见 <code class="docutils literal notranslate"><span class="pre">bsp/board/bl706_lp/pinmux_config.h</span></code></p></li>
</ul>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span>
<span class="normal">35</span>
<span class="normal">36</span>
<span class="normal">37</span>
<span class="normal">38</span>
<span class="normal">39</span>
<span class="normal">40</span>
<span class="normal">41</span>
<span class="normal">42</span>
<span class="normal">43</span>
<span class="normal">44</span>
<span class="normal">45</span>
<span class="normal">46</span>
<span class="normal">47</span>
<span class="normal">48</span>
<span class="normal">49</span>
<span class="normal">50</span>
<span class="normal">51</span>
<span class="normal">52</span>
<span class="normal">53</span>
<span class="normal">54</span>
<span class="normal">55</span>
<span class="normal">56</span>
<span class="normal">57</span>
<span class="normal">58</span>
<span class="normal">59</span>
<span class="normal">60</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">hbn0_enter</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*</span><span class="n">argv</span><span class="p">[])</span>
<span class="p">{</span>
<span class="n">acomp_device_t</span> <span class="n">acomp_device</span><span class="p">;</span>
<span class="n">acomp_device</span><span class="p">.</span><span class="n">id</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">acomp_device</span><span class="p">.</span><span class="n">pos_ch</span> <span class="o">=</span> <span class="n">ACOMP_CHANNEL_ADC_CHANNEL3</span><span class="p">;</span> <span class="cm">/*from gpio11 adc func*/</span>
<span class="n">acomp_device</span><span class="p">.</span><span class="n">neg_ch</span> <span class="o">=</span> <span class="n">ACOMP_CHANNEL_0P375VBAT</span><span class="p">;</span>
<span class="n">acomp_device</span><span class="p">.</span><span class="n">pos_hysteresis_vol</span> <span class="o">=</span> <span class="n">ACOMP_HYSTERESIS_VOLT_50MV</span><span class="p">;</span>
<span class="n">acomp_device</span><span class="p">.</span><span class="n">neg_hysteresis_vol</span> <span class="o">=</span> <span class="n">ACOMP_HYSTERESIS_VOLT_50MV</span><span class="p">;</span>
<span class="n">acomp_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">acomp_device</span><span class="p">);</span>
<span class="n">bflb_platform_delay_ms</span><span class="p">(</span><span class="mi">50</span><span class="p">);</span> <span class="cm">/*delay for acomp*/</span>
<span class="k">for</span> <span class="p">(</span><span class="kt">uint32_t</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">30</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
<span class="n">MSG</span><span class="p">(</span><span class="s">&quot;status:%d</span><span class="se">\r\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">acomp_get_result</span><span class="p">(</span><span class="o">&amp;</span><span class="n">acomp_device</span><span class="p">));</span>
<span class="n">bflb_platform_delay_ms</span><span class="p">(</span><span class="mi">100</span><span class="p">);</span>
<span class="p">}</span>
<span class="n">MSG</span><span class="p">(</span><span class="s">&quot;acomp wake up case,enter hbn0 mode</span><span class="se">\r\n</span><span class="s">&quot;</span><span class="p">);</span>
<span class="n">bflb_platform_delay_ms</span><span class="p">(</span><span class="mi">50</span><span class="p">);</span>
<span class="cm">/** cpu will wakeup when acomp status change</span>
<span class="cm"> * please note that if you set gpio9-gpio12 with GPIO_FUN_WAKEUP,it will also wakeup this level</span>
<span class="cm"> * rtc can wakeup this level when sleep time do not equal 0</span>
<span class="cm"> **/</span>
<span class="n">pm_hbn_mode_enter</span><span class="p">(</span><span class="n">PM_HBN_LEVEL_0</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="kt">int</span> <span class="nf">hbn1_enter</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*</span><span class="n">argv</span><span class="p">[])</span>
<span class="p">{</span>
<span class="kt">int</span> <span class="n">second</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">argc</span> <span class="o">==</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span>
<span class="n">second</span> <span class="o">=</span> <span class="n">atoi</span><span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="n">second</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="p">}</span>
<span class="n">MSG</span><span class="p">(</span><span class="s">&quot;rtc wake up case,enter hbn1 mode</span><span class="se">\r\n</span><span class="s">&quot;</span><span class="p">);</span>
<span class="n">bflb_platform_delay_ms</span><span class="p">(</span><span class="mi">50</span><span class="p">);</span>
<span class="cm">/** cpu will wakeup when rtc sleep time timeout</span>
<span class="cm"> * please note that if you set gpio9-gpio12 with GPIO_FUN_WAKEUP,it will also wakeup this level</span>
<span class="cm"> **/</span>
<span class="n">pm_hbn_mode_enter</span><span class="p">(</span><span class="n">PM_HBN_LEVEL_1</span><span class="p">,</span> <span class="n">second</span><span class="p">);</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="kt">int</span> <span class="nf">hbn2_enter</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*</span><span class="n">argv</span><span class="p">[])</span>
<span class="p">{</span>
<span class="n">MSG</span><span class="p">(</span><span class="s">&quot;gpio wake up case,enter hbn2 mode</span><span class="se">\r\n</span><span class="s">&quot;</span><span class="p">);</span>
<span class="n">bflb_platform_delay_ms</span><span class="p">(</span><span class="mi">50</span><span class="p">);</span>
<span class="cm">/*cpu will wakeup when you set gpio9-gpio12 with GPIO_FUN_WAKEUP</span>
<span class="cm"> * rtc can not wakeup level2</span>
<span class="cm"> **/</span>
<span class="n">pm_hbn_mode_enter</span><span class="p">(</span><span class="n">PM_HBN_LEVEL_2</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>注册进入 hbn0、hbn1、hbn2 的命令</p></li>
</ul>
</div>
</div>
<div class="section" id="id4">
<h2><span class="section-number">4.4. </span>编译和烧录<a class="headerlink" href="#id4" title="永久链接至标题"></a></h2>
<ul>
<li><p><strong>CDK 编译</strong></p>
<blockquote>
<div><p>暂无,用户可以自己添加</p>
</div></blockquote>
</li>
<li><p><strong>命令行编译</strong></p></li>
</ul>
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> $ <span class="nb">cd</span> &lt;sdk_path&gt;/bl_mcu_sdk
$ make <span class="nv">BOARD</span><span class="o">=</span>bl706_lp <span class="nv">APP</span><span class="o">=</span>pds_mode_wakeup
$ make <span class="nv">BOARD</span><span class="o">=</span>bl706_lp <span class="nv">APP</span><span class="o">=</span>hbn_mode_wakeup
</pre></div>
</td></tr></table></div>
<ul>
<li><p><strong>烧录</strong></p>
<p>详见 <a class="reference internal" href="../../get_started/bl_dev_cube.html#bl-dev-cube"><span class="std std-ref">BLDevCube 烧录工具指南</span></a></p>
</li>
</ul>
</div>
<div class="section" id="id5">
<h2><span class="section-number">4.5. </span>实验现象<a class="headerlink" href="#id5" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><p>首先唤醒脚唤醒方式默认均为下降沿唤醒,所以需要将 GPIO6、GPIO10、GPIO12 引脚外接电阻到 3.3V。</p></li>
<li><p>acomp 变化电压阈值在 1.2375V,所以需要使用滑动电阻器,调整到 1.2375V0.375VBAT)后再使用。</p></li>
<li><p>打开终端,并按下 TAB 键可以列出命令。</p></li>
<li><p>输入需要执行命令回车即可运行。</p></li>
</ul>
<p><strong>PDS 模式</strong></p>
<div class="figure align-default">
<img alt="" src="../../_images/lowpower_pds.gif" />
</div>
<p><strong>HBN 模式</strong></p>
<div class="figure align-default">
<img alt="" src="../../_images/lowpower_hbn.gif" />
</div>
<p>详细测试结果见 <a class="reference external" href="https://dev.bouffalolab.com/media/upload/doc/BL702_BL704_BL706_DS_zh_CN_Combo_1.9.pdf">BL702/704/706 数据手册 page 28</a></p>
<div class="figure align-default">
<img alt="../../_images/powerTable.png" src="../../_images/powerTable.png" />
</div>
</div>
</div>

View file

@ -39,8 +39,8 @@
<link rel="index" title="索引" href="../../genindex.html" />
<link rel="search" title="搜索" href="../../search.html" />
<link rel="next" title="2. Fatfs 文件系统读写" href="fatfs_demo.html" />
<link rel="prev" title="10.1. TIMER - 秒中断定时" href="../basic%20samples/timer/timer_interrupt_demo.html" />
<link rel="next" title="2. FatFs 文件系统读写(SD 卡)" href="fatfs_demo.html" />
<link rel="prev" title="11.1. XIP FLASH - 数据读写" href="../basic%20samples/flash/flash_demo.html" />
</head>
<body class="wy-body-for-nav">
@ -119,6 +119,7 @@
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
@ -134,9 +135,9 @@
<li class="toctree-l2"><a class="reference internal" href="#id7">1.5. 实验现象</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="emac/index.html">7. EMAC 以太网应用</a></li>
@ -445,7 +446,7 @@
</ul>
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> $ <span class="nb">cd</span> &lt;sdk_path&gt;/bl_mcu_sdk
$ make <span class="nv">BOARD</span><span class="o">=</span>bl706_iot <span class="nv">APP</span><span class="o">=</span>shell <span class="nv">SUPPORT_SHELL</span><span class="o">=</span>y
$ make <span class="nv">BOARD</span><span class="o">=</span>bl706_iot <span class="nv">APP</span><span class="o">=</span>shell
</pre></div>
</td></tr></table></div>
<ul>
@ -469,8 +470,8 @@
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="fatfs_demo.html" class="btn btn-neutral float-right" title="2. Fatfs 文件系统读写" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="../basic%20samples/timer/timer_interrupt_demo.html" class="btn btn-neutral float-left" title="10.1. TIMER - 秒中断定时" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="fatfs_demo.html" class="btn btn-neutral float-right" title="2. FatFs 文件系统读写(SD 卡)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="../basic%20samples/flash/flash_demo.html" class="btn btn-neutral float-left" title="11.1. XIP FLASH - 数据读写" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>

View file

@ -40,7 +40,7 @@
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
<link rel="next" title="3.1. CDC - 虚拟串口" href="usbd_cdc.html" />
<link rel="prev" title="2. Fatfs 文件系统读写" href="../fatfs_demo.html" />
<link rel="prev" title="2. FatFs 文件系统读写(SD 卡)" href="../fatfs_demo.html" />
</head>
<body class="wy-body-for-nav">
@ -119,20 +119,21 @@
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">3. USB Device 应用</a><ul>
<li class="toctree-l2"><a class="reference internal" href="usbd_cdc.html">3.1. CDC - 虚拟串口</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_msc.html">3.2. MSC - U 盘</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_msc.html">3.2. MSC - U 盘升级</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_hid.html">3.3. HID - 键盘&amp;鼠标</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_video.html">3.4. VIDEO - 摄像头</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_audio.html">3.5. AUDIO - 麦克风</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../emac/index.html">7. EMAC 以太网应用</a></li>
@ -208,7 +209,7 @@
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="usbd_cdc.html">3.1. CDC - 虚拟串口</a></li>
<li class="toctree-l1"><a class="reference internal" href="usbd_msc.html">3.2. MSC - U 盘</a></li>
<li class="toctree-l1"><a class="reference internal" href="usbd_msc.html">3.2. MSC - U 盘升级</a></li>
<li class="toctree-l1"><a class="reference internal" href="usbd_hid.html">3.3. HID - 键盘&amp;鼠标</a></li>
<li class="toctree-l1"><a class="reference internal" href="usbd_video.html">3.4. VIDEO - 摄像头</a></li>
<li class="toctree-l1"><a class="reference internal" href="usbd_audio.html">3.5. AUDIO - 麦克风</a></li>
@ -223,7 +224,7 @@
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="usbd_cdc.html" class="btn btn-neutral float-right" title="3.1. CDC - 虚拟串口" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="../fatfs_demo.html" class="btn btn-neutral float-left" title="2. Fatfs 文件系统读写" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="../fatfs_demo.html" class="btn btn-neutral float-left" title="2. FatFs 文件系统读写(SD 卡)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>

View file

@ -39,7 +39,7 @@
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
<link rel="next" title="4. LowPower 低功耗评估" href="../lowpower_demo.html" />
<link rel="next" title="4. Power Management" href="../lowpower_demo.html" />
<link rel="prev" title="3.4. VIDEO - 摄像头" href="usbd_video.html" />
</head>
@ -119,14 +119,15 @@
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">3. USB Device 应用</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="usbd_cdc.html">3.1. CDC - 虚拟串口</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_msc.html">3.2. MSC - U 盘</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_msc.html">3.2. MSC - U 盘升级</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_hid.html">3.3. HID - 键盘&amp;鼠标</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_video.html">3.4. VIDEO - 摄像头</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">3.5. AUDIO - 麦克风</a><ul>
@ -139,7 +140,7 @@
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../emac/index.html">7. EMAC 以太网应用</a></li>
@ -587,7 +588,7 @@ USB 协议栈可以参考 API 手册下的 USB Stack 章节的说明。</p>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="../lowpower_demo.html" class="btn btn-neutral float-right" title="4. LowPower 低功耗评估" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="../lowpower_demo.html" class="btn btn-neutral float-right" title="4. Power Management" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="usbd_video.html" class="btn btn-neutral float-left" title="3.4. VIDEO - 摄像头" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>

View file

@ -39,7 +39,7 @@
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
<link rel="next" title="3.2. MSC - U 盘" href="usbd_msc.html" />
<link rel="next" title="3.2. MSC - U 盘升级" href="usbd_msc.html" />
<link rel="prev" title="3. USB Device 应用" href="index.html" />
</head>
@ -119,20 +119,21 @@
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">3. USB Device 应用</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">3.1. CDC - 虚拟串口</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_msc.html">3.2. MSC - U 盘</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_msc.html">3.2. MSC - U 盘升级</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_hid.html">3.3. HID - 键盘&amp;鼠标</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_video.html">3.4. VIDEO - 摄像头</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_audio.html">3.5. AUDIO - 麦克风</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../emac/index.html">7. EMAC 以太网应用</a></li>
@ -215,7 +216,7 @@
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="usbd_msc.html" class="btn btn-neutral float-right" title="3.2. MSC - U 盘" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="usbd_msc.html" class="btn btn-neutral float-right" title="3.2. MSC - U 盘升级" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="index.html" class="btn btn-neutral float-left" title="3. USB Device 应用" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>

View file

@ -40,7 +40,7 @@
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
<link rel="next" title="3.4. VIDEO - 摄像头" href="usbd_video.html" />
<link rel="prev" title="3.2. MSC - U 盘" href="usbd_msc.html" />
<link rel="prev" title="3.2. MSC - U 盘升级" href="usbd_msc.html" />
</head>
<body class="wy-body-for-nav">
@ -119,20 +119,21 @@
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">3. USB Device 应用</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="usbd_cdc.html">3.1. CDC - 虚拟串口</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_msc.html">3.2. MSC - U 盘</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_msc.html">3.2. MSC - U 盘升级</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">3.3. HID - 键盘&amp;鼠标</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_video.html">3.4. VIDEO - 摄像头</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_audio.html">3.5. AUDIO - 麦克风</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../emac/index.html">7. EMAC 以太网应用</a></li>
@ -216,7 +217,7 @@
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="usbd_video.html" class="btn btn-neutral float-right" title="3.4. VIDEO - 摄像头" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="usbd_msc.html" class="btn btn-neutral float-left" title="3.2. MSC - U 盘" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="usbd_msc.html" class="btn btn-neutral float-left" title="3.2. MSC - U 盘升级" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>

View file

@ -7,7 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>3.2. MSC - U 盘 &mdash; BL_MCU_SDK 开发指南 0.3 文档</title>
<title>3.2. MSC - U 盘升级 &mdash; BL_MCU_SDK 开发指南 0.3 文档</title>
@ -119,20 +119,28 @@
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">3. USB Device 应用</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="usbd_cdc.html">3.1. CDC - 虚拟串口</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">3.2. MSC - U 盘</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">3.2. MSC - U 盘升级</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id1">3.2.1. 准备工具</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id2">3.2.2. 硬件连接</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id3">3.2.3. 软件实现</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id4">3.2.4. 编译和烧录</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id5">3.2.5. 实验现象</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="usbd_hid.html">3.3. HID - 键盘&amp;鼠标</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_video.html">3.4. VIDEO - 摄像头</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_audio.html">3.5. AUDIO - 麦克风</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../emac/index.html">7. EMAC 以太网应用</a></li>
@ -186,7 +194,7 @@
<li><a href="index.html"><span class="section-number">3. </span>USB Device 应用</a> &raquo;</li>
<li><span class="section-number">3.2. </span>MSC - U 盘</li>
<li><span class="section-number">3.2. </span>MSC - U 盘升级</li>
<li class="wy-breadcrumbs-aside">
@ -206,7 +214,186 @@
<div itemprop="articleBody">
<div class="section" id="msc-u">
<h1><span class="section-number">3.2. </span>MSC - U 盘<a class="headerlink" href="#msc-u" title="永久链接至标题"></a></h1>
<h1><span class="section-number">3.2. </span>MSC - U 盘升级<a class="headerlink" href="#msc-u" title="永久链接至标题"></a></h1>
<p>本 demo 主要演示使用 usb 将 xip flash 模拟成 u 盘设备,将其作为一个 BootLoader 使用,用来升级固件。</p>
<p>USB大容量存储设备类The USB mass storage device class是一种计算机和移动设备之间的传输协议它允许一个通用串行总线USB设备来访问主机的计算设备使两者之间进行文件传输。</p>
<p>MSC 协议介绍参考 <a class="reference external" href="https://www.usb.org/documents">USB 官方文档</a></p>
<p>bootloader 我们将其编译后烧录在 flash 0x2000 开始的物理地址,工具默认也是这个地址。</p>
<div class="figure align-default">
<img alt="../../../_images/usb_msc.png" src="../../../_images/usb_msc.png" />
</div>
<p>我们使用 flash 物理地址 0x0000c000 (48K) 开始的地方,用来模拟 u 盘u 盘大小为 256K64 个扇区,每个扇区 4KB ),根据文件系统格式,可以知道,数据的地址在 u 盘的第 10 个扇区0x16000也即 APP 的入口地址。BootLoader 与 APP 分区表如下:</p>
<div class="figure align-default">
<img alt="../../../_images/usb_msc2.png" src="../../../_images/usb_msc2.png" />
</div>
<div class="section" id="id1">
<h2><span class="section-number">3.2.1. </span>准备工具<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><p>一根 usb 数据线</p></li>
</ul>
</div>
<div class="section" id="id2">
<h2><span class="section-number">3.2.2. </span>硬件连接<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><p>内部 flash 不需要额外电路</p></li>
<li><p>外部 flash 需要连接 flash 控制器接口</p></li>
</ul>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">GPIO</span> <span class="n">function</span> <span class="n">GPIO</span> <span class="n">pin</span>
<span class="o">----------------------------------</span>
<span class="n">USB_DP</span> <span class="o">&lt;--&gt;</span> <span class="n">GPIO7</span>
<span class="n">USB_DM</span> <span class="o">&lt;--&gt;</span> <span class="n">GPIO8</span>
<span class="n">UART0_TX</span> <span class="o">&lt;--&gt;</span> <span class="n">GPIO14</span>
<span class="n">BOOTLOADER_PIN</span> <span class="o">&lt;--&gt;</span> <span class="n">GPIO15</span>
</pre></div>
</div>
</div>
<div class="section" id="id3">
<h2><span class="section-number">3.2.3. </span>软件实现<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><p>软件代码见 <code class="docutils literal notranslate"><span class="pre">examples/usb/usb_msc_flash_boot</span></code></p></li>
</ul>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp">#define BLOCK_SIZE 4096</span>
<span class="cp">#define BLOCK_COUNT 64</span>
<span class="cp">#define FLASH_ADDR 0x0000c000 </span><span class="cm">/*addr start from 48k */</span><span class="cp"></span>
<span class="kt">void</span> <span class="nf">usbd_msc_get_cap</span><span class="p">(</span><span class="kt">uint8_t</span> <span class="n">lun</span><span class="p">,</span> <span class="kt">uint32_t</span> <span class="o">*</span><span class="n">block_num</span><span class="p">,</span> <span class="kt">uint16_t</span> <span class="o">*</span><span class="n">block_size</span><span class="p">)</span>
<span class="p">{</span>
<span class="o">*</span><span class="n">block_num</span> <span class="o">=</span> <span class="n">BLOCK_COUNT</span><span class="p">;</span>
<span class="o">*</span><span class="n">block_size</span> <span class="o">=</span> <span class="n">BLOCK_SIZE</span><span class="p">;</span>
<span class="p">}</span>
<span class="kt">int</span> <span class="nf">usbd_msc_sector_read</span><span class="p">(</span><span class="kt">uint32_t</span> <span class="n">sector</span><span class="p">,</span> <span class="kt">uint8_t</span> <span class="o">*</span><span class="n">buffer</span><span class="p">,</span> <span class="kt">uint32_t</span> <span class="n">length</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">flash_read</span><span class="p">(</span><span class="n">FLASH_ADDR</span> <span class="o">+</span> <span class="n">sector</span> <span class="o">*</span> <span class="n">BLOCK_SIZE</span><span class="p">,</span> <span class="n">buffer</span><span class="p">,</span> <span class="n">length</span><span class="p">);</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
<span class="kt">int</span> <span class="nf">usbd_msc_sector_write</span><span class="p">(</span><span class="kt">uint32_t</span> <span class="n">sector</span><span class="p">,</span> <span class="kt">uint8_t</span> <span class="o">*</span><span class="n">buffer</span><span class="p">,</span> <span class="kt">uint32_t</span> <span class="n">length</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">flash_erase</span><span class="p">(</span><span class="n">FLASH_ADDR</span> <span class="o">+</span> <span class="n">sector</span> <span class="o">*</span> <span class="n">BLOCK_SIZE</span><span class="p">,</span> <span class="n">BLOCK_SIZE</span><span class="p">);</span>
<span class="n">flash_write</span><span class="p">(</span><span class="n">FLASH_ADDR</span> <span class="o">+</span> <span class="n">sector</span> <span class="o">*</span> <span class="n">BLOCK_SIZE</span><span class="p">,</span> <span class="n">buffer</span><span class="p">,</span> <span class="n">length</span><span class="p">);</span>
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>实现 usb msc 需要的底层接口u 盘大小 256Kflash 物理地址从 0x0000c000 开始。</p></li>
</ul>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">gpio_set_mode</span><span class="p">(</span><span class="n">GPIO_PIN_15</span><span class="p">,</span> <span class="n">GPIO_INPUT_PD_MODE</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="n">gpio_read</span><span class="p">(</span><span class="n">GPIO_PIN_15</span><span class="p">))</span> <span class="p">{</span>
<span class="n">MSG</span><span class="p">(</span><span class="s">&quot;*************Welcome to usb msc boot,update your app bin*************</span><span class="se">\r\n</span><span class="s">&quot;</span><span class="p">);</span>
<span class="n">usbd_desc_register</span><span class="p">(</span><span class="n">msc_ram_descriptor</span><span class="p">);</span>
<span class="n">usbd_msc_class_init</span><span class="p">(</span><span class="n">MSC_OUT_EP</span><span class="p">,</span> <span class="n">MSC_IN_EP</span><span class="p">);</span>
<span class="n">usb_fs</span> <span class="o">=</span> <span class="n">usb_dc_init</span><span class="p">();</span>
<span class="k">if</span> <span class="p">(</span><span class="n">usb_fs</span><span class="p">)</span> <span class="p">{</span>
<span class="n">device_control</span><span class="p">(</span><span class="n">usb_fs</span><span class="p">,</span> <span class="n">DEVICE_CTRL_SET_INT</span><span class="p">,</span> <span class="p">(</span><span class="kt">void</span> <span class="o">*</span><span class="p">)(</span><span class="n">USB_EP4_DATA_OUT_IT</span> <span class="o">|</span> <span class="n">USB_EP5_DATA_IN_IT</span><span class="p">));</span>
<span class="p">}</span>
<span class="k">while</span> <span class="p">(</span><span class="o">!</span><span class="n">usb_device_is_configured</span><span class="p">())</span> <span class="p">{</span>
<span class="p">}</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="kt">uint8_t</span> <span class="n">bin_header</span><span class="p">;</span>
<span class="n">flash_read</span><span class="p">(</span><span class="n">FLASH_ADDR</span> <span class="o">+</span> <span class="mi">10</span> <span class="o">*</span> <span class="n">BLOCK_SIZE</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">bin_header</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
<span class="k">if</span> <span class="p">((</span><span class="n">bin_header</span> <span class="o">==</span> <span class="mh">0x00</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="n">bin_header</span> <span class="o">==</span> <span class="mh">0xff</span><span class="p">))</span> <span class="p">{</span>
<span class="n">MSG</span><span class="p">(</span><span class="s">&quot;*************Illegal bin!! Please update your bin*************</span><span class="se">\r\n</span><span class="s">&quot;</span><span class="p">);</span>
<span class="k">while</span> <span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="n">MSG</span><span class="p">(</span><span class="s">&quot;*************Let&#39;s go to application*************</span><span class="se">\r\n</span><span class="s">&quot;</span><span class="p">);</span>
<span class="n">bflb_platform_delay_ms</span><span class="p">(</span><span class="mi">20</span><span class="p">);</span>
<span class="n">bflb_platform_deinit</span><span class="p">();</span>
<span class="n">hal_jump2app</span><span class="p">(</span><span class="n">FLASH_ADDR</span> <span class="o">+</span> <span class="mi">10</span> <span class="o">*</span> <span class="n">BLOCK_SIZE</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>配置 GPIO15 作为输入模式,默认拉低,拉高进入 u 盘升级。</p></li>
<li><p>如果 GPIO15 为高,则进入 u 盘 升级程序。</p></li>
<li><p>如果 GPIO15 为低,则表示不需要升级直接进入 app此时需要修改内存映射地址将逻辑地址映射的物理地址flash offset )从 0x2000 改成实际 app 存储在 flash 的地址为FLASH_ADDR + 10 * BLOCK_SIZE。</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">hal_jump2app</span></code> 中对物理地址进行了判断bootloader 程序预留 48K物理地址小于 4M。</p></li>
</ul>
</div>
<div class="section" id="id4">
<h2><span class="section-number">3.2.4. </span>编译和烧录<a class="headerlink" href="#id4" title="永久链接至标题"></a></h2>
<ul>
<li><p><strong>CDK 编译</strong></p>
<blockquote>
<div><p>暂无,用户可以自己添加</p>
</div></blockquote>
</li>
<li><p><strong>命令行编译</strong></p></li>
</ul>
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> $ <span class="nb">cd</span> &lt;sdk_path&gt;/bl_mcu_sdk
$ make <span class="nv">BOARD</span><span class="o">=</span>bl706_iot <span class="nv">APP</span><span class="o">=</span>usb_msc_flash_boot
</pre></div>
</td></tr></table></div>
<ul>
<li><p><strong>烧录</strong></p>
<p>详见 <a class="reference internal" href="../../../get_started/bl_dev_cube.html#bl-dev-cube"><span class="std std-ref">BLDevCube 烧录工具指南</span></a></p>
</li>
</ul>
</div>
<div class="section" id="id5">
<h2><span class="section-number">3.2.5. </span>实验现象<a class="headerlink" href="#id5" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><p>将 GPIO15 拉高,然后使用 USB 数据线插到电脑上,识别出一个 U 盘。</p></li>
<li><p>将编译的 APP bin 文件拖入 U 盘。</p></li>
<li><p>拔下 USB ,拉低 GPIO15供电以后进入 APP 。</p></li>
</ul>
<div class="figure align-default">
<img alt="../../../_images/usb_msc3.gif" src="../../../_images/usb_msc3.gif" />
</div>
</div>
</div>

View file

@ -119,14 +119,15 @@
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../basic%20samples/flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">3. USB Device 应用</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="usbd_cdc.html">3.1. CDC - 虚拟串口</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_msc.html">3.2. MSC - U 盘</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_msc.html">3.2. MSC - U 盘升级</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbd_hid.html">3.3. HID - 键盘&amp;鼠标</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">3.4. VIDEO - 摄像头</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id1">3.4.1. 准备工具</a></li>
@ -139,7 +140,7 @@
<li class="toctree-l2"><a class="reference internal" href="usbd_audio.html">3.5. AUDIO - 麦克风</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../emac/index.html">7. EMAC 以太网应用</a></li>
@ -309,12 +310,8 @@
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>使用到的 GPIO 配置见 <code class="docutils literal notranslate"><span class="pre">bsp/board/bl706_avb/pinmux_config.h</span></code>,默认提供了该 demo 的引脚配置</p></li>
<li><p>使用到的 GPIO 配置见 <code class="docutils literal notranslate"><span class="pre">bsp/board/bl706_avb/pinmux_config.h</span></code></p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">注解</p>
<p><code class="docutils literal notranslate"><span class="pre">bsp/board/bl706_avb/pinmux_config.h</span></code> 当前给所有的示例 demo 使用,所以,需要先选定 <code class="docutils literal notranslate"><span class="pre">PINMUX_SELECT</span></code><code class="docutils literal notranslate"><span class="pre">PINMUX_UVC</span></code>,开启 UVC demo</p>
</div>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>

View file

@ -128,13 +128,14 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -122,13 +122,14 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -128,13 +128,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -122,13 +122,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -0,0 +1,327 @@
<!DOCTYPE html>
<html class="writer-html5" lang="zh-CN" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>11.1. XIP FLASH - 数据读写 &mdash; BL_MCU_SDK 开发指南 0.3 文档</title>
<link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../../../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
<script src="../../../_static/jquery.js"></script>
<script src="../../../_static/underscore.js"></script>
<script src="../../../_static/doctools.js"></script>
<script src="../../../_static/translations.js"></script>
<script type="text/javascript" src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
<link rel="next" title="1. Shell 命令行调试" href="../../advance%20samples/shell_demo.html" />
<link rel="prev" title="11. XIP FLASH 示例" href="index.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home"> BL_MCU_SDK 开发指南
</a>
<div class="version">
0.3
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">快速开发指南</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/get_started.html">1. 开发前的准备</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/connecting_hardware.html">2. 硬件连接指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/index.html">3. 开发环境搭建指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/cmake_quick_start.html">4. 基于 cmake 框架新建工程指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/cdk_new_project_quick_start.html">5. 基于 CDK 新建工程指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/bl_dev_cube.html">6. BLDevCube 烧录工具指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/board.html">7. Board 配置系统使用指南</a></li>
</ul>
<p class="caption"><span class="caption-text">API 手册</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../api_reference/api_overview.html">1. API 概述</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../api_reference/peripheral/index.html">2. Peripheral</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../api_reference/shell/api_shell.html">3. Shell</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../api_reference/usb%20stack/api_usb_stack.html">4. USB Stack</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../api_reference/bluetooth/api_ble.html">5. BLE</a></li>
</ul>
<p class="caption"><span class="caption-text">基础外设例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../gpio/index.html">1. GPIO 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../uart/index.html">2. UART 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../pwm/index.html">3. PWM 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../mtimer/index.html">4. MTIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dma/index.html">5. DMA 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../spi/index.html">6. SPI 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../i2c/index.html">7. I2C 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">11. XIP FLASH 示例</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">11.1. XIP FLASH - 数据读写</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id1">11.1.1. 硬件连接</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id2">11.1.2. 软件实现</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id3">11.1.3. 编译和烧录</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id4">11.1.4. 实验现象</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">BL_MCU_SDK 开发指南</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="index.html"><span class="section-number">11. </span>XIP FLASH 示例</a> &raquo;</li>
<li><span class="section-number">11.1. </span>XIP FLASH - 数据读写</li>
<li class="wy-breadcrumbs-aside">
<a href="../../../_sources/samples/basic samples/flash/flash_demo.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="xip-flash">
<h1><span class="section-number">11.1. </span>XIP FLASH - 数据读写<a class="headerlink" href="#xip-flash" title="永久链接至标题"></a></h1>
<p>本 demo 主要演示 xip flash 基本的数据读写功能。</p>
<div class="section" id="id1">
<h2><span class="section-number">11.1.1. </span>硬件连接<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><p>内部 flash 不需要额外电路</p></li>
<li><p>外部 flash 需要连接 flash 控制器接口</p></li>
</ul>
</div>
<div class="section" id="id2">
<h2><span class="section-number">11.1.2. </span>软件实现<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><p>软件代码见 <code class="docutils literal notranslate"><span class="pre">examples/flash/flash_rw</span></code></p></li>
</ul>
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cm">/* erase 0x00010000 16k flash */</span>
<span class="n">flash_erase</span><span class="p">(</span><span class="mh">0x00010000</span><span class="p">,</span> <span class="mi">16</span> <span class="o">*</span> <span class="mi">1024</span><span class="p">);</span>
<span class="cm">/* write 0x00010000 flash data */</span>
<span class="n">flash_write</span><span class="p">(</span><span class="mh">0x00010000</span><span class="p">,</span> <span class="n">writeTestData</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">writeTestData</span><span class="p">));</span>
<span class="n">memset</span><span class="p">(</span><span class="n">readTestData</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">256</span><span class="p">);</span>
<span class="cm">/* read 0x00010000 flash data */</span>
<span class="n">flash_read</span><span class="p">(</span><span class="mh">0x00010000</span><span class="p">,</span> <span class="n">readTestData</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">readTestData</span><span class="p">));</span>
</pre></div>
</td></tr></table></div>
<ul class="simple">
<li><p>擦除 flash 物理地址 0x00010000 开始的 16K 内容</p></li>
<li><p>从flash 物理地址 0x00010000 开始写入用户数据</p></li>
<li><p>从flash 物理地址 0x00010000 开始读取用户数据</p></li>
</ul>
</div>
<div class="section" id="id3">
<h2><span class="section-number">11.1.3. </span>编译和烧录<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<ul>
<li><p><strong>CDK 编译</strong></p>
<p>打开项目中提供的工程文件flash_rw.cdkproj</p>
<p>参照 <a class="reference internal" href="../../../get_started/Windows_quick_start_cdk.html#windows-cdk-quick-start"><span class="std std-ref">Windows 下使用 CDK (类 MDK Keil)开发指南</span></a> 的步骤编译下载即可</p>
</li>
<li><p><strong>命令行编译</strong></p></li>
</ul>
<div class="highlight-bash notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> $ <span class="nb">cd</span> &lt;sdk_path&gt;/bl_mcu_sdk
$ make <span class="nv">BOARD</span><span class="o">=</span>bl706_iot <span class="nv">APP</span><span class="o">=</span>flash_rw
</pre></div>
</td></tr></table></div>
<ul>
<li><p><strong>烧录</strong></p>
<p>详见 <a class="reference internal" href="../../../get_started/bl_dev_cube.html#bl-dev-cube"><span class="std std-ref">BLDevCube 烧录工具指南</span></a></p>
</li>
</ul>
</div>
<div class="section" id="id4">
<h2><span class="section-number">11.1.4. </span>实验现象<a class="headerlink" href="#id4" title="永久链接至标题"></a></h2>
<p>打开串口,如果显示 case success 表示读写成功,否则读写错误</p>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="../../advance%20samples/shell_demo.html" class="btn btn-neutral float-right" title="1. Shell 命令行调试" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="index.html" class="btn btn-neutral float-left" title="11. XIP FLASH 示例" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&#169; 版权所有 2021, BouffaloLab Co., Ltd.
</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

View file

@ -0,0 +1,260 @@
<!DOCTYPE html>
<html class="writer-html5" lang="zh-CN" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>11. XIP FLASH 示例 &mdash; BL_MCU_SDK 开发指南 0.3 文档</title>
<link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../../../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
<script src="../../../_static/jquery.js"></script>
<script src="../../../_static/underscore.js"></script>
<script src="../../../_static/doctools.js"></script>
<script src="../../../_static/translations.js"></script>
<script type="text/javascript" src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
<link rel="next" title="11.1. XIP FLASH - 数据读写" href="flash_demo.html" />
<link rel="prev" title="10.1. TIMER - 秒中断定时" href="../timer/timer_interrupt_demo.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home"> BL_MCU_SDK 开发指南
</a>
<div class="version">
0.3
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">快速开发指南</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/get_started.html">1. 开发前的准备</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/connecting_hardware.html">2. 硬件连接指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/index.html">3. 开发环境搭建指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/cmake_quick_start.html">4. 基于 cmake 框架新建工程指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/cdk_new_project_quick_start.html">5. 基于 CDK 新建工程指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/bl_dev_cube.html">6. BLDevCube 烧录工具指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../get_started/board.html">7. Board 配置系统使用指南</a></li>
</ul>
<p class="caption"><span class="caption-text">API 手册</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../api_reference/api_overview.html">1. API 概述</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../api_reference/peripheral/index.html">2. Peripheral</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../api_reference/shell/api_shell.html">3. Shell</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../api_reference/usb%20stack/api_usb_stack.html">4. USB Stack</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../api_reference/bluetooth/api_ble.html">5. BLE</a></li>
</ul>
<p class="caption"><span class="caption-text">基础外设例程</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../gpio/index.html">1. GPIO 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../uart/index.html">2. UART 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../pwm/index.html">3. PWM 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../mtimer/index.html">4. MTIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dma/index.html">5. DMA 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../spi/index.html">6. SPI 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../i2c/index.html">7. I2C 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">11. XIP FLASH 示例</a><ul>
<li class="toctree-l2"><a class="reference internal" href="flash_demo.html">11.1. XIP FLASH - 数据读写</a></li>
</ul>
</li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">BL_MCU_SDK 开发指南</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">11. </span>XIP FLASH 示例</li>
<li class="wy-breadcrumbs-aside">
<a href="../../../_sources/samples/basic samples/flash/index.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="xip-flash">
<h1><span class="section-number">11. </span>XIP FLASH 示例<a class="headerlink" href="#xip-flash" title="永久链接至标题"></a></h1>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="flash_demo.html">11.1. XIP FLASH - 数据读写</a></li>
</ul>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="flash_demo.html" class="btn btn-neutral float-right" title="11.1. XIP FLASH - 数据读写" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="../timer/timer_interrupt_demo.html" class="btn btn-neutral float-left" title="10.1. TIMER - 秒中断定时" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&#169; 版权所有 2021, BouffaloLab Co., Ltd.
</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

View file

@ -129,13 +129,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -129,13 +129,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -123,13 +123,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -128,13 +128,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -122,13 +122,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -135,13 +135,14 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -130,13 +130,14 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -135,13 +135,14 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -124,13 +124,14 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -122,13 +122,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -128,13 +128,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -123,13 +123,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -129,13 +129,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -129,13 +129,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -122,13 +122,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -128,13 +128,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -122,13 +122,14 @@
<li class="toctree-l2"><a class="reference internal" href="timer_interrupt_demo.html">10.1. TIMER - 秒中断定时</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -39,7 +39,7 @@
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
<link rel="next" title="1. Shell 命令行调试" href="../../advance%20samples/shell_demo.html" />
<link rel="next" title="11. XIP FLASH 示例" href="../flash/index.html" />
<link rel="prev" title="10. TIMER 示例" href="index.html" />
</head>
@ -127,13 +127,14 @@
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>
@ -350,7 +351,7 @@
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="../../advance%20samples/shell_demo.html" class="btn btn-neutral float-right" title="1. Shell 命令行调试" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="../flash/index.html" class="btn btn-neutral float-right" title="11. XIP FLASH 示例" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="index.html" class="btn btn-neutral float-left" title="10. TIMER 示例" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>

View file

@ -122,13 +122,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>

View file

@ -128,13 +128,14 @@
<li class="toctree-l1"><a class="reference internal" href="../i2s/index.html">8. I2S 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../adc/index.html">9. ADC 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timer/index.html">10. TIMER 示例</a></li>
<li class="toctree-l1"><a class="reference internal" href="../flash/index.html">11. XIP FLASH 示例</a></li>
</ul>
<p class="caption"><span class="caption-text">进阶例程</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/shell_demo.html">1. Shell 命令行调试</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. Fatfs 文件系统读写</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/fatfs_demo.html">2. FatFs 文件系统读写(SD 卡)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/usb/index.html">3. USB Device 应用</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. LowPower 低功耗评估</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/lowpower_demo.html">4. Power Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/boot2_iap_info.html">5. BOOT2 IAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/ble_scan_demo.html">6. BLE 客户端和服务端互连</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advance%20samples/emac/index.html">7. EMAC 以太网应用</a></li>