STM32H7 SDRAM Test

2019-07-20 07:09发布

我写了一个Write/Read/Compare的SDRAM测试程序, 搭配原子STM32H7的板子, 发现似乎很容易失败, 但是只要把SDRAM降频之后似乎就比较正常了, 关cache没有效,不知道是哪里有问题? 感觉H7的SDRAM好像有点不稳定, 同样的程序在F429和F767上面用, 并没有这样的状况.
是否有人可以解答问题在哪?
附件是我以MCU LCD为基础的测试工程.





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
qiousanxi
2019-07-20 12:35
100M直接用的HCLK的200M分频的100M  是没问题的  我目前使用SDRAM的PLL2 分频108M做emwin  的显示地址,用内部SRAM做emwin的配置,目前没问题测试了一天,跑demo  没有卡过。
#if USE_EXRAM         //使用外部RAM
#define GUI_NUMBYTES  (3*1024*1024)
#else
#define GUI_NUMBYTES  (200*1024)
__align(4) U32 aMemory[GUI_NUMBYTES / 4];
#endif

#define GUI_BLOCKSIZE 0x80  //块大小

//GUI_X_Config
//初始化的时候调用,用来设置emwin所使用的内存
void GUI_X_Config(void) {
       
#if USE_EXRAM         //使用外部RAM
                U32 *aMemory = mymalloc(SRAMEX,GUI_NUMBYTES); //从外部SRAM中分配GUI_NUMBYTES字节的内存
        GUI_ALLOC_AssignMemory((void*)aMemory, GUI_NUMBYTES); //为存储管理系统分配一个存储块
                GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE); //设置存储快的平均尺寸,该区越大,可用的存储快数量越少
                GUI_SetDefaultFont(GUI_FONT_6X8); //设置默认字体
#else
                GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES); //为存储管理系统分配一个存储块
#endif

但是用SDRAM  108M 中间会卡死进入过half, 100M是没问题的,所以建议不要超过100M ST的硬件是硬伤,我看*火的1052新的核心板SDRAM 超频到216了,就算16位也能比H7了

一周热门 更多>