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

青岛企业网站建站模板江门市网站开发

青岛企业网站建站模板,江门市网站开发,网站开发验收模板,网络推广页面看到有小伙伴在讨论关于单片机内存的话题#xff0c;今天就结合STM32给大家描述一下常见的划分区域。 在一个STM32程序代码中#xff0c;从内存高地址到内存低地址#xff0c;依次分布着栈区、堆区、全局区#xff08;静态区#xff09;、常量区、代码区#xff0c;其中全…       看到有小伙伴在讨论关于单片机内存的话题今天就结合STM32给大家描述一下常见的划分区域。 在一个STM32程序代码中从内存高地址到内存低地址依次分布着栈区、堆区、全局区静态区、常量区、代码区其中全局区中高地址分布着.bss段低地址分布着.data段。 总的分布如下所示 内存高地址 栈区 堆区 .bss段 .data段 常量区 内存低地址 代码区 一、栈区stack 临时创建的局部变量存放在栈区。 函数调用时其入口参数存放在栈区。 函数返回时其返回值存放在栈区。 const定义的局部变量存放在栈区。 2、堆区heap 堆区用于存放程序运行中被动态分布的内存段可增可减。 可以有malloc等函数实现动态分布内存。 有malloc函数分布的内存必须用free进行内存释放否则会造成内存泄漏。 3、全局区静态区 全局区有.bss段和.data段组成可读可写。 4、.bss段 未初始化的全局变量存放在.bss段。 初始化为0的全局变量和初始化为0的静态变量存放在.bss段。 .bss段不占用可执行文件空间其内容有操作系统初始化。 5、.data段 已经初始化的全局变量存放在.data段。 静态变量存放在.data段。 .data段占用可执行文件空间其内容有程序初始化。 const定义的全局变量存放在.rodata段。 6、常量区 字符串存放在常量区。 常量区的内容不可以被修改。 7、代码区 程序执行代码存放在代码区。 字符串常量也有可能存放在代码区。 通过上面的介绍可能你对各个数据的存储位置还是很模糊下面通过一个简单的程序再来体会理解一下。 通过上面的介绍可能你对各个数据的存储位置还是很模糊下面通过一个简单的程序再来体会理解一下【多余一段】 #include stdio.hstatic unsigned int val1 1; //val1存放在.data段 unsigned int val2 1; //初始化的全局变量存放在.data段 unsigned int val3 ; //未初始化的全局变量存放在.bss段 const unsigned int val4 1; //val4存放在.rodata只读数据段unsigned char Demo(unsigned int num) //num 存放在栈区 {char var 123456; //var存放在栈区123456存放在常量区unsigned int num1 1 ; //num1存放在栈区static unsigned int num2 0; //num2存放在.data段const unsigned int num3 7; //num3存放在栈区void *p;p malloc(8); //p存放在堆区free(p);return 1; }void main() {unsigned int num 0 ;num Demo(num); //Demo()函数的返回值存放在栈区。 } 上面我们已经对堆、栈、全局区、常量区、代码区进行了全面的分析也举例进行了说明。下面我们在对这些区存放在哪种介质上进行讨论。 8、RAM和ROM、Flash Memory的物理特性 首先我们需要明白RAM和ROM、Flash Memory的物理特性。 9、RAM RAM又称随机存取存储器存储的内容可通过指令随机读写访问。RAM中的存储的数据在掉电是会丢失因而只能在开机运行时存储数据。其中RAM又可以分为两种一种是Dynamic RAM(DRAM动态随机存储器),另一种是Static RAM(SRAM,静态随机存储器)。 10、ROM ROM又称只读存储器只能从里面读出数据而不能任意写入数据。ROM与RAM相比,具有读写速度慢的缺点。但由于其具有掉电后数据可保持不变的优点因此常用也存放一次性写入的程序和数据比如主版的BIOS程序的芯片就是ROM存储器。 11、Flash Memory 由于ROM具有不易更改的特性后面就发展了Flash Memory。Flash Memory不仅具有ROM掉电不丢失数据的特点又可以在需要的时候对数据进行更改不过价格比ROM要高。 12、不同数据的存放位置 由前面的分析我们知道代码区和常量区的内容是不允许被修改的ROMSTM32就是Flash Memory也是不允许被修改的所以代码区和常量区的内容编译后存储在ROM中。 而栈、堆、全局区.bss段、.data段都是存放在RAM中。 至此关于不同数据存放哪个区域已经全部介绍完了。下面还将介绍一下Keil 的Build Output窗口。 13、Keil 的Build Output窗口 如上图存在Code、RO-data、RW-data、ZI-data四个代码段大小。 其中Code就是代码占用大小RO-data是只读常量、RW-data是已初始化的可读可写变量ZI-data是未初始化的可读可写变量。 有些时候我们需要知道RAM和ROM的使用情况如何那么我们就可以使用下面的公式计算。 RAM  RW-data ZI-data ROM Code RO-data RW-data
http://www.hkea.cn/news/14432961/

相关文章:

  • 山西免费网站关键词优化排名网站开发行业推广
  • 集约化网站建设的函遵义网站建设gzyhg
  • 南康网站建设南康seo教程seo官网优化详细方法
  • 专门做外国的网站吗wordpress重新安装博客怎么搬家
  • 平舆专业网站建设wordpress 写插件吗
  • 博罗网站开发twenty ten wordpress
  • dz论坛中英文网站怎么做手机软件制作网站平台
  • 网站建设教程流程手机wap网站是什么
  • 怎么给网站做友情链接中级网站开发工程师 试题
  • 做企业网站步骤外发加工网磨字
  • 网上骗人彩票网站是怎么做的公司网站建设外包
  • 南京电商网站建设公司排名深圳设计网页制作公司
  • 什么网站做海宁的房产好表格制作手机软件
  • 中国建设银行分行网站江苏连云港做网站
  • 海南企业网站建设常宁网站定制
  • 网站建设收获与不足wordpress 评论登陆
  • 济南网站设计哪家好桂林生活网二手房
  • 怎么建立简单网站哪些网站是python做的
  • 定制网站建设宝安西乡摄影展板设计
  • 专业做网站较好的公司广州中国现货交易网
  • 白银做网站四川省城乡建设信息网站证件查询
  • 河南电商网站设计南浔建设局网站
  • 网站推广与优化怎么做wordpress 根据id获取分类名称
  • 建立网站的费用阿里巴巴自助建站的一般流程
  • 网站建设一般多少钱有网站建设费科目吗
  • 推荐网站建设收费标准龙华网站建设推广外包
  • 用v9做网站优化深圳微商城网站设计
  • 什么是网站建设公司交互网站设计
  • 西安国际网站设计做暖暖视频网站大全
  • 做发帖的网站代码传奇电脑版