OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3301|回复: 3

SDRM使用问题。sct文件使用,RW加载问题

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2023-5-16
在线时间
3 小时
发表于 2023-5-16 16:28:44 | 显示全部楼层 |阅读模式
1金钱
用的是阿波罗stm43f429。关于SDRM例程有如下疑问。

问题1:我看官方的demo是:将sdram的初始化放在main()函数里的。我的疑问是,在main()函数之前不是要将RW数据搬运到sdram里吗?在main()函数之前sdram还没有初始化,为什么官方的demo没有死机还可以正常运行呢?

问题2:我自己随便定义了一个变量u16 testsdram __attribute__((at(0XC0000000))) = 8;我debug调试为什么程序开始跑的时候testsdram的值不是8还是0呢。和RW搬运sdram有关系吗?

问题3:以下是开发指南的内容
注意该数组的定义方法,是我们推荐的使用外部 SDRAM 的方法。如果想用 MDK 自动分配,那么需要用
到分散加载还需要添加汇编的 FMC 初始化代码,相对来说比较麻烦。
我理解一定要用汇编吗,把sdram初始化函数放在main函数之前调用可以吗?


问题4:
u16 testsram1 __attribute__((section (".TESTVAR"))) = 8;我用这种方式,然后在sct文件里写好,为什么程序一跑起来就死机了,死机sctload里面。


问题5:我就是需要定义初始化的全部变量到sdram使用,而且要使用sct,我应该怎么做。或者at和section有什么区别?


关于这些内容能够官方梳理一下,这块研究很很久一直弄不明白。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2023-5-19 00:17:03 | 显示全部楼层
1,如果一定要用到SDRAM数据才能正常运行,那肯定是在进入main函数之前就初始化了SDRAM&FMC,去hard reset handler里面看看。
不过还有一个可能,就是启动的时候用不到SDRAM里面的数据,所以无所谓。
2, 你后续写数据,正常么?
3,不用汇编,可以C初始化SDRAM。 当然是可以放main函数前面初始化的。
4,5,这两个得你好好去看看分散加载的东西了。结合我们的文档,多百度吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

3

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2023-5-16
在线时间
3 小时
 楼主| 发表于 2023-5-31 23:33:04 来自手机 | 显示全部楼层
1.如果将初始化的全局变量放到sdram,那么肯定要在搬运rw之前就初始化sdram。不明白你说的如果启动用不到就无所谓。启动用不到是指全局变量都没有初始化?所以不需要搬运?。
回复

使用道具 举报

70

主题

6756

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12983
金钱
12983
注册时间
2012-11-26
在线时间
3787 小时
发表于 2023-6-1 10:36:07 | 显示全部楼层
a7670 发表于 2023-5-31 23:33
1.如果将初始化的全局变量放到sdram,那么肯定要在搬运rw之前就初始化sdram。不明白你说的如果启动用不到就 ...

意思你在未初始化前,还没开始操作SDRAM地址范围内的数据
学无止境
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 11:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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