2019-07-30 12:03 AM
2019-07-30 01:07 AM
You can always connect the memories to any GPIO pins; then set the pins connected to address bus, set appropriate direction of the data lines, and then exercise the control lines appropriately to the given operation, all of this "manually" in the program,
JW
2019-07-30 01:19 AM
The way you frame the question implies that everyone needs access to external SRAM and/or FLASH.
Many applications do not need such access but would benefit from a smaller package for their microcontroller*. So engineers designing circuits opt for a smaller part with fewer pins and, of necessity, no spare pins for FMC / FSMC.
Sometimes people stick RAM / EEPROM and/or FLASH onto SPI or QSPI ports, which use many fewer pins than FSMC / FMC. It is a trade-off, because serial ports need more cycles to transfer data. And I don't think the CPU can execute from memory interfaced over SPI (I think it can with QSPI but I've never tried it).
Hope this helps,
Danish
* I think one fundamental distinction between a microprocessor and a microcontroller is that the microcontroller has on-board RAM and ROM so it often doesn't need any external memory