导航:首页 > 操作系统 > 单片机把某个函数放进ram

单片机把某个函数放进ram

发布时间:2023-06-30 07:41:27

1. 单片机程序运行要不要把程序从ROM中读入到RAM中

不要。但是ram中肯定会保留与当前程序运行状态有关的寄存器(SFR,对于ST89C52应该就是0x80~0xFF的单元)。
对于51系列或者类51的单片机,程序空间和数据空间是分开的,并不存在由rom加载到ram的问题。
这么说吧,ST89C52可以支持到64K的程序存储,如果都加载到外部RAM里,那RAM肯定是放不下了。

data是内部直接寻址的RAM,idata是内部间接寻址的RAM

2. 单片机 ram 中执行代码的 如何链接

单片机的程序一般默认从Fash启动。要想在RAM执行程序,首先得单片机支持,一般只要Flash和RAM是统一编址的都可以在RAM运行程序。

程序的启动一般都是从一个固定地址(厂家规定)启动的,而这个地址一般都不在RAM地址范围内。因此常用的做法是在单片机厂家规定的启动的地址开始处预先烧录一段启动代码,这就是我们常说的BootLoader,然后再在BootLoader中按照单片机的运行规则跳转到RAM中代码(我们一般称为App程序)的起始地址。

链接的不同之处就是ROM模型,一般,按照单片机对应的开发工具,默认都是将ROM的起始地址设置到了厂家规定的启动地址处,要将程序编译到其他地址,只需要找到这个ROM的配置修改其起始地址和空间大小即可。例如Keil里面的Target页面或者sct文件,还有DSP中的link文件……

根据上述说明可知想要在非厂家规定的地址跑程序,需要有一个BootLoader引导程序(如果是使用在线仿真器仿真跑可以不要):

  1. App程序:链接到实际需要的地址(可能是Flash也可能是RAM),如果为RAM要注意掉电后程序丢失;

  2. BootLoader程序:链接到厂家规定的启动地址,在BootLoader中再通过软件跳转到App的地址。

3. 单片机 51的一个项目的参数是放在ram里面的,下次在上电应该数据会丢失啊但是,下面,一定采纳

这是一条 伪指令 设置 setno 变量为 23h,
至于在程序中 怎么使用 这个 setno 变量 是另外回事,
如果在 变量中 存放 一个什么 数据 (这个数据是存放在 23h RAM 中)
你们关闭电源后 过 一段时间 再打开电源 这个变量 中的数据 就不一定 了。
这要看你 单片机 的电 是否 完全 放尽。如果 放尽电后肯定 保存不住的。

阅读全文

与单片机把某个函数放进ram相关的资料

热点内容
生成360文件夹 浏览:1000
图库的文件夹是哪个 浏览:505
程序员为什么药学日语 浏览:423
熟悉linux常用命令 浏览:859
印度外卖小哥是程序员 浏览:413
绍兴程序员开发驻场流程 浏览:546
索纳塔8的压缩比 浏览:16
私有云主要服务器 浏览:939
为什么主题解压那么慢 浏览:860
怎么下载扫描二维码的手机app 浏览:727
云服务器创建私有镜像的时候一定要关机吗 浏览:115
php开发学习门户 浏览:385
传奇游戏服务器怎么设置 浏览:823
敲击东西解压完整版 浏览:401
刺络学pdf 浏览:868
怎么给手机文件夹设置封面 浏览:931
汽车保养app怎么用 浏览:62
线程javalock 浏览:898
c语言编译运行结果查看器 浏览:114
androidpx转dip 浏览:843