嵌入式linux开发 (三十三) 内存管理2.0(4) rt-thread内存管理

//
static char thread1_stack[1024];
struct rt_thread thread1;
rtthread_startup
	rt_application_init
	rt_system_scheduler_start
		
	    rt_thread_init(&thread1,
	                   "led1",
	                   rt_thread_entry1,
	                   RT_NULL,
	                   &thread1_stack[0],
	                   sizeof(thread1_stack),11,5);
	    rt_thread_startup(&thread1);
整体来说,布局的话,和ucos 一样
flash
	.code .ro-data // 应用程序的和系统的混在一起了
ram
	.data .bss .heap  TCB(应用程序) // 应用程序的和系统的混在一起了
		// 注意: TCB在.data里面 
		// OS_EXT  OS_TCB            OSTCBTbl[OS_MAX_TASKS + OS_N_SYS_TASKS];   /* Table of TCBs                  */
	.stack(内核) .stack(应用程序1) .stack(应用程序2) ...  // 应用程序的和内核的分开了
	// freertos 的 应用程序stack 是在 .data中的 
	// OS_STK START_TASK_STK[START_STK_SIZE];
	//内核stack 是 一开始初始化的
---------------------------和裸机内存的布局有什么不同
1.大体相同(都是 .code .ro-data .data .bss .heap .stack)
2.只不过.data被内核用了一部分(用于TCB的管理)
3.stack被分成了很多份(内核一份(内核的stack在.stack),每个应用程序一份(用户的stack在.data))


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值