找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2979|回复: 2
收起左侧

用新塘的51单片机怎样才能把函数申明到指定的RAM空间啊

[复制链接]
ID:410640 发表于 2019-1-14 15:16 | 显示全部楼层 |阅读模式
最近练习使用在线升级的使用方法,知道则么将变量定义在指定空间地址,那么函数能不能也这样定义呢?我按照网上说的找M51文件的函数名称,在到KEIL中申明到CODE里,编译报错,有没有和申明变量一样的申明方法? 1.png
回复

使用道具 举报

ID:410640 发表于 2019-1-14 15:46 | 显示全部楼层
void APROM_UpDateTest(void)__attribute((section(".ARM.__at_(1024ul*16)")));
void code APROM_UpDateTest(void)_at_((1024ul*10));
u8 code FlashParameter[10] _at_((1024ul*18)-128);
回复

使用道具 举报

ID:123289 发表于 2019-1-15 08:22 | 显示全部楼层
计算机运行的条件是,程序必须放在它可【取指】的存储器中,它不知道(也无须知道)这个存储区域是用什么材料做的(ROM、FLASH、EPROM、EEPROM、RAM……)
所以就有一个先决的条件:你的RAM必须在程序区(可程序取指)。
接下来你只要将程序放入这个区就可以了。
例如:单片机只有4K程序区,你用16K的RAM扩充了程序区。这样就可以达成你的愿望了。
不过。你的系统不能掉电,掉电后放进RAM的程序就没有了。
一般用RAM运行程序有两个情况:
1、故意增加程序破解难度。
2、有外部存储程序,切换工作。
这样就不用巨大的程序空间了,谁需要工作,谁把谁载入RAM。不工作的不载入。
这类似于PC机的工作方式。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表