littleshrimp 发表于 2021-8-30 21:58

静态协议栈工程的4种默认的配置

<blockquote>
<p>ST官方SDK中已经提供了静态协议栈的Demo:</p>
</blockquote>

<ul>
        <li>
        <p>C:\Users\user name\ST\BlueNRG-LP DK 1.x.x\Projects\BLE_Examples\BLE_StaticStack</p>

        <p>静态协议栈默认提供了4种配置:</p>

        <ul>
                <li>Release</li>
                <li>Basic</li>
                <li>OTA_BTL_ResetManager</li>
                <li>OTA_BTL_ResetManager_Basic</li>
        </ul>
        </li>
        <li>
        <p>C:\Users\user name\ST\BlueNRG-LP DK 1.x.0\Projects\BLE_Examples\BLE_SensorDemo_StaticStack</p>

        <ul>
                <li>Release</li>
                <li>LowerApp_OTA</li>
                <li>HigherApp_OTA</li>
        </ul>
        </li>
</ul>

<p></p>

<p>那它们有什么区别呢?它们可以分为两组。</p>

<ul>
        <li>
        <p>Release 和 Basic是一组: 它们运行时都是由协议栈程序直接跳转到一个固定的应用上;</p>

        <ul>
                <li>Release 和 Basic的区别: Basic的协议栈配置是BLE_STACK_BASIC_CONF, 而Release的协议栈配置是BLE_STACK_FULL_CONF。</li>
                <li>不同的协议栈配置,包含的功能和占用的Flash空间也不一致。
                <ul>
                        <li>不同的协议栈配置包含的功能请查看stack_user_cfg.h</li>
                        <li>占用的Flash空间可以通过编译的Map 文件查看</li>
                        <li>宏RESET_MANAGER_SIZE用于协议栈程序的跳转偏移,即预留多少空间给协议栈,因此这个宏的大小也会因为协议栈占用的空间不同而不同。</li>
                        <li>Linker中宏MEMORY_FLASH_APP_SIZE用于定义程序可用的大小。即预留多少空间给协议栈,因此这个宏的大小也会因为协议栈占用的空间不同而不同。</li>
                </ul>
                </li>
        </ul>
        </li>
        <li>
        <p>OTA_BTL_ResetManager和OTA_BTL_ResetManager_Basic是另外一组:它们都是由协议栈程序跳转到Lower 应用程序或者Higher应用程序;</p>

        <ul>
                <li>OTA_BTL_ResetManager和OTA_BTL_ResetManager_Basic 的区别: OTA_BTL_ResetManager_Basic的协议栈配置是BLE_STACK_BASIC_CONF, 而OTA_BTL_ResetManager的协议栈配置是BLE_STACK_FULL_CONF</li>
                <li>不同的协议栈配置,包含的功能和占用的Flash空间也不一致。
                <ul>
                        <li>不同的协议栈配置包含的功能请查看stack_user_cfg.h</li>
                        <li>占用的Flash空间可以通过编译的Map 文件查看</li>
                        <li>宏RESET_MANAGER_SIZE用于协议栈程序的跳转偏移,即预留多少空间给协议栈,因此这个宏的大小也会因为协议栈占用的空间不同而不同。</li>
                        <li>Linker中宏MEMORY_FLASH_APP_SIZE用于定义程序可用的大小。即预留多少空间给协议栈,因此这个宏的大小也会因为协议栈占用的空间不同而不同。</li>
                </ul>
                </li>
        </ul>
        </li>
</ul>

<p>其中,一个工程负责生成协议栈,另一个工程负责应用,那么这里BLE_StaticStack中的Release or Basic 与OTA_BTL_ResetManager or OTA_BTL_ResetManager_Basic怎么和Release,LowerApp_OTA和HigherApp_OTA组合呢?</p>

<ul>
        <li>BLE_StaticStack中的Release or Basic + BLE_SensorDemo_StaticStack中的Release //不带备份OTA的使用固定协议栈的方法</li>
        <li>BLE_StaticStack中的OTA_BTL_ResetManager or OTA_BTL_ResetManager_Basic + BLE_SensorDemo_StaticStack中的 LowerApp_OTA or HigherApp_OTA //带备份OTA的使用固定协议栈的方法</li>
</ul>

<p>&nbsp;</p>

<p>更多内容请参考lucienkuang的帖子《BlueNRG系列的教程_文档_培训资料与常见问题等汇总介绍》</p>

<p><a href="https://bbs.eeworld.com.cn/thread-1162870-1-1.html">https://bbs.eeworld.com.cn/thread-1162870-1-1.html</a></p>

Jacktang 发表于 2021-8-31 08:21

<p>几个栈的静态协议栈工程的配置之间占用的Flash空间也不一致,怎么选择使用这几种栈呢</p>

littleshrimp 发表于 2021-8-31 09:51

Jacktang 发表于 2021-8-31 08:21
几个栈的静态协议栈工程的配置之间占用的Flash空间也不一致,怎么选择使用这几种栈呢

<p>按需选择,不同的协议栈包含的功能可以通过stack_user_cfg.h确定</p>
页: [1]
查看完整版本: 静态协议栈工程的4种默认的配置