Перейти к содержанию
    

Поясните пожалуйста несколько моментов по примеру из boot.h

Добрый день уважаемые форумчане. Поясните пожалуйста несколько моментов по примеру из 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

 

Заранее благодарю.

Изменено пользователем Radi0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте прочитать даташит, там изложено довольно хорошо.

От себя рекомендую читать блок, исправлять, стирать, записывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...