[应用方案] 新塘的51单片机把函数申明到指定的RAM空间

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

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);
gejigeji521 发表于 2024-2-29 15:56 | 显示全部楼层
应该是有特别的关键词操作吧。
gejigeji521 发表于 2024-2-29 15:56 | 显示全部楼层
看看提供的例子里有木有。
ClarkLLOTP 发表于 2024-3-5 15:54 来自手机 | 显示全部楼层
这样怎么写代码实现啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

89

主题

1561

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部