博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单片机程序的存放
阅读量:7287 次
发布时间:2019-06-30

本文共 623 字,大约阅读时间需要 2 分钟。

1)对于烧录在单片机里面的程序,程序的代码段,data段,bss段,rodata段等都存放在单片机的Flash中。当单片机上电后,初始化汇编代码将data段,bss段,复制到单片机的RAM中,并建立好堆栈,开始调用程序的main函数。以后,便有了程序存储器和数据存储器之分,程序运行时从Flash(即指令存储器,代码存储器)中读取指令 ,从RAM中读取与写入数据。

2)RAM->存放data段,bss段,堆栈段;

     ROM->存放代码段(code 段)与只读数据段(rodata段);

3)bss段的理解:(Block Started By Symbol)通常是指用来存放程序未初始化的全局变量和静态变量的一块内存区域,特点是可读写的;在程序执行之前bss段会自动清零,所以未初始化的全局变量与静态变量在程序执行之前就已经初始化为0了。

    注:bss段与data段的区别:bss段存放的是未初始化的全局变量与静态变量;data段存放的是初始化后的全局变量与静态变量;

4)rodata段的理解:rodata段存放的是程序只读数据,一般是程序里面的只读变量(如const修饰的变量)与字符串常量。单独设立".rodata"段有很多好处,不光是在语义上支持const字,操作系统加载时可以将".rodata"段的属性设置为只读,保证了程序的安全。

转载于:https://www.cnblogs.com/yirenyang/p/4303571.html

你可能感兴趣的文章
Android APP应用开发视频教程
查看>>
unrecognized selector sent to class 0x91cde0
查看>>
python学习笔记-Day10--(进程\线程\协程)
查看>>
linux学习第4天(自习)
查看>>
持续更新:Centos常用方便的命令与技巧集合
查看>>
ubuntu 终端vi和gedit中文乱码解决方案
查看>>
Linux下无连接的套接字通信C实现
查看>>
ipv6
查看>>
CCNA入门---交换机端口安全的四种行为
查看>>
获取当前时间的时分秒
查看>>
mysql5.6源码拷贝不编译安装
查看>>
centos7 安装iftop
查看>>
CISCO之BGP配置
查看>>
python ConfigParser 模块
查看>>
如何通过Word 2010发布文章到博客
查看>>
JVM监控和查看
查看>>
$.ajax与$.post,$.get的区别
查看>>
Java开发者易犯错误Top10
查看>>
Xcode快捷键整理(陆续添加中)
查看>>
分布式系统的事务处理
查看>>