找回密码
 注册
关于网站域名变更的通知
查看: 271|回复: 3
打印 上一主题 下一主题

调用pthread_join以后报错有大佬知道怎么解决吗

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-20 11:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
如下所示,调用pthread_join以后,报错,有大佬知道解决吗?
, ]) c, c1 d) G. Q' U5 \. y! |1 t* I) b6 X# P; j
msh />
1 N/ s, x; c$ d. }, O( imsh />6 C" y7 i. j4 s' n- E
msh />
1 ]- x& y2 s8 Q# N# C; U- wmsh />: b, k7 Y5 Y2 h& `' W8 v  I
msh />, \7 n1 T- ~: Z6 V' Z/ k
\ | /0 X) o4 M, u( ?/ c$ P0 m

) |1 P) A4 |; RRT - Thread Operating System
0 z4 S4 L1 |5 Z3 Y+ @7 [/ | \ 4.1.0 build Jun 24 2022 16:22:28; S6 h/ h; l. m4 C+ C
2006 - 2022 Copyright by RT-Thread team% M: Z  R) j0 j2 o: b
pthread_create success
8 N: Z0 b* S( V, ki'm thread1 and i will detach myself!
( f: r6 A5 R  @8 g' [5 X$ U/ s1 C8 Lposix thread 0
3 ^7 ?! J* l. }9 s" Sposix thread 1* `& d7 Z  P; Z
posix thread 2
6 A, d; f/ B; B' W- f1 zposix thread 3
1 R+ x, v9 P/ \5 T- _; dposix thread 4
9 G" x" |" H  F6 o" [0 y; x0 Mthread1 exited!# X2 k$ }. B# g$ |8 t6 [' T
posix_thread_init exit1 {& v2 N% I- M8 j  g$ z# a# P! s7 T& d
msh />(small_mem != RT_NULL) assertion failed at function:rt_smem_free, line number:532
& e* g& ?- w7 E0 M7 U' Y4 d. w, E4 h#include <pthread.h>/ b! E; U( l; i+ q
#include <unistd.h>9 d3 _4 q5 A! R$ Z- o$ @
#include <stdio.h>8 N. r  a9 |* [
static pthread_t tid1;0 w& v+ H0 D# C( |
static void* thread1_entry(void *param)
2 x) ]# _1 w- ?/ ^0 y+ f+ J{
3 E0 a+ j/ {" d) w7 vprintf("i'm thread1 and i will detach myself!\n");& ^. [) S; {. a/ e2 l0 b6 k# g, j
for(int i=0; i<5; i++)4 R+ z: |; H5 d2 |  [
{3 n0 d5 x1 S9 M
printf("posix thread %d\n", i);( T( |5 H4 X' J
sleep(1);% {; @8 q7 Z8 T
}
* i2 |$ p: X& Y  t: }8 B& I& cprintf("thread1 exited!\n");$ S( {6 i! _( \$ ~# h
return NULL;5 n: P& p! J0 ]1 W- S$ b4 Z
}6 B6 w/ q3 y9 V
static int posix_thread_init(void)0 }6 ]' B& C+ \! e. K
{
5 |) j/ r3 ^" R, Y0 Dint result;! f: W0 i% z' p1 }& B0 |$ _. ?/ ^- s
result = pthread_create(&tid1, NULL, thread1_entry, NULL);$ I# p, n" q/ v' @) @% x  B
if( result == 0 )& d- `- x4 }! J: U" v" e3 Y7 I% E
{
4 G. c0 p2 N+ l' a/ x/ P/ K* Xprintf("pthread_create success\n");
9 h. U; d- q: A* l}
! h% A( e" `4 z9 S4 xelse& d' f0 Z* G; M8 g1 @8 u
{
: \: e6 ~7 M5 B  o% `printf("pthread_create fail\n");
# K+ }4 H' m, K4 q; v" Z1 U}' `' `& I. p/ N5 S7 r3 Y+ Y
pthread_join(tid1, NULL);
6 a0 }: ~- m# t1 R$ ~- @5 cprintf("posix_thread_init exit\n");
* v5 c; r: |  f7 Y5 x4 _$ }9 p$ Xreturn 0;
# |$ g( Q* ~# e* V' Z& H8 J. D% Y}
, m8 z3 [" ^* Q. ]6 K7 eINIT_APP_EXPORT(posix_thread_init);. q0 W7 }) e. m5 Q; L' V( @  Q( m

该用户从未签到

2#
发表于 2022-9-20 13:12 | 只看该作者
只有这些代码?根据变量 small_mem 是在哪里定义的?
& d( d+ `; W& N* _8 H+ f4 y, O

该用户从未签到

3#
发表于 2022-9-20 14:59 | 只看该作者
我把你的代码在我的开发板上试了一下,芯片是STM32F型号,把INIT_APP_EXPORT(posix_thread_init);103xx变成了MSH_CMD_EXPORT(posix_thread_init, posix_thread_init);方便进行测试,连续测试了多次结果没有出现你的上述问题,我的内核版本是4.0.4,使用的工作室进行的开发,,不知道你的开发板芯片型号是什么?
; a, ^% |3 q/ P6 Y% Z+ Z
  • TA的每日心情
    开心
    2023-6-2 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2022-9-20 15:23 | 只看该作者
    换个开发版试试# j3 e  N9 Y$ X3 ~) b
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-23 19:51 , Processed in 0.156250 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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