2017-12-11 33 views
0

Arduino Due Board (ATSAM3X)를 통해 프로젝트를 개발 중이며 Atmel Studio7과 ASF를 사용 중입니다. 플래시 메모리 블록/영역을 읽는 방법, CRC32 또는 간단한 체크섬 메모리를 계산하는 방법을 알고 싶습니다. 데이터 시트가 매우 혼란 스럽습니다. EEFC 모듈은 플래시에서 작성하는 방법이나 "고유 식별자"를 읽는 방법을 설명하지만 주소 플래시 범위를 읽는 방법이 아닙니다.플래시 메모리 데이터 읽기, ATSAM3

누군가가 내가 읽을 수있는 예제 코드 또는 문서를 가지고 있다면 감사 할 것입니다.

모두에게 최고의 감사의 인사. 마르코

+0

당신은 고정 주소 공간을 가지고있는 당신이 실행중인 플래시 메모리를 의미합니까? 당신은 단지 그것을 지적하고 그것을 읽을 수 있습니까? –

+0

질문에 올바르게 대답했는지 모르겠다 고 사과하겠습니다.하지만 ATSAM3X의 플래시 메모리 범위는 0x80000h에서 플래시 코드 끝까지입니다. 체크섬을 계산하기 위해 실행 시간에이 주소 범위의 데이터를 '읽기'만하고 싶습니다. – mabroglia

+0

그러면 그냥 읽으십시오. 부호없는 char * x; x = (부호없는 char *) 0x80000; 그리고 그것을 사용하십시오. (필요하다면 휘발성 물질을 혼합하십시오.) –

답변

0

당신은 char *ptr = <start address of the required memory block>;

다음은 PTR에서 읽기 시작 사용할 수 있습니다.

체크섬을 계산할 것입니다. 실행중인 프로그램의 체크섬 계산시 프로그램이 실행될 때 데이터 섹션 (변수 할당이 포함 된 섹션)이 변경된다는 단점이 있습니다. 프로그램 전체에서 일정하게 유지되는 텍스트 섹션텍스트 부분의 체크섬 만 계산하십시오. 자세한 내용은 코드 섹션을 참조하십시오.