同志们好!!
俺来提个虚拟内存的问题,看有没有大神知道。
想必很多人知道,IAR FOR STM8 可以使用 __eeprom关键字来声明变量,使变量存放于eeprom之中, 当程序操作变量时,会自动调用相应的eeprom读写函数,实现“透明传输”
这在我的意识里面,是一种虚拟内存。
而今天我有一个想法。在没有FSMC接口的前提条件下,将某些外部存储器,比如PSRAM,或者SPI FLASH,连接到STM32的IO上, 那么对PSRAM的操作只能用IO模拟时序, 对SPI FLASH的操作只能通过SPI接口。 我想把他们变成虚拟内存, 直接对变量进行存取, 在C代码里隐藏IO调用。 请问大大们可有方法??
曾经幻想过 HardFault或MemManage这类中断或许可以实现,但很难找到当前出错的地址和寄存器,而且频繁中断的效率又低, 故又幻想编译器本身有没有这类功能?? |