硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1285|回复: 2
收起左侧

[ThreadX全家桶] threadx线程堆栈内存分配的疑问

[复制链接]

4

主题

34

回帖

46

积分

新手上路

积分
46
发表于 2022-6-21 13:26:39 | 显示全部楼层 |阅读模式
我看threadx的例程,线程的堆栈分配如下:

从内存池中分配一块内存给线程使用
    tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);

    tx_thread_create(&thread_0, "thread 0", thread_0_entry, 0,  
            pointer, DEMO_STACK_SIZE,
            1, 1, TX_NO_TIME_SLICE, TX_AUTO_START);



如果我直接给它指定一个内存数组可不可以?

char thread_0_stack[2048];
_tx_thread_create(&thread_0, "thread 0", thread_0_entry, 0,  
            thread_0_stack, 2048,
            1, 1, TX_NO_TIME_SLICE, TX_AUTO_START);



例程这样写的好处在哪里?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115863
QQ
发表于 2022-6-21 15:53:32 | 显示全部楼层
都可以,你的第1个写法是ThreadX默认的传统玩法,方案就是将RAM剩余空间全部给动态内存使用。

第2分写法更通用些。
回复

使用道具 举报

4

主题

34

回帖

46

积分

新手上路

积分
46
 楼主| 发表于 2022-6-21 16:47:41 | 显示全部楼层
eric2013 发表于 2022-6-21 15:53
都可以,你的第1个写法是ThreadX默认的传统玩法,方案就是将RAM剩余空间全部给动态内存使用。

第2分写法 ...

谢谢回复,我看你的例程也是这么写的,我更喜欢第二种,比较直观
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-23 20:45 , Processed in 0.273404 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表