PIC32MX 장치 용 플래시 프로그래밍 및 EEPROM 에뮬레이션 유틸리티 라이브러리. 지금 까지이 라이브러리는 데이터 시트 D60001290의 PIC32MX1XX/2XX/5XX 64/100PIN 장치 만 지원합니다.
이 라이브러리는 xc32-gcc 컴파일러 체인이 설치되어 있다고 가정합니다. 그렇지 않은 경우 여기에서 찾을 수 있습니다.
eeprom_read_word 활성화 된 경우 에뮬레이션 된 eeprom에서 단어를 읽습니다eeprom_write_word 활성화 된 경우 에뮬레이션 된 eeprom에 단어를 씁니다flash_write_word 플래시 메모리를 프로그램하기 위해 단어를 씁니다flash_program_page_offset 알고리즘을 읽고/수정/쓰기 페이지 크기로 오프셋되는 페이지를 작성하십시오. 이 기능은 단일 페이지 만 작성합니다. 제공된 데이터가 페이지보다 크면 추가 데이터가 작성되지 않습니다.flash_program_page 알고리즘을 읽고/수정/쓰기 플래시 메모리를 프로그램하기위한 페이지를 작성합니다. 제공된 주소가 페이지 정렬되지 않은 경우 FLASH_NOT_ALIGNED 반환합니다flash_write_page 플래시 메모리를 프로그래밍하기 위해 페이지를 씁니다. 참고, 이것은 이전에 페이지에있는 모든 것을 지우게됩니다.flash_write_row 플래시 메모리를 프로그램하기 위해 행을 씁니다flash_erase_page 프로그램 플래시 메모리 페이지를 지 웁니다flash_erase_all_program_memory 에뮬레이션 된 EEPROM 섹터를 포함한 모든 프로그램 플래시 메모리를 지 웁니다. 주의해서 사용하십시오. 이 기능은 기본적으로 활성화되어 있지만 DISABLE_ERASE_ALL_PROGRAM_MEM cmake 변수로 사고를 피하기 위해 비활성화 할 수 있습니다. 폴더를 서브 디렉토리로 추가하십시오. 컴파일러를 xc32-gcc 컴파일러로 설정하는 것을 잊지 마십시오.
add_subdirectory(path/to/flashlib)
...
target_link_libraries(target flashlib)
이제 flashlib.h 파일을 포함시키고 그 안에 정의 된 함수를 사용할 수 있습니다.
컴파일 타임에 EEPROM 에뮬레이션에 전념 할 플래시 섹션을 지정할 수 있습니다. 다음 CMAKE 변수를 사용할 수 있습니다.
-DENABLE_EEPROM_EMU # Enabling compilation of eeprom emulation
-DEEPROM_SECTOR_START=<ksegaddr> # Determines start address for eeprom dedicated flash memory
-DEEPROM_SECTOR_END=<ksegaddr> # Determines end address for eeprom dedicated flash memory
EEPROM 에뮬레이션을 사용하려면 시작 및 최종 부문 변수가 필요합니다. ENABLE_EEPROM_EMU 정의되지 않으면 시작 및 종료 섹터를 정의 할 필요가 없습니다. 모든 플래시 주소는 커널 공간 (KSEG0/1)에 있어야합니다. 아래는 예제 사용입니다.
cmake -DENABLE_EEPROM_EMU=1 -DEEPROM_SECTOR_START=0x9D070000 -DEEPROM_SECTOR_END=0x9D07FFFF ..
MCU가 Double Word 프로그래밍을 지원하는 경우 (모두 수행되지는 않습니다) ENABLE_DOUBLEWORD_PROGRAMMING CMAKE 플래그 변수를 사용하여이를 지원할 수 있습니다.
라이브러리가 해당 세그먼트 내의 주소에 쓰기를 거부 할 수 있도록 플래시 세그먼트를 보호 할 수 있습니다. 이 cmake 변수를 사용하여 보호 된 세그먼트를 결정하십시오.
-DPROTECTED_FLASH_SECTOR_FROM=<ksegaddr> # Determines start address for flash protection
-DPROTECTED_FLASH_SECTOR_TO=<ksegaddr> # Determines end address for flash protection
제출하려는 추가 사항이 있으면 풀 요청 또는 문제를 자유롭게 열어주십시오. 적절한 파일의 저자 목록에 자신을 추가하십시오.
Cmake는 제공된 컴파일러 I가 "유효한"지 확인하려고하지만 xc32-gcc 표준 -rdynamic 플래그를 지원하지 않습니다. 이 점검은 -DCMAKE_C_COMPILER_WORKS=1 플래그에 cmake를 제공하여 회피 할 수 있습니다.