注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
damiaa的个人空间 http://home.eeworld.com.cn/space-uid-59433.html [收藏] [复制] [分享] [RSS]
日志

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

已有 322 次阅读2023-9-5 16:56 |个人分类:stm32wba

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

【NUCLEO-WBA52CG】+1开箱贴

【STM32WBA52CG】+2 STM32WBA Web Bluetooth试玩

【STM32WBA52CG】+3 STM32WBA 外设应用一 按键和点灯

【STM32WBA52CG】+4 外设应用二 串口使用

【STM32WBA52CG】+5 THREADX使用

【STM32WBA52CG】+6 SEQUENCER调度器

【stm32wba】+7 stm32wba低功耗蓝牙软件基本架构之后继续

这里先分析下面几个文件

startup_stm32wba52cgux.s

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

sysmem.c

这里面就一个函数void *_sbrk(ptrdiff_t incr)

实现从“_end”链接器符号开始分配

“_Min_Stack_Size”链接器符 为MSPstack保留内存

实现将“_estack”链接器符号视为RAM端

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

保留大小,请增加“_Min_Stack_size”。

据说malloc 最终就会调用到它

Syscalls.c 一些系统调用的函数

Stm32wbaxx_it.c

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

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

Main.c 是整个项目的入口,完成各种设备的初始化,保护蓝牙无线部分

App_entry.c main.c执行所有的初始化后会把控制权交给MX_APPE_Process();

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

void MX_APPE_Config(void);

//配置HSE时钟

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

void MX_APPE_Process(void);//这里就调用了

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

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

void FM_BackgroundProcess (void)//FM背景任务处理Execute Flash Manager

background tasks 执行flash管理背景任务

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

uint8_t APPE_ButtonIsLongPressed(uint16_t btnIdx);//长按键的处理

void APPE_Button1Action(void);//几个按键的处理

void APPE_Button2Action(void);//几个按键的处理

void APPE_Button3Action(void);//几个按键的处理

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

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

谢谢

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章