通过配置分散加载文件,将RT1052代码存储在Nor_Flash,运行在 SDRAM;程序运行异常

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

通过配置分散加载文件,将RT1052代码存储在Nor_Flash,运行在 SDRAM;程序运行异常

2,963 Views
13079364030
Contributor I

问题:通过配置分散加载文件,将RT1052代码存储在Nor_Flash,运行在 SDRAM;程序执行eMMC的初始化时会卡死,请问这是为什么?同样的代码存储在Nor_Flash,XIP运行,没有任何问题。

详细描述:

以下是运行在 SDRAM时的分散加载文件

SDRAM_1.bmp

SDRAM_2.bmp

SDRAM_3.bmp

还有一个现象是:将以上分散加载文件中的.ANY (+ZI)和.ANY(+RW)的execute region设置到0x20000000,程序就运行正常了;

还有一个现象是:将eMMC的初始化函数从main函数移到FreeRTOS的线程里,初始化能成功,但程序又会死在其它地方;

MCU:MIMXRT1052CVL5B

编译工具:Keil

Labels (1)
0 Kudos
Reply
3 Replies

1,743 Views
TheSix
Contributor I

兄弟四年了解决这个问题了吗?

0 Kudos
Reply

2,558 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi,

You put all data in SDRAM. This may cause cache problem. Because if the data is cached, DMA will make the data conflict. First please try to disable the cache. If it works, you should put these DMA related data into none cache area like DTC.

Regards,

Jing

0 Kudos
Reply

1,881 Views
ccc_clive
Contributor III

可以把你实现的过程具体说下吗?我也想把code搬运到sdram运行,没找到参考的例子

0 Kudos
Reply