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

Как ресетнуть BlackFin

Как из программы ресетнуть Blackfin 532 так, чтобы запустился загрузчик и грузил прогу в соответствии с пинамми BMODE. Простой софтовый сброс не дает результата - загрузка не начинается.

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


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

Только не смейтесь ;)

 

Подключить какой-то флаг к пину ресет процессора с подтяжкой к 1. Флаги по умолчанию в третьем состоянии, т.е. можно считать в 1

Програмируем флаг на выход и прописываем туда 0. Процессор в экстазе, идет на перезагрузку и флаг сам молча становится по дефолту на ввод, т.е. ресет в 1, что и требовалось. Должно работать программным ресетом аналогичным аппаратному

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


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

Только не смейтесь ;)

 

Подключить какой-то флаг к пину ресет процессора с подтяжкой к 1. Флаги по умолчанию в третьем состоянии, т.е. можно считать в 1

Програмируем флаг на выход и прописываем туда 0. Процессор в экстазе, идет на перезагрузку и флаг сам молча становится по дефолту на ввод. Должно работать программным ресетом аналогичным аппаратному

Так не получится - плата изготовлена и менять ничего не хочется.

Пробовал поступить как советуют в даташите

    "P0.L = LO( 0xFFC00100 );" /* SWRST register address */ 
    "P0.H = HI( 0xFFC00100 );" 
    "R0.L = 0x0007;" 
    "W[P0] = R0;" 
    "SSYNC;" 
    /* Clear system soft reset */ 
    "R0.L = 0x0000;" 
    "W[P0] = R0;" 
    "SSYNC;" 
    /* Core reset - forces reboot */ 
    "RAISE 1;"

Не помогло - загрузка не начинается.

 

Пробовал перейти по адресу бутлодера

    bootFuncPtr = (void (*)(void))0xEF000000;
    bootFuncPtr();

 

Появляется активность на SPI, но все затыкается после определения встроенным бутлодером таипа(разрядности) флешки.

Куда копать пока не знаю...

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


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

Все, вопрос снимается. Все решено.

 

 

section("program") static void res_HW(void * ptr)
{
    cli(); // Clear all interrupts 
    csync();
    ssync();

    asm( 
    /* Issue system soft reset */ 
    "P0.L = LO( 0xFFC00100 );" /* SWRST register address */ 
    "P0.H = HI( 0xFFC00100 );" 
    "R0.L = 0x0007;" 
    "W[P0] = R0;" 
    "SSYNC;" 
    "SSYNC;"
    /* Clear system soft reset */ 
    "R0.L = 0x0000;" 
    "W[P0] = R0;" 
    "SSYNC;" 
    
    "P0.L = lo( 0xFFC00000 );" 
    "P0.H = hi( 0xFFC00000 );" // PLL Control Register 
    "R0 = 0x1400( Z );" // Restore default power-on state 
    "W[P0] = R0;" 
    "SSYNC;" 
    
    "P0.L = lo( 0xFFC00004 );" 
    "P0.H = hi( 0xFFC00004 );" // PLL DIV Control Register 
    "R0 = 0x0005( Z );" // Restore default power-on state 
    "W[P0] = R0;" 
    "SSYNC;" 
    
    "P0.L = lo( 0xFFC00A18 );" 
    "P0.H = hi( 0xFFC00A18 );" // EBIU, SDRAM Refresh Rate Control Register 
    "R0 = 0x081A(Z);" // Restore default power-on state 
    "W[P0] = R0;" 
    "SSYNC;" 
    
    "P0.L = lo( 0xFFC00A14 );" 
    "P0.H = hi( 0xFFC00A14 );" //EBIU, SDRAM Memory Bank Control Register 
    "R0 = 0x0000(z);" // Restore default power-on state 
    "W[P0] = R0;" 
    "SSYNC;" 
    
    "P0.L = lo( 0xFFC00A10 );" 
    "P0.H = hi( 0xFFC00A10 );" //EBIU, SDRAM Memory Global Control Register 
    "R0.L = 0x8849;" // Restore default power-on state 
    "R0.H = 0xE008;" 
    "[P0] = R0;" 
    "SSYNC;" 
    
    "RAISE 1;" 
    );
}

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


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

На всякий случай, дело тут вот в чём.

 

Спасибо, именно это мне и помогло )

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


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

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

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

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

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

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

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

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

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

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