226|8

3406

帖子

0

资源

纯净的硅(高级)

【CH579M-R1】啥是TMOS?

趁周末,多更一下

这次WCH57x系列的一大卖点就是2.4G的BLE 4.2

先从它下手吧

官方提供的资料不多

除了一大堆例程,然后就只有一个”CH57xBLE协议栈库说明.pdf”

pic1.png

这个文件也只有12页

大概介绍了一下协议栈的配置和基本API,略显单薄

文档中提到一个TMOS,貌似是一个准操作系统,实现了部分类似操作系统的功能

据说从TI的OSAL裁剪得来,例程中很多代码风格和TI的协议栈接近

应该是使用了TMOS来进行协议栈任务调度(这个TMOS可不是F5 NETWorks的TMOS)

外部对协议栈的操作也得依靠TMOS的API来进行

协议栈是以.lib+.h的形式给出

pic2.png

比较方便带协议栈仿真

上篇【CH579M-R1】首撸一手汗提到是否支持jlink的问题

实测使用jlink来进行debug是没有问题的

pic3.png

目前手上的segger j-flash软件版本并不支持WCH 579系列的MCU

需要选择一个相同内核的mcu才能正常进行仿真

喜欢的话,STM32F030也行

pic4.png

所以想通过jflash来偷窥579内部四块flash区域的愿望是不可能实现了

pic5.png pic6.png

直接用jflash来擦写579也是不行的

最后还得靠MDK的flash算法文件配合jlink来对579进行烧录仿真

估计得要等到segger正式支持WCH相关系列的MCU吧

先跑通一个例程试试吧,拿Peripheral开刀

代码很简洁

pic7.png

DEBUG预编译中是对串口1外设的初始化

打印协议栈库文件的版本号(不放到预编译中去?)

CH57X_BLEInit是协议栈库的初始化

主要是对协议栈库使用的buff啊,buff大小啊,时钟源啊,堆栈大小啊,发射功率啊,BLE工作方式啊,mac啊等等一系列参数的初始化。

填充bleConfig_t cfg;后,塞进BLE_LibInit完成初始化。

HAL_Init用来初始化使用到的硬件,同时TMOS_ProcessEventRegister将硬件操作事件注册进TMOS以便调用。

HAL_ProcessEvent函数,实体可以跟踪到,但是在HAL.h文件中被申明extern,感觉应该会被协议栈调用。

GAPRole_PeripheralInit,看不到实体

Peripheral_Init,这个很重要,BLE的GAP、GATT、广播等等都通过这个函数完成配置,得靠它建立自己的蓝牙服务。值得认真看看。

随便改了改源码,修改了一下广播名称和设备名称

然后通过蓝牙发送“Hello,EEWorld!”

贴个GIF随便看看吧

没用WCH的app,用了一个友商的PC客户端和usb dongle

提升空间还是很大的

pic8.gif

以上......

个人签名So what......

回复

1万

帖子

133

资源

管理员

个人签名

玩板看这里:

http://bbs.eeworld.com.cn/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!


回复

798

帖子

3

资源

纯净的硅(初级)

请教一下:我打开"BEL\peripheral"的项目,未作任何修改,但编译却出错,是缺少了哪个文件呢?

BLE_01.jpg

点评

感觉像是工程配置有问题,是不是目标芯片选错了?  详情 回复 发表于 4 天前

回复

327

帖子

0

资源

一粒金砂(中级)

看标题还以为是MOS管的叫法

点评

TMOS这玩意儿故事很多,但又讲不出来,很有意思。  详情 回复 发表于 4 天前

回复

3406

帖子

0

资源

纯净的硅(高级)

hujj 发表于 2020-9-14 08:59 请教一下:我打开"BEL\peripheral"的项目,未作任何修改,但编译却出错,是缺少了哪个文件呢? ...

感觉像是工程配置有问题,是不是目标芯片选错了?

点评

我又检查了一遍,芯片没有错,是CH579M,整个项目文件都没有动过,就是编译没通过。  详情 回复 发表于 4 天前
个人签名So what......

回复

3406

帖子

0

资源

纯净的硅(高级)

宋元浩 发表于 2020-9-14 09:35 看标题还以为是MOS管的叫法

TMOS这玩意儿故事很多,但又讲不出来,很有意思。

个人签名So what......

回复

798

帖子

3

资源

纯净的硅(初级)

本帖最后由 hujj 于 2020-9-14 14:37 编辑
ljj3166 发表于 2020-9-14 14:17 感觉像是工程配置有问题,是不是目标芯片选错了?

我又检查了一遍,芯片没有错,是CH579M,整个项目文件都没有动过,就是编译没通过。

从提示上看是缺少宏定义,编译过程又没有找不到头文件的提示。


回复

2495

帖子

1

资源

五彩晶圆(初级)

涂抹上?ljj你这是要干啥坏事?

个人签名人已离开,无事别找,找也找不到。

回复

3406

帖子

0

资源

纯净的硅(高级)

freebsder 发表于 2020-9-14 21:42 涂抹上?ljj你这是要干啥坏事?

尼玛,快说,搜狗的模糊拼写算法是不是你开发的。

个人签名So what......

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

关闭
站长推荐上一条 1/5 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表