Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
请教,为什么多个线程SP指针指向同一地址?
发布于 2013-01-18 09:06:33 浏览:2755
订阅该版
为什么静态创建多个线程,用list_thread()看SP指针指向同一地址? finsh>>list_thread() thread pri status sp stack size max used left tick error -------- ---- ------- ---------- ---------- ---------- ---------- --- tidle 0x1f ready 0x00000058 0x00000100 0x00000058 0x0000001d 000 tshell 0x14 ready 0x000001a0 0x00000800 0x000001b0 0x00000009 000 print 0x19 suspend 0x00000090 0x00000200 0x00000090 0x00000005 000 time 0x18 ready 0x00000088 0x00000200 0x000000cc 0x00000005 -02 USE_IF 0x17 suspend 0x00000090 0x00000200 0x00000090 0x00000005 000 ALARM 0x16 suspend 0x00000090 0x00000100 0x00000090 0x00000005 000 encode2 0x13 suspend 0x00000078 0x00000200 0x00000078 0x00000005 000 encode1 0x12 suspend 0x00000078 0x00000200 0x00000078 0x00000002 000 key 0x15 ready 0x00000080 0x00000100 0x00000080 0x00000005 -02 fsk 0x11 suspend 0x00000090 0x00000100 0x00000090 0x00000004 000 0, 0x00000000 部分代码: static rt_uint8_t key_stack[ 256 ]; static struct rt_thread key_thread; static rt_uint8_t USE_IF_stack[ 512 ]; static struct rt_thread USE_IF_thread; static rt_uint8_t encode1_stack[ 512 ]; static struct rt_thread encode1_thread; static rt_uint8_t encode2_stack[ 512 ]; static struct rt_thread encode2_thread; static rt_uint8_t time_stack[ 512 ]; static struct rt_thread time_thread; static rt_uint8_t alarm_stack[ 256 ]; static struct rt_thread alarm_thread; static rt_uint8_t fsk_stack[ 256 ]; static struct rt_thread fsk_thread; result = rt_thread_init(&fsk_thread, "fsk", fsk_thread_entry, RT_NULL, (rt_uint8_t*)&fsk_stack[0], sizeof(fsk_stack), 0x11, 5); if (result == RT_EOK) { rt_thread_startup(&fsk_thread); } result = rt_thread_init(&key_thread, "key", key_thread_entry, RT_NULL, (rt_uint8_t*)&key_stack[0], sizeof(key_stack), 0x15, 5); if (result == RT_EOK) { rt_thread_startup(&key_thread); } result = rt_thread_init(&encode1_thread, "encode1", encode1_thread_entry, RT_NULL, (rt_uint8_t*)&encode1_stack[0], sizeof(encode1_stack), 0x12, 5); if (result == RT_EOK) { rt_thread_startup(&encode1_thread); } result = rt_thread_init(&encode2_thread, "encode2", encode2_thread_entry, RT_NULL, (rt_uint8_t*)&encode2_stack[0], sizeof(encode2_stack), 0x13, 5); if (result == RT_EOK) { rt_thread_startup(&encode2_thread); } result = rt_thread_init(&alarm_thread, "ALARM", alarm_thread_entry, RT_NULL, (rt_uint8_t*)&alarm_stack[0], sizeof(alarm_stack), 0x16, 5); if (result == RT_EOK) { rt_thread_startup(&alarm_thread); } result = rt_thread_init(&USE_IF_thread, "USE_IF", USE_IF_thread_entry, RT_NULL, (rt_uint8_t*)&USE_IF_stack[0], sizeof(USE_IF_stack), 0x17, 5); if (result == RT_EOK) { rt_thread_startup(&USE_IF_thread); } result = rt_thread_init(&time_thread, "time", time_thread_entry, RT_NULL, (rt_uint8_t*)&time_stack[0], sizeof(time_stack), 0x18, 5); if (result == RT_EOK) { rt_thread_startup(&time_thread); } result = rt_thread_init(&print_thread, "print", print_thread_entry, RT_NULL, (rt_uint8_t*)&print_stack[0], sizeof(print_stack), 0x19, 5); if (result == RT_EOK) { rt_thread_startup(&print_thread); }
查看更多
5
个回答
默认排序
按发布时间排序
bernard
2013-01-18
这家伙很懒,什么也没写!
你的RAM是从0地址开始的吗?显然这个并不是你想的意义。
njgwx
2013-01-18
这家伙很懒,什么也没写!
不太懂,那您的意思是多个线程SP地址相同正常的吗?
grissiom
2013-01-18
这家伙很懒,什么也没写!
看源代码,这个值的含义是: ``` thread->stack_size + ((rt_uint32_t)thread->stack_addr - (rt_uint32_t)thread->sp) ```
celticzy
2013-01-18
这家伙很懒,什么也没写!
>看源代码,这个值的含义是: > > >``` >thread->stack_size + ((rt_uint32_t)thread->stack_addr - (rt_uint32_t)thread->sp) >``` --- 哈哈哈,n天前我也问过这个问题。。。。
撰写答案
登录
注册新账号
关注者
0
被浏览
2.8k
关于作者
njgwx
这家伙很懒,什么也没写!
提问
7
回答
11
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
TinyUSB Demo运行教程
2
RT-Thread学习大礼包一键带走!
3
freemodbus从机调试说明
4
【1024】瑞萨 RA 系列 BSP 制作与适配最新版本的 Keil 、 RSC、固件,较新的 FSP
5
基于 RT-Thread 星火一号开发板的俄罗斯方块
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
cubemx
PWM
flash
packages_软件包
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
用户名由3_15位
10
个答案
1
次被采纳
KunYi
4
个答案
1
次被采纳
踩姑娘的小蘑菇
2
个答案
1
次被采纳
bernard
1
个答案
1
次被采纳
rv666
1
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
4
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部