硬汉嵌入式论坛

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

[FreeRTOS] FreeRTOS中创建任务时传入一个局部变量地址作为任务参数遇到的问题

[复制链接]

2

主题

6

回帖

12

积分

新手上路

积分
12
发表于 2024-11-9 20:56:38 | 显示全部楼层 |阅读模式
为什么地址相同但是值不同
Snipaste_2024-11-09_20-47-02.bmp

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-11-10 10:34:48 | 显示全部楼层
设置数据断点,看看那里修改的。

MDK里面比较实用的数据断点设置
https://www.armbbs.cn/forum.php? ... 5546&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

2

主题

6

回帖

12

积分

新手上路

积分
12
 楼主| 发表于 2024-11-10 11:02:44 | 显示全部楼层
__asm void vPortSVCHandler( void )中
Snipaste_2024-11-10_10-57-23.bmp
回复

使用道具 举报

2

主题

6

回帖

12

积分

新手上路

积分
12
 楼主| 发表于 2024-11-10 11:07:48 | 显示全部楼层
Snipaste_2024-11-10_10-57-23.bmp
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-11-10 11:11:43 | 显示全部楼层
linklin 发表于 2024-11-10 11:02
__asm void vPortSVCHandler( void )中

你这个变量是局部变量,占用的xxx.s启动文件里面的stack空间,这个空间不会因为你执行vPortSVCHandler而改变,你的程序可能那里有内存越界问题。





回复

使用道具 举报

2

主题

6

回帖

12

积分

新手上路

积分
12
 楼主| 发表于 2024-11-10 12:07:21 | 显示全部楼层
我改成静态局部变量它的值又是对的了,搞晕了,我换个工程试了一下,发现还是这样的
Snipaste_2024-11-10_11-15-35.bmp
换了工程后
另一个工程.bmp
task_a.bmp




回复

使用道具 举报

3

主题

422

回帖

431

积分

高级会员

积分
431
发表于 2024-11-10 21:02:48 | 显示全部楼层
这是基础知识,OS开始工作后,main函数的堆栈(MSP)被用于中断上下文,所以其局部变量已经被中断服务改写,不应该再在线程中使用!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-11-10 21:47:38 | 显示全部楼层
glory 发表于 2024-11-10 21:02
这是基础知识,OS开始工作后,main函数的堆栈(MSP)被用于中断上下文,所以其局部变量已经被中断服务改写 ...
非常感谢。
我还特地看了下Port文件,没发现重新设置msp为栈顶值。port文件这个地方重新设置了,那确实不行了。
这个处理分OS,像uCOS没有再使用这个,是直接开的新的系统堆栈空间,楼主位这种操作不影响。

1243.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-11-10 21:50:51 | 显示全部楼层
linklin 发表于 2024-11-10 12:07
我改成静态局部变量它的值又是对的了,搞晕了,我换个工程试了一下,发现还是这样的

换了工程后

不能这么使用了,你调试到这个函数里面,会看到重新设置到MSP栈顶了,局部变量无效了,这个空间是系统堆栈使用的。


回复

使用道具 举报

2

主题

6

回帖

12

积分

新手上路

积分
12
 楼主| 发表于 2024-11-11 07:34:08 | 显示全部楼层
好的,十分感谢各位大佬的解惑,确实没有注意Free RTOS中msp被设置为栈顶值了,确实是对Free RTOS太不熟悉了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-26 04:49 , Processed in 0.532839 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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