[分享] threadx queue的一个坑,同时也注意硬汉教程的一个错误

freebsder   2022-4-25 09:25 楼主

前几天用threadx queue,仔细看一下,函数原型是 

UINT tx_queue_create(
    TX_QUEUE *queue_ptr, 
    CHAR *name_ptr,
    UINT message_size,
    VOID *queue_start, 
    ULONG queue_size);

message_size:指定队列中每条消息的大小。 消息大小从 1 个 32 位字到 16 个 32 位字不等。 有效的消息大小选项是介于 1 到 16(含)之间的数值。

这边的消息大小以4字节为单位!最小4字节,最大64字节。

我用的时候简单看了下手册,以经验直接设message_size这个参数,按常理以字节为单位,结果在某些地方固定要crash。。。

 

今天查了一下硬汉教程,结果他写的也有bug:

	tx_queue_create(&MessageQueues1, 
					"MessageQueues1", 
					1,                         /* 每次消息队列发送的数据大小,单位32bit,范围1-16 */
					(VOID *)MessageQueuesBuf1, 
					sizeof(MessageQueues1));   /* 消息队列大小,单位字节 */

硬汉的教程代码里面,最后一个参数 queue_size 设置也是错用的。。。

默认摸鱼,再摸鱼。2022、9、28

回复评论 (5)

周边有这个系统的人看来还是不多呀。

默认摸鱼,再摸鱼。2022、9、28
点赞  2022-4-25 09:33

有时候教程也会有问题,主要可能对系统API理解有误。

点赞  2022-4-25 19:17

吃螃蟹

点赞  2022-4-25 19:31

有用到threadx 但沒特別注意這地方,謝謝分享

点赞  2022-5-24 20:03

之前打算用的,不过中途换了,感谢分享

点赞  2022-7-14 23:50
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复