这个例程很简单,就是配置好SDRAM,然后直接用指针访问,写数,读数,判断OK就常亮LED。 但最让我迷惑的是,找遍程序都没看到FMC的GPIO的初始化部分,唯一有个C文件有它的初始化,但函数却从没被调用过(把函数名改一下再编译没报错,证明没被调用),这也太诡异了吧??
在HAL库F7驱动文件BSP里能找到。。。
首先,你说的这个文件并没有被包含到工程里,其次,我把这个文件的函数改了一下名字(文件是只读的,要取消只读属性),然后重新编译(build all),工程依旧没有报任何错误。
其实包含到这个SDRAM工程里也就那么几个C文件,没有被包含的理论上跟这个工程师没有关系的吧。所以我再工程左边目录里浏览了所有的C文件,的确找不到任何初始化GPIO的函数。
这是例程SRAM的工程,这里的C文件我都找过了,有一个system_stm32f7xx.c文件里有IO初始化,但函数没被调用过(事实上这个函数要定义一个DATA_IN_ExtSDRAM宏,用于在main前调用,这是另一个程序用上的代码)。
在这个例程中,SDRAM只是初始化了SDRAM的寄存器,我甚至连总线,GPIO使能(LED除外)的代码都没找到。。。main之前调用的SystemInit函数也没有,为什么,我无法理解!!!
这个其实是官方历程,的确没有你说的msp文件。但问题是这个例程运行时正确的,正确的!!这才是困扰我的地方!