|
本帖最后由 雷鹏 于 2018-7-10 22:58 编辑
#include <rtthread.h>
/* 线程TCB和栈 */
struct rt_thread thread1;
char thread1_stack[512];
/* 线程入口 */
void thread1_entry( void* parameter )
{
int i;
char *ptr[20]; /* 用于放置20个分配内存块的指针 */
/* 对指针清零 */
for ( i = 0; i < 20; i ++ ) ptr = RT_NULL;
while( 1 )
{
for ( i = 0; i < 20; i++ )
{
/* 每次分配(1 << i)大小字节数的内存空间 */
ptr = rt_malloc( 1 << i );
/* 如果分配成功 */
if ( ptr != RT_NULL )
{
rt_kprintf( "get memory %d: 0x%x\n",i, ptr );
/* 释放内存块 */
rt_free( ptr );
ptr = RT_NULL;
}
}
}
}
int rt_application_init()
{
/* 初始化线程对象 */
rt_thread_init( &thread1,
"thread1",
thread1_entry, RT_NULL,
&thread1_stack[0], sizeof( thread1_stack ),
20, 100 );
rt_thread_startup( &thread1 );
return 0;
}
|
|