2010-08-10 1 views
7

STM32F103에서 플래시 페이지를 지우는 데 20ms가 걸리며 그 동안 코어가 멈 춥니 다. ST PM00042 플래시 프로그래밍 매뉴얼에서 코어가 일 때이 항상 멈추는 지 또는 명령 스트림 자체가 플래시 메모리 (내 프로젝트에서)와 FPEC (플래시 메모리 인터페이스)에 있기 때문에 그냥 멈추는 지 여부는 분명하지 않다.)이 (가) 사용 중이며 더 많은 지시를 가져올 수 없습니다.FPEC가 사용 중이며 플래시에서 더 이상 명령을 가져올 수 없기 때문에 플래시 페이지를 지우는 동안 Cortex-M3 STM32F103 코어가 작동하지 않습니까?

이 질문을하는 또 다른 방법은 "RAM에서 플래시 프로그래밍 코드를 실행하여 플래시 페이지 지우기를 피할 수 있습니까?"입니다.

덕분에,

답변

6

나는 플래시 프로그래밍 동안, 플래시에 대한 액세스 시도가 CPU를 멈출 것이라고 믿는다.

그렇다면 프로그램 작업 중에 중요한 코드 (인터럽트 핸들러, 워치 독 키커 등)에 RAM이 부족할 수 있습니다. 마지막으로 STM32를 사용했을 때 (아마 ~ 2 년 전) 내가 한 일이었습니다.

그래서 당신의 게시물의 끝 부분에있는 질문에 대답하기 위해, 명확합니다 : "는 RAM에서 내 플래시 프로그래밍 코드를 실행하는 것입니다

이 질문을하는 또 다른 방법입니다 플래시 페이지를 피하기 지우기 마구간? "

저는 대답이 "아니오"라고 생각합니다. 플래시 프로그래밍 드라이버가 어디에 있든 중요한 것은 지우기/프로그램 작업이 진행되는 동안 코드가 수행하는 것입니다.입니다. CPU가 작업 중에 플래시에 액세스하려고 시도하거나 프로그램에 대한 지침을 읽거나 상수 테이블을 읽는 경우조차도 멈출 것입니다.

사실 이것이 NXP 플래시가 ARM uC에서 작동하는 방법이라는 것을 알고 있지만 STM32에 대해서도 & 절을 인용하고 싶습니다. 웬일인지 플래시 프로그래밍 설명서는 현재 사용할 수없는 것 같지만 유사한 문서 (PM0068, 나는 믿습니다)에서 다음 언어를 발견했습니다 :

진행중인 플래시 메모리 작업으로 인해 CPU가 오래 블록킹되지 않습니다. CPU가 플래시 메모리에 액세스하지 않기 때문입니다.

및 [플래시] 읽기/쓰기 동작은 프로그래밍 동안 시작되면

(BSY 설정 비트), 지속적인 메인 플래시 메모리 프로그래밍 될 때까지 CPU 노점 이상이다.

+0

감사합니다. 내가 지금하고있는 일은 문제가되는 코드를 RAM에로드하여이 문제를 해결하려고하는 것입니다. 내가 어떻게 운임을 알려주지. PM00042가 당신이 인용 한 PM만큼이나 분명했으면 좋겠습니다. –

+0

PM00042가 사라졌습니다. PM0056 또는 PM0063을 찾으십시오. ST 웹 사이트에서 STM32 섹션을 찾아 "프로그래밍 매뉴얼"설명서를 찾아 볼 수도 있습니다. –

관련 문제