Jump to content

    

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

 

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

Edited by Radi0

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this