专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
让STM32的外接SRAM操作跟内部SRAM一样
2020-01-01 17:59
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
12120
96
96
大家都有给STM32外接SDRAM的经历,但是外接了却无法让编译器将已定义变量自动分配到外接SDRAM中,当我们使用UCOS和EMWIN时,会出现以下问题:
STEP5.jpg
(331.88 KB, 下载次数: 1)
下载附件
2016-3-1 07:20 上传
按照以上步骤配置完后,以后使用外部SDRAM就跟用内部SRAM一样,不用自己去申请内存,也不用考虑什么内存地址,一切让编译器自己去解决。
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
95条回答
godlovemei
1楼-- · 2020-01-10 23:56
刚看到,好贴
加载中...
syj0925
2楼-- · 2020-01-11 03:25
由于外部sram访问速度相对慢很多,因此多线程分配栈的时候,都是指定到内部ram中(__attribute__ ((at(_addr)))),其它的由编译器自动分配。
加载中...
love_ourdev
3楼-- · 2020-01-11 07:09
yaya001 发表于 2016-3-4 20:47
很想知道 在IAR中如何 和MDK一样的设置
IAR中也是很简单的,这些属于工具链的知识;现在的开发人员都很浮躁,他们不愿意深入理解自己所使用的工具,都是一知半解就行了。
拿楼主的内存布局做为例子(这样更利于对比),IAR下您只需在ICF文件中加入下面这些定义就可以了:
define region RAM1 = mem:[from 0xC0000000 size 0x1E00000];
define region IRAM1 = mem:[from 0x20000000 size 0x30000];
define region IRAM2 = mem:[from 0x10000000 size 0x10000];
define region RAM_region = RAM1 | IRAM1 | IRAM2;
place in RAM_region { readwrite, block CSTACK, block HEAP };
复制代码
我估计你看了上面的define之后,就心里有数了;根本不用原模原样抄我的例子。
此外,在SystemInit中初始化SDRAM控制器的代码还是需要的,这些做法和Keil一致。
加载中...
eliterxzgxu
4楼-- · 2020-01-11 08:24
精彩回答 2 元偷偷看……
加载中...
chengsong
5楼-- · 2020-01-11 12:46
好贴,谢谢楼主
加载中...
fengxin32
6楼-- · 2020-01-11 16:25
MDK改SCT文件就可以了
加载中...
首页
上一页
9
10
11
12
13
14
15
16
下一页
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
STM32开发板免费用活动
7 个回答
stm32 处理 DHT11占用太多时间,大家程序是怎么设计的
8 个回答
分享一个STM32单片机做的离线编程器代码
9 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
IAR中也是很简单的,这些属于工具链的知识;现在的开发人员都很浮躁,他们不愿意深入理解自己所使用的工具,都是一知半解就行了。
拿楼主的内存布局做为例子(这样更利于对比),IAR下您只需在ICF文件中加入下面这些定义就可以了:
- define region RAM1 = mem:[from 0xC0000000 size 0x1E00000];
- define region IRAM1 = mem:[from 0x20000000 size 0x30000];
- define region IRAM2 = mem:[from 0x10000000 size 0x10000];
- define region RAM_region = RAM1 | IRAM1 | IRAM2;
- place in RAM_region { readwrite, block CSTACK, block HEAP };
复制代码我估计你看了上面的define之后,就心里有数了;根本不用原模原样抄我的例子。
此外,在SystemInit中初始化SDRAM控制器的代码还是需要的,这些做法和Keil一致。
一周热门 更多>