Perpustakaan pemrograman flash dan eeprom emulation utility untuk perangkat PIC32MX. Sejauh ini perpustakaan ini hanya mendukung perangkat PIC32MX1XX/2XX/5XX 64/100Pin dari DataSheet D60001290.
Perpustakaan ini mengasumsikan Anda menginstal rantai kompiler xc32-gcc . Jika belum, Anda dapat menemukannya di sini.
eeprom_read_word membaca sebuah kata dari EEPROM yang ditiru, jika diaktifkaneeprom_write_word menulis sebuah kata untuk ditiru eeprom, jika diaktifkanflash_write_word menulis kata untuk memprogram memori flashflash_program_page_offset membaca/memodifikasi/menulis algoritma untuk menulis halaman yang diimbangi dengan ukuran halaman. Catatan, fungsi ini hanya akan menulis satu halaman. Jika data yang disediakan lebih besar dari halaman, data tambahan tidak akan ditulis.flash_program_page algoritma baca/modifikasi/tulis untuk menulis halaman untuk memprogram memori flash. Akan mengembalikan FLASH_NOT_ALIGNED jika alamat yang disediakan tidak selaras halamanflash_write_page menulis halaman untuk memprogram memori flash. Catatan, ini akan menghapus apa pun di halaman sebelumnya.flash_write_row menulis baris untuk memprogram memori flashflash_erase_page menghapus halaman program flash programflash_erase_all_program_memory menghapus semua memori flash program - termasuk sektor EEPROM yang ditiru. Gunakan dengan hati -hati. Catatan, fungsi ini diaktifkan secara default tetapi dapat dinonaktifkan untuk menghindari kecelakaan dengan variabel cmake DISABLE_ERASE_ALL_PROGRAM_MEM Cukup tambahkan folder sebagai subdirektori. Jangan lupa untuk mengatur kompiler ke kompiler xc32-gcc .
add_subdirectory(path/to/flashlib)
...
target_link_libraries(target flashlib)
Anda sekarang dapat memasukkan file flashlib.h dan menggunakan fungsi yang ditentukan di dalamnya.
Anda dapat menentukan pada saat kompilasi bagian flash apa yang ingin Anda dedikasikan untuk emulasi eeprom. Variabel cmake berikut tersedia:
-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
Variabel sektor awal dan akhir diperlukan jika Anda ingin menggunakan emulasi EEPROM. Jika ENABLE_EEPROM_EMU tidak didefinisikan, tidak perlu mendefinisikan sektor awal dan akhir. Perhatikan bahwa semua alamat flash harus di ruang kernel (KSEG0/1). Di bawah ini adalah contoh penggunaan:
cmake -DENABLE_EEPROM_EMU=1 -DEEPROM_SECTOR_START=0x9D070000 -DEEPROM_SECTOR_END=0x9D07FFFF ..
Jika MCU Anda mendukung pemrograman kata ganda (tidak semua), Anda dapat mengkompilasi dengan dukungan untuk itu dengan variabel flag CMAKE ENABLE_DOUBLEWORD_PROGRAMMING .
Anda dapat melindungi segmen flash, sehingga perpustakaan akan menolak untuk menulis ke alamat dalam segmen itu. Gunakan variabel cmake ini untuk menentukan segmen yang Anda lindungi:
-DPROTECTED_FLASH_SECTOR_FROM=<ksegaddr> # Determines start address for flash protection
-DPROTECTED_FLASH_SECTOR_TO=<ksegaddr> # Determines end address for flash protection
Jika Anda memiliki tambahan yang ingin Anda kirim, jangan ragu untuk membuka permintaan atau masalah tarik. Pastikan untuk menambahkan diri Anda dalam daftar penulis di file yang sesuai.
CMake mencoba memeriksa apakah kompiler I yang disediakan "valid", tetapi xc32-gcc tidak mendukung bendera standar -rdynamic . Pemeriksaan ini dapat dihindari dengan memberikan CMake dengan -DCMAKE_C_COMPILER_WORKS=1 flag.