你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L476VC低功耗STANDBY

[复制链接]
sweetll 提问时间:2021-2-18 16:54 /
1ST金币
项目由于低功耗要求,需要采用低功耗STANDBY模式。但由于业务过程中需要有数据及时存储,STANDBY重启会导致数据清空,只有SRAM2可以保存。

现求助大神们,如何使用备用RAM(SRAM2)进行数据存储。最好是有例程,谢谢!

最佳答案

查看完整内容

__attribute__((at(0xxxxxxxx))) uint8_t buff[1024]; 在 MDK 环境下这样就可以把数组定义到指定的地址了。
收藏 评论6 发布时间:2021-2-18 16:54

举报

6个回答
3111272 回答时间:2021-2-18 16:54:32
__attribute__((at(0xxxxxxxx))) uint8_t buff[1024];

在 MDK 环境下这样就可以把数组定义到指定的地址了。

sweetll 回答时间:2021-2-19 08:44:22
有没有大神来帮帮忙啊。
sweetll 回答时间:2021-2-19 09:40:23
3111272 发表于 2021-2-19 09:23
__attribute__((at(0xxxxxxxx))) uint8_t buff[1024];

在 MDK 环境下这样就可以把数组定义到指定的地址了 ...

__attribute__((at(0xxxxxxxx)))  这个函数有具体一点的介绍的(使用方法或使用条件的),__attribute__没查到定义。之前没有操作过RAM,不太清楚。谢谢!!!
sweetll 回答时间:2021-2-20 08:58:35
3111272 发表于 2021-2-19 09:23
__attribute__((at(0xxxxxxxx))) uint8_t buff[1024];

在 MDK 环境下这样就可以把数组定义到指定的地址了 ...

那我想修改buff中的值,不用再重新定义地址了吧?
sweetll 回答时间:2021-2-20 09:00:49
3111272 发表于 2021-2-19 09:23
__attribute__((at(0xxxxxxxx))) uint8_t buff[1024];

在 MDK 环境下这样就可以把数组定义到指定的地址了 ...

例:uint8_t check_16s[1]    __attribute__((at(0x10000000)))={0x00};    check_16s[0] = 0x01;         修改check_16s中的值后不用再重新定义地址了吧。
sweetll 回答时间:2021-2-20 09:01:49
3111272 发表于 2021-2-19 09:23
__attribute__((at(0xxxxxxxx))) uint8_t buff[1024];

在 MDK 环境下这样就可以把数组定义到指定的地址了 ...

例:uint8_t check_16s[1]    __attribute__((at(0x10000000)))={0x00};    check_16s[0] = 0x01;         修改check_16s中的值后不用再重新定义地址了吧。
sweetll 回答时间:2021-3-3 15:28:08
3111272 发表于 2021-2-18 16:54
__attribute__((at(0xxxxxxxx))) uint8_t buff[1024];

在 MDK 环境下这样就可以把数组定义到指定的地址了 ...

我用了绝对定位写RAM2,但是在STANDBY唤醒后,值就清零了。使用了HAL_PWREx_EnableSRAM2ContentRetention();保存

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版