Part Number:AM3352
代码:参考starewere中的bootlodar,
rom_code从nand_falsh中读取boot程序(类似spl阶段),然后boot程序再从nand_flash中读取用户代码(类似u-boot阶段),用户代码目前大小2M,但是读取时间大概用了10S,这个速度明显的慢了,这个有什么地方可以调整加快速度么?或者说为什么会这么慢。
Nancy Wang:
试一下通过EDMA来传输数据以提高读写速度。
,
MENGDONG FENG:
我尝试更改为DMA模式,目前还没有运行起来,目前,打开DMA,会产生DMA中断,然后进入了0x20094.
,
MENGDONG FENG:
我目前使用的代码(starewar中的bootlodar)是可以加载的,但是没有使用EDMA,我就是把初始化函数 void BlPlatformNANDInfoInit(NandInfo_t *nandInfo)中的 nandInfo->opMode 从CPU换成了DMA,初始化了DMA Info,从程序执行看是可以正常运行下来的,但是现在一打开,就会进入0x20094(看寄存器显示的触发中断的编号是传输完成),然后我将中断关闭,这段代码中标志传输完成的变量(用户变量,不是底层寄存器)是在EDMA的完成中断中赋值的,所以程序跑不下去,但是问题在于就算没开中断,导致程序认为没有完成,但是存放数据的区域应该有数据传回来才对,但是目前也没有看到数据传回来,所以目前也是很奇怪。 正如您回复的,我这边打开DMTIMER中断目前也会进入0x20094,这个也是很奇怪。