4回答

0收藏

[分享] 嵌入式实时内核trochili v0.12 Prev5 初步使用心得

GD32 GD32 3167 人阅读 | 4 人回复 | 2016-06-27

本帖最后由 wolfgang2015 于 2016-7-4 17:46 编辑

Trochili  v0.12 Prev5  上周发布了,尝鲜的心态做了测试

测试环境 Trochili GD32F190 开发板
测试工具 Keil 5.1x
测试程序  LED、KEY、USART的板载功能。

PreVeiw5 初步感觉,与PreVeiw4的区别
1、tcl.irq.c文件代码行数上增加了 从358增加到391
2、tcl.irq.c文件增加了 tcl.object.h 的应用,替换掉了 tcl.lib.h
3、tcl.irq.c文件 增加了 中断向量描述符属性 和请求队列的定义以及相关的使用
4、tcl.lib.h 从V5就不使用了,把 tcl.lib.h 改用  tcl.object.h  替换
5、“TclCreateThread ”替换了“TclInitThread”
6、TWord32 取代了 TWord 的类型定义;
7、TclSetIrqVector 的 参数做了个交换,由“...(TArgument)0, (TThread*)0...”变更为“ (TThread*)0, (TArgument)0”

其他的问题还没有发现,或者说发现小没有啥大问题,需要代码在RTOS之外做些调整或者完善:
1、关于线程的延迟和取消延迟操作,取消延迟时如果对线程当前的状态是否处于延迟中不要增加下列宏判断。
“ TCLM_ASSERT((state == eSuccess), "");  TCLM_ASSERT((error == TCLE_THREAD_NONE), ""); ”
线程状态判断 还是要在应用中考虑线程的状态
涉及的调用函数: state = TclUnDelayThread(pThread, &error);

2、关于RTOS下 Usart 接收触发中断,尽量使用呼唤线程处理的办法,中断/DMA处理时间不宜过长,否则会影响中断响应,让实时数据处理能力打折扣,影响数据的接收效率


在此非常感谢Trochili 讲解和解惑。


分享到:
回复

使用道具 举报

回答|共 4 个

倒序浏览

沙发

wolfgang2015

发表于 2016-7-4 17:58:59 | 只看该作者

评测:trochili_v0.12_preview5_gd32f190_2016-07-03版本的RTOS

这么快,0.12 Pv5 就做了更新,这次的更新对于应用调用方式没有发生大的变化变化,但RTOS内部机制做了较大的调整,增加了线程调度的“抢占”机制”。从这点更新看,Trochili针对应用还是做了研究。

基于“抢占”机制,在内核、线程、中断、定时器、事件标记、阻塞队列、邮件传递、消息传递、互斥量、信号量、配置、接口都做了大量调整;

至于抢占机制的优劣,在应用的时候体现吧。
板凳

yanhaijian

发表于 2016-7-5 08:32:13 | 只看该作者

现在要占领这个市场很困难,毕竟产品的稳定性谁都不敢马虎。
地板

wolfgang2015

发表于 2016-7-5 12:34:02 | 只看该作者

最新的 "trochili_v0.12_preview5_gd32f190_2016-07-05.rar" 公布了,

这次Trochili_V0.12_pv5_0705版本的增加了对IPC对象信息的参数,增加了一个类型为Tword32 的长度信息。
5#

trochili

发表于 2016-7-13 09:54:52 | 只看该作者

楼上几位真热心。以后trochili会在github上随时更新发布了,https://github.com/liuxuming/trochili
eeboard大力支持的开源RTOS -- Trochili RTOS
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条