Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Поясните пожалуйста несколько моментов по примеру из boot.h
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Radi0
Добрый день уважаемые форумчане. Поясните пожалуйста несколько моментов по примеру из boot.h


Код
void boot_program_page (uint32_t page, uint8_t *buf)                                    
{
    uint16_t i;
    uint8_t sreg;
    sreg = SREG;
    asm("cli");                                                                                                // Disable interrupts.    
    
    eeprom_busy_wait();
    boot_page_erase(page);
    boot_spm_busy_wait();                                                                                    // Wait until the memory is erased.
    for (i=0; i<SPM_PAGESIZE; i+=2)
    {
        // Set up little-endian word.
        uint16_t w = *buf++;
        w += (*buf++) << 8;
        boot_page_fill_safe(page + i, w);
        //boot_page_fill (page + i, w);
    }
    boot_page_write(page);                                                                                    // Store buffer in flash page.
    boot_spm_busy_wait();                                                                                    // Wait until the memory is written.
    // Reenable RWW-section again. We need this if we want to jump back
    // to the application after bootloading.
    //boot_rww_enable ();
    // Re-enable interrupts (if they were ever enabled).
    boot_rww_enable();
    SREG = sreg;
    boot_spm_interrupt_enable();
    
    //asm("sei");                                                                                            // Enable interrupts
}


1. Что будет если не использовать макрос boot_page_erase(page); ?
2. Возможно ли исправить только несколько слов в странице? Используя boot_page_fill() с конкретными адресами а потом запуская boot_page_write(page);?

Контроллер Atmega 128

Заранее благодарю.
pavel-pervomaysk
Попробуйте прочитать даташит, там изложено довольно хорошо.
От себя рекомендую читать блок, исправлять, стирать, записывать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.