CH32V20x平台支持Freertos+BLE功能吗?

CH32V20x平台支持Freertos+BLE功能吗?有没有例程?

另外Freertos+BLE+OTA功能有例程吗?空间上够吗

您好,没有移植好的Freertos+BLE的代码,只有在TMOS系统中运行BLE的代码。

TMOS系统中,是可以实现BLE+OTA的。选型手册上的flash容量是仅有零等待flash的大小,实际可用的falsh总量为480K,是够用的。


我公司正在做的产品想用贵司的ch32V208来实现,由于设及多个任务,需要任务间通讯,事件响应,OTA等功能,TMOS看起来来不支持RTOS系统相关的消息通讯功能,我如果把TMOS作为Freertos的一个任务使用会有问题吗



TMOS使用文档在哪里下载?


您好,多个任务、任务间通讯和OTA,使用TMOS系统是可以实现的。TMOS系统是轮询的,“事件响应”如果需要及时响应,需要安排好运行逻辑,不要阻塞,或者利用硬件中断做简短的处理。

建议基于TMOS跑BLE,EVT包例程中对TMOS系统跑BLE,优化更完善。如果一定要用RTOS,FreeRTOS运行BLE是可以的,但需要自行移植,我们没有做FreeRTOS的BLE维护,移植注意点可见FreeRTOS例程中的文本文件说明。

TMOS系统的入门见博客:WCH TMOS用法详解 - debugdabiaoge - 博客园 (cnblogs.com)


请问现在rtos+BLE的状况如何了?有移植好的例程么?


@David  参考https://github.com/smartmx/MX-WCH-RTOS-SDK 


谢谢回复。在github上的readme里都有,


8.不建议使用蓝牙,使用蓝牙的话可以创建一个优先级仅比IDLE?TASK高一级的任务,循环运行TMOS_SystemProcess,不主动退出任务,由其他更高优先级任务抢断。由于蓝牙中断为库内中断函数,使用了免表中断方式,所以初始化蓝牙时需要关闭中断,等初始化完成后失能免表中断。在StartUP.S文件中,已经将LIB中真正的中断函数地址BB_IRQLibHandler和LLE_IRQLibHandler放入中断向量表中。

这种低优先级运行怕是没有保证。我觉得这个TMOS任务应该设置最高有限级,然后通过事件阻断,并且有个定时器定时产生事件,比如625us/2,这样保证TMOS不断被调用。也就是DSR的概念。


大神们有什么建议。


只有登录才能回复,可以选择微信账号登录