크게 두가지 문제가 있었습니다. 플래시 쓰기나 삭제 시퀀스 중에 인터럽트 루틴으로 인해 다른 플래시 접근 시퀀스가 끼어들어 해당 시퀀스가 깨지는 일이 있을 수 있고요.. 이 경우 당연히 작동하지 않겠죠. 두번째로는 OS 사용시 FLASH 접근 시퀀스중 (특히 파일 시스템 접근 중에) TASK SWITCHING을 허용함은 시스템의 예외 상황(시스템 종료등의)을 허용하는 것이 되기 때문에 문제가 될 수 있습니다.
플래시 중. 쓰기와 읽기가 동시에 가능한 제품도 있긴있다고 들었습니다. (삭제 명령 후 삭제가 진행중인 상태에서 다른 섹터에서 작업을 할 수 있는 등의)
플래시나 파일 시스템 관련은 추후 심각한 상황(소송 같은?)이 올 수 있으므로 스펙을 준수하는게 좋습니다.
개발에서 제일 힘든것이 평소때 잘 동작하는게 문제가 아니라,
가끔가다 특정상황에서 오동작을 하는게 문제입니다.
ISR이 발생하면 현재 context(현재 cpu가 하고 있는일)를 멈춰버리고
다른 짓을 해 버리기 때문에, 어떤 동작이 발생할지는 잘 모르는 문제지요.
일단 시키는대로 해주는게 좋습니다만, 꼭 해야한다고 한다면...
꽤 오랜기간 테스트를 해보시기 바랍니다.
뭐, erase니깐.....erase 안될 경우에는 write 안되니...또 지우고
쓰면 되겠습니다만...ㅎㅎ