研究了两天PB03F谈谈收获

[复制链接]
查看622 | 回复4 | 2024-10-27 17:12:06 | 显示全部楼层 |阅读模式
由于近来的活动,感觉PB03F将要热一段时间,所以找出早前买的PB03F研究了一下。想不起来当初为什么要买这款蓝牙模块,可能是和ESP8266模块pin to pin吧。但之前也就点个灯就一直搁置了。


1、关于开发环境
目前KEIL MDK的最新版是5.40吧,ARM Complier是6.xx吧。
PB03F的主控是PHY6252,PHY6252 的SDK不能支持这么高版本的MDK,否则编译报错。
为编译PHY6252,我专门安装了V5.27的MDK,ARM Complier版本是V5.06。
推荐版本v.5.24-v5.28,ARM Complier版本要V5,一定不能用V6。

2、偶然发现PHY6252和ST17H66一摸一样
PHY6252是奉加微的产品,ST17H66是伦茨科技的产品。

但是所有的东西都一样的,SDK、文档、下载工具。
所以可以用ST17H66的资料来研究PB03F

3、关于OSAL

osal是TI推出的,国内厂商拿来用的。PHY6252也用了OSAL,但是应该是用了静态库的原因导致暴露给开发者的函数是不完全的。大概是中间一段函数被封装了,使人无法跟踪,源码看起来云里雾里的,不直观。


一个典型的程序思维导图是这样的:

1.png

在程序中有:
  1. int app_main(void)
  2. {
  3.     /* Initialize the operating system */
  4.     osal_init_system();
  5.     osal_pwrmgr_device( PWRMGR_BATTERY );
  6.     /* Start OSAL */
  7.     osal_start_system(); // No Return from here
  8.     return 0;
  9. }
复制代码
其中osal_init_system()会调用osalInitTasks(),做OSAL初始化。
osal_init_system没有公开源码。

osal_start_system()会调用osal_run_system(),进行osal轮询。

但是osal_start_system、osal_run_system都没有公开源码。

用户能看到的是:
jump_table_base

tasksArr


还是要先研究明白osal。对于蓝牙来说,操作系统抽象层是绕不过的。如果不用OSAL之类的,直接用RTOS也是可以实现的,但是开销就更大了。

回复

使用道具 举报

沈夜 | 2024-10-28 01:58:34 | 显示全部楼层
厉害了
回复

使用道具 举报

爱笑 | 2024-10-28 08:44:16 | 显示全部楼层
哈哈非常聪明呀!
用心做好保姆工作
回复 支持 反对

使用道具 举报

sujingliang | 2024-10-28 12:56:19 | 显示全部楼层
去TI网站下了一个BLE-CC254x-1.5.2.0.EXE。发现phy6252的SDK和CC254x相似度太高(呵呵)。不同的是CC254x是基于51的,phy6252是M0。本来一直以为51没什么前途了,但它的SDK还有生命力。有一个意外的好处是CC254x的培训视频、文档资料相当多,拿来做参考有助于理解。
回复 支持 反对

使用道具 举报

WangChong | 2024-10-28 15:09:57 | 显示全部楼层
二开简单吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则