Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программирование фьюзов
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Aprox
Прошу совета у гуру. Я работаю с IAR 6.0 и веду отладку изделия на STR91xxx через J-Link. Загружаю программу во флэш через опцию FlashLoader и все хорошо получается. Теперь встала задача поуправлять фьюзами кристалла, битами секретности и LVD детектором. Не могу найти данных опций в настройке загрузчика! Может не там ищу? Помогите, кто знает.
Aprox
По дружному молчанию я понял, что в системе IAR c J-Link нет возможности программировать фьюзы микроконтроллеров. Только загрузка флэшь для отладки. Ну что-ж, буду искать другие средства.
Сергей Борщ
Почитайте описание c-spy и его .mac файлов. Можно в таком файле написать макрос установки/чтения фузов. Вот что-то писаное левой ногой для SAM7:

CODE
SetGPNVM(bit)
{
    __var tmp;
    __message " -------- GPNVM bit ", bit, " programming ---------- ";
    tmp = __readMemory32(0xFFFFFF68, "Memory");                     // MC_FSR
    if(!(tmp & ( 1 << (8 + bit) )))                                 // if GPNVMx not set
    {
        __writeMemory32( 0
            | ((4032000 * 36 / 3 / 1000000) << 16)                  // MCK cycles in 1 us
            | (1 << 8)                                              // 1 FWS
            | (1 << 7)                                              // no erase before prog
                   ,0xFFFFFF60, "Memory");                          // MC_FMR

        __writeMemory32( 0
            | (0x5A << 24)                                          // key
            | (bit << 8)                                            // bit number
            | 0x0000000B                                            // SET GPNVM command
                   ,0xFFFFFF64, "Memory");                          // MC_FCR

        do
        {
            tmp = __readMemory32(0xFFFFFF68, "Memory");
        }
        while (! (tmp & (1 << 0)) );   // wait untli FRDY

        if(tmp & (3 << 2))
            __message " !!!!!!! GPNVM bit ", bit, " programming error !!!!!!!!!";
        else
            __message " GPNVM bit ", bit, " programmed ";
    }
    else
    {
        __message " GPNVM bit ", bit, " alredy set ";
    }
}

SetSecurity()
{
    __var tmp;
    __writeMemory32( 0
        | ((4032000 * 36 / 3 / 1000000) << 16)                  // MCK cycles in 1 us
        | (1 << 8)                                              // 1 FWS
        | (1 << 7)                                              // no erase before prog
               ,0xFFFFFF60, "Memory");                          // MC_FMR

    __writeMemory32( 0
        | (0x5A << 24)                                          // key
        | 0x0000000F                                            // SET Security command
               ,0xFFFFFF64, "Memory");                          // MC_FCR

    do
    {
        tmp = __readMemory32(0xFFFFFF68, "Memory");
    }
    while (! (tmp & (1 << 0)) );   // wait untli FRDY
    if(tmp & (1<<4))
        __message "Security bit set ok";
    __message "Security bit set failed: ", tmp:%x;
}
Aprox
Цитата(Сергей Борщ @ Aug 24 2011, 15:14) *
Почитайте описание c-spy и его .mac файлов. Можно в таком файле написать макрос установки/чтения фузов.
Спасибо, буду копать в том направлении.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.