硬汉嵌入式论坛

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

[ThreadX全家桶] threadx module app创建任务的时候,任务栈是用的app的mem还是kernel的?

[复制链接]

6

主题

13

回帖

31

积分

新手上路

积分
31
发表于 2024-4-26 17:41:09 | 显示全部楼层 |阅读模式

在开了mpu的情况下,module app工作在user模式下。threadx module app创建任务的时候,任务栈是用的app的mem还是kernel的?
看demo code,app的在创建任务的时候会传入app的一块地址,但是跟踪到module manager的_txm_module_manager_thread_create()又对module是否是user mode做了处理开了kernel stack
"If the thread runs on user mode, allocate the kernel stack for syscall."
所以请问下这个栈到底是用的那边的memory?

回复

使用道具 举报

6

主题

13

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2024-4-26 17:54:20 | 显示全部楼层
想了一下应该是用module自己的memory,如果用到了kernel的memory在用户模式下没办法写栈信息。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
发表于 2024-4-27 08:39:40 | 显示全部楼层
module app使用的是kernel为其创建好的RAM使用空间。这个用户可以自动,他的栈空间也是用的这个。
回复

使用道具 举报

6

主题

13

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2024-4-29 19:10:15 | 显示全部楼层
eric2013 发表于 2024-4-27 08:39
module app使用的是kernel为其创建好的RAM使用空间。这个用户可以自动,他的栈空间也是用的这个。

请问下这个空间是在preamble.S里面定义的data size控制的吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
发表于 2024-4-30 09:19:44 | 显示全部楼层
tdzhang 发表于 2024-4-29 19:10
请问下这个空间是在preamble.S里面定义的data size控制的吗?

这个配套的例子里面我整理了,你看下

4、第4期ThreadX视频教程:单片机动态APP加载玩法,像手机电脑一样加载卸载多个应用软件(2022-05-01)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=112203

5、第5期ThreadX视频教程:单片机动态APP加载MPU玩法,隔离应用和系统,APP死机了系统也不会挂(2022-05-15)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=112368
回复

使用道具 举报

6

主题

13

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 6 天前 | 显示全部楼层
eric2013 发表于 2024-4-30 09:19
这个配套的例子里面我整理了,你看下

4、第4期ThreadX视频教程:单片机动态APP加载玩法,像手机电脑一 ...

谢谢,看明白了。这个mem是module manager分配给app使用的。
还有个问题想请教一下,我在编译app的时候需要使用链接脚本吗?我看到port_module/gnu/example_build/sample_threadx_module里面有sample_threadx_module.ld,我使用这个脚本编译出来的东西感觉不太对。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 19:12 , Processed in 0.214749 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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