реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Программное восстановление SAM-BA для SAM7S
aaarrr
сообщение Dec 15 2009, 17:07
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Специально для тех, кто замучался восстанавливать самбу при помощи нечеловеческой свистопляски с TST, но не хочет по каким-либо причинам использовать свой загрузчик, хочу предложить простую процедурку восстановления самбы непосредственно из приложения:

Код
#define    FMCN1        (48 << 16)
#define    FMCN1_5        (72 << 16)

int restore_samba(void)
{
    unsigned int a, p, *data = (unsigned int *)0x300e00;

    disable_irq();

    AT91C_BASE_MC->MC_FMR = (AT91C_BASE_MC->MC_FMR & ~(AT91C_MC_FMCN | AT91C_MC_NEBP)) | FMCN1_5;

    for(p = 0; p < 32; p++)
    {

        for(a = 0; a < AT91C_IFLASH_PAGE_SIZE / 4; a++)
            ((volatile unsigned int *)AT91C_IFLASH)[a] = *data++;

        AT91C_BASE_MC->MC_FCR = (0x5a << 24) | ((p << 8) & AT91C_MC_PAGEN) | AT91C_MC_FCMD_START_PROG;

        while(!((a = AT91C_BASE_MC->MC_FSR) & AT91C_MC_FRDY));

        if((a & AT91C_MC_LOCKE) || (a & AT91C_MC_PROGE))
            return 0;
    }
    return 1;
}


Процедура должна быть расположена в RAM (по крайней мере та ее часть, что непосредственно отвечает за запись страницы).
Тестировалось на AT91SAM7S64 58814G.
Go to the top of the page
 
+Quote Post
PrSt
сообщение Dec 15 2009, 18:11
Сообщение #2


http://uschema.com
****

Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394



Спасибо.
отличная возможность однако,
нужно обязательно это попробовать.

.


--------------------
Go to the top of the page
 
+Quote Post
vmp
сообщение Dec 16 2009, 15:04
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Ага, все-таки это ПЗУ сидит в адресном пространстве.
Кстати, а в нем случайно нет подпрограммы записи во флеш? Для SAM9XE такая подпрограмма предусмотрена и документирована, так что можно не тратить ОЗУ попусту.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 16 2009, 15:12
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(vmp @ Dec 16 2009, 18:04) *
Кстати, а в нем случайно нет подпрограммы записи во флеш? Для SAM9XE такая подпрограмма предусмотрена и документирована, так что можно не тратить ОЗУ попусту.

Затраты ОЗУ можно сократить до буквально до нескольких слов - запись FCR и ожидание FRDY, поэтому смысла в такой экономии нет. Если совсем жаба душит, то можно воспользоваться стеком.
А учитывая недокументированность ROM, использовать процедуры из нее в любом случае не стоит.
Go to the top of the page
 
+Quote Post
Aquatik
сообщение Dec 27 2009, 13:20
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 156
Регистрация: 24-05-05
Из: Москва
Пользователь №: 5 354



Спасибо.... работает... wink.gif


--------------------
BST RGDS,
Aquatik...
Go to the top of the page
 
+Quote Post
Freeuser
сообщение Jan 14 2010, 10:44
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 18-11-09
Из: Мск
Пользователь №: 53 718



А для программного восстановления сам-бы на SAM7X что-нибудь изменится?
Go to the top of the page
 
+Quote Post
Freeuser
сообщение Jan 15 2010, 11:57
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 18-11-09
Из: Мск
Пользователь №: 53 718



на sam7x256 не работает sad.gif А что нужно сделать, чтобы sam-ba восстановилась?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 15 2010, 14:32
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



А для SAM7X советую почитать мануал, там такой процедуры нет в принципе.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 17:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016