当前位置: 首页 > news >正文

php网站整合discuz专业集团门户网站建设公司

php网站整合discuz,专业集团门户网站建设公司,免费货源在线网站,怎么建设电子商城网站堆和栈 1. 堆 堆就是空闲的一块内存,可以通过malloc申请一小块内存,用完之后使用再free释放回去。管理堆需要用到链表操作。 比如需要分配100字节,实际所占108字节,因为为了方便后期的free,这一小块需要有个头部记录…

堆和栈

1. 堆

堆就是空闲的一块内存,可以通过malloc申请一小块内存,用完之后使用再free释放回去。管理堆需要用到链表操作。

比如需要分配100字节,实际所占108字节,因为为了方便后期的free,这一小块需要有个头部记录size和next_free指针,各占4字节。

若果再想分配内存,可以找到空闲内存的第一个块,如果第一个块不够。就可以继续找下一块,例如使用已经被释放了的块。如果还是不够,那就申请失败。

在这里插入图片描述

2. 栈

也是一块内存空间,CPU的SP寄存器指向它,它可以用于函数调用、局部变量、多任务系统里保存现场。
通过反汇编代码能更好的理解栈。

函数调用

在这里插入图片描述
C函数入口处,先划分自己的栈,再保存LR进内存的栈里,保存局部变量。例如,下图中的a_func中R0就是局部变量
在这里插入图片描述

局部变量

在这里插入图片描述

每个RTOS任务都有自己的栈

对于两个任务A、B,A运行一阵子,切换到B运行;再切换到A,再切换到B······

Task_A(){int cnt=0;while(1){cnt=b_func(cnt);}
}Task_B(){int cnt=100;while(1){cnt=b_func(cnt);}
}
切换Task_A

在被切换出去时保存所有寄存器
在这里插入图片描述
Task_A的栈
在这里插入图片描述
Task_B和Task_A的切换和恢复过程相同。

恢复Task_A

找到A的结构体,得到A的SP,从保存现场里先恢复寄存器,再恢复PC。
在这里插入图片描述
每个任务都使用到b_func函数,但是调用关系、局部变量、“保存现场”不同,所以不同的任务都要有自己的栈来分别保存。

http://www.yayakq.cn/news/125385/

相关文章:

  • 建设银行网站功能介绍平台推广
  • 云阳网站建设公司网站密码如何找回密码
  • 广州 营销型网站建设公司php高级网站开发
  • 企业做网站需要注意什么问题县科协微网站建设
  • 河南建设工程协会网站茂名网站制作价格
  • 受欢迎的企业网站建设家里笔记本做网站 怎么解析
  • 陕西网站开发联系方式男女做受网站
  • 自助做网站哪家好wordpress电视主题下载
  • 长沙一站式网站建设网站建设公司不挣钱的原因
  • 做网站有哪些需求宁夏免费做网站
  • 重庆网站建站系统网站分析一般要重点做哪几项内容
  • 大连网站建设连城传媒wordpress获取tag
  • 画品展现手机网站wordpress中搜索页面模板
  • 在哪些网站上发外链好九江 网站建设公司
  • 重庆建设网站的公司网站后台不显示文章内容
  • 深圳网站的优化图书馆网站建设规划
  • 学网站开发网页制作网站建设技巧讠金手指排名26
  • 金华做企业网站公司石家庄做外贸网站建设
  • 网站 支付宝 接口广州网页设计网站
  • 网站建设要学哪些软件网站建设大连创时代
  • 苏州网站推广服务大连哪里有手机自适应网站建设
  • 战鼓网这种网站怎么做怎样打小广告最有效
  • 云盘建设网站用个人的信息备案网站吗
  • 阳信做网站当地做网站贵
  • 公司网站建设后期维护宏润建设集团网站
  • 给平面设计素材网站做素材挣钱吗php mysql的网站开发
  • 用自己的电脑做网站空间网站蓝色导航栏代码
  • 织梦php网站模板wordpress双击返回顶部
  • 网站后台 生成所有页面wordpress有自定义时间发布文章
  • 免费中文网站模板html哈尔滨小程序开发