damiaa 发表于 2023-9-5 17:00

【stm32wba】+8 stm32wba低功耗蓝牙软件app部分分析之一

<div class='showpostmsg'> 本帖最后由 damiaa 于 2023-9-5 17:00 编辑

<p><span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>【stm32wba】+8 stm32wba低功耗蓝牙软件app部分分析之一</strong></span></p>

<p>&nbsp;</p>

<p><a href="https://bbs.eeworld.com.cn/thread-1250745-1-1.html">【NUCLEO-WBA52CG】+1开箱贴</a></p>

<p><a href="https://bbs.eeworld.com.cn/thread-1250558-1-1.html">【STM32WBA52CG】+2 STM32WBA Web Bluetooth试玩</a></p>

<p><a href="https://bbs.eeworld.com.cn/forum.php?mod=viewthread&amp;tid=1252139&amp;page=1&amp;extra=#pid3251401">【STM32WBA52CG】+3 STM32WBA 外设应用一 按键和点灯</a></p>

<p><a href="https://bbs.eeworld.com.cn/thread-1252142-1-1.html">【STM32WBA52CG】+4 外设应用二 串口使用</a></p>

<p><a href="https://bbs.eeworld.com.cn/thread-1252882-1-1.html">【STM32WBA52CG】+5 THREADX使用</a></p>

<p><span style="font-size:12px;"><a href="https://bbs.eeworld.com.cn/thread-1255128-1-1.html">【STM32WBA52CG】+6 SEQUENCER调度器</a></span></p>

<p><span style="font-size:12px;"><a href="https://bbs.eeworld.com.cn/thread-1255338-1-1.html">【stm32wba】+7 stm32wba低功耗蓝牙软件基本架构</a></span>之后继续</p>

<p>&nbsp;</p>

<p><span style="font-size:18px;"><strong>这里先分析下面几个文件</strong></span></p>

<p></p>

<p>&nbsp;</p>

<p><span style="font-size:18px;"><strong>startup_stm32wba52cgux.s</strong></span></p>

<p>下图比较形象的描述了startup_stm32wba52cgux.s的功能,主要是系统初始化和中断向量表,还有就是跳转到main函数。</p>

<p></p>

<p></p>

<p>&nbsp;</p>

<p><span style="font-size:18px;"><strong>sysmem.c</strong></span></p>

<p>这里面就一个函数void *_sbrk(ptrdiff_t incr)</p>

<p>实现从&ldquo;_end&rdquo;链接器符号开始分配</p>

<p>&ldquo;_Min_Stack_Size&rdquo;链接器符 为MSPstack保留内存</p>

<p>实现将&ldquo;_estack&rdquo;链接器符号视为RAM端</p>

<p>注:如果MSP堆栈在执行过程中的任何时候都大于</p>

<p>保留大小,请增加&ldquo;_Min_Stack_size&rdquo;。</p>

<p></p>

<p>据说malloc 最终就会调用到它</p>

<p>&nbsp;</p>

<p><span style="font-size:18px;"><strong>Syscalls.c </strong></span></p>

<p>一些系统调用的函数</p>

<p>&nbsp;</p>

<p><span style="font-size:18px;"><strong>Stm32wbaxx_it.c</strong></span></p>

<p>所有中断函数放这里面,不过很多都在回调函数中处理,只是都是要经过这里。</p>

<p>Stm32wbaxx_hal_msp.c 一些外设,比如adc,uart等等的初始化放这里。</p>

<p></p>

<p>&nbsp;</p>

<p><span style="font-size:18px;"><strong>Main.c </strong></span></p>

<p>是整个项目的入口,完成各种设备的初始化,保护蓝牙无线部分</p>

<p></p>

<p>&nbsp;</p>

<p><span style="font-size:18px;"><strong>App_entry.c main.c</strong></span></p>

<p>执行所有的初始化后会把控制权<strong>交给MX_APPE_Process();</strong></p>

<p>所以App_entry.c是很重要的一个文件,里面包括了:</p>

<p><strong>void</strong> <strong>MX_APPE_Config</strong>(<strong>void</strong>);</p>

<p>//配置HSE时钟</p>

<p>uint32_t <strong>MX_APPE_Init</strong>(<strong>void</strong> *p_param);//系统初始化,电源初始化,SEG序列器初始化,登记seg任务,led,按键,串口,RNG,蓝牙等等初始化。基本上把初始化的事情都干了。</p>

<p></p>

<p><strong>void</strong> <strong>MX_APPE_Process</strong>(<strong>void</strong>);//这里就调用了</p>

<p><strong>UTIL_SEQ_Run</strong>(UTIL_SEQ_DEFAULT);使<strong>UTIL_SEQ</strong><strong>运行起来,因为</strong><strong>MX_APPE_Config</strong><strong>定义了要运行的三个任务任务。</strong></p>

<p></p>

<p><strong>void</strong> <strong>AMM_BackgroundProcess</strong> (<strong>void</strong>) //AMM背景任务处理 高级内存管理,这里知道就行了,继续深入很麻烦。哈哈。</p>

<p><strong></strong></p>

<p><strong>void</strong> <strong>FM_BackgroundProcess</strong> (<strong>void</strong>)//FM背景任务处理Execute Flash Manager</p>

<p>background tasks 执行flash管理背景任务</p>

<p><strong>void</strong> <strong>BPKA_BG_Process</strong>( <strong>void</strong> )//This function implements the offline key computation using the PKA 使用PKA实现离线密钥计算的处理任务函数</p>

<p>uint8_t <strong>APPE_ButtonIsLongPressed</strong>(uint16_t btnIdx);//长按键的处理</p>

<p><strong>void</strong> <strong>APPE_Button1Action</strong>(<strong>void</strong>);//几个按键的处理</p>

<p><strong>void</strong> <strong>APPE_Button2Action</strong>(<strong>void</strong>);//几个按键的处理</p>

<p><strong>void</strong> <strong>APPE_Button3Action</strong>(<strong>void</strong>);//几个按键的处理</p>

<p>Seg序列器实现的各种函数 有一篇文章中有介绍,这里不说了。</p>

<p>另外的函数,包括了按键等的回调函数的定义等等等等。</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 谢谢</p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

Jacktang 发表于 2023-9-6 07:31

<p>好吧,如果MSP堆栈在执行过程中的任何时候都大于保留大小,请增加&ldquo;_Min_Stack_size,收藏</p>

damiaa 发表于 2023-9-6 08:52

Jacktang 发表于 2023-9-6 07:31
好吧,如果MSP堆栈在执行过程中的任何时候都大于保留大小,请增加&ldquo;_Min_Stack_size,收藏

<p><img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan76.gif" width="48" />感谢支持!</p>

秦天qintian0303 发表于 2023-9-6 15:30

<p>感觉现在的自动生成的代码,或者用例有点过度包装,得好一顿找</p>

damiaa 发表于 2023-9-6 15:44

秦天qintian0303 发表于 2023-9-6 15:30
感觉现在的自动生成的代码,或者用例有点过度包装,得好一顿找

<p>是啊,正在熟悉中。代码很多。</p>
页: [1]
查看完整版本: 【stm32wba】+8 stm32wba低功耗蓝牙软件app部分分析之一