关于从外部QSPI FLASH 启动后,切换qspiFlash模式问题

  在使用外部flash的过程中遇到一个问题i,各位大佬指教一下,谢谢
  boot选择 外部flash作为 0x00000000 地址,启动后发现 外部flash默认使用的 普通spi模式,32分频,运行速度超级慢,所以想要将外部flash配置成比较快的模式,即使用QSPI 模式,配置成2分频,预计可以快64倍,
   在代码里面的初始化中,配置flash为 qspi、二分频模式 时,会发现 程序重启,只要到了 配置qspi寄存器的那一步,程序就会重新mian进来运行一遍,无限重启
  我自己是 猜测, 因为现在程序是在flash中运行,但是又要配置flash’寄存器,所以就会导致程序挂掉,
  我自己的尝试方法 是 将flash配置的程序 放到ram中运行 ,使用 __attribute( ( section (.data) ) )的方式进行声明,但是声明后发现程序依旧会在原来flash初始化模式的时候,挂掉,重启
  请问 ,还有什么尝试思路吗? 谢谢

将代码放到QSPI的Flash中运行:

  1. 需要确定芯片支持这个功能,就像ST处理器的memorymap功能,将外挂flash映射为代码运行flash;
  2. 需要确定映射地址,在跳转的时候要将向量表地址映射过去;
  3. 嫌弃速度慢,就在上电后第一时间复制到内部ram里面去,如果空间足够的话;
  4. 百度stm32使用qspi外挂flash运行代码的例子,应该还是不少,多参考;