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

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

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

2,179件の閲覧回数
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

ラベル(1)
0 件の賞賛
返信
3 返答(返信)

959件の閲覧回数
TheSix
Contributor I

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

0 件の賞賛
返信

1,774件の閲覧回数
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 件の賞賛
返信

1,097件の閲覧回数
ccc_clive
Contributor III

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

0 件の賞賛
返信