|
Копирование в ОЗУ цикла записи во FLASH, Помогите пожалуйста реализовать |
|
|
|
Feb 17 2011, 06:38
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 23-01-11
Пользователь №: 62 426

|
Помогите пожалуйста реализовать. Работать стал недавно, опыта мало. Суть такова: по UART надо залить прошивку по-битно. Я пересылаю по биту прошивки через UART и записываю во FLASH, предварительно стерев ее. Что бы это реализовать, мой цикл записи должен находиться в ОЗУ, иначе я вешаю контроллер. Если нужен исходник программы, приложу попозже. Такой способ записи выбран из-за довольно большой прошивки и FLASH и маленькой ОЗУ. А если еще сможете помочь реализовать верификацию прошивки после заливки, то буду очень признателен!  ЗЫ: целевой контроллер MSP430F1611, но тест проводится на 149ом. ЗЫ2: использую IAR 4.20 и язык С++.
|
|
|
|
|
 |
Ответов
|
Feb 17 2011, 07:51
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 23-01-11
Пользователь №: 62 426

|
поиском пользовался, правда через гугл, по ссылкам ничего конкретного не увидел, все только общие советы. мне бы конкретный кусок кода для разбора, или пнуть где его можно увидеть. еще раз повторюсь что у меня мало опыта пока еще и мне бы вместе с советами еще хотя бы примерную их реализацию в коде (желательно на "С/С++"). у меня такая ситуация, что к девайсу нет простого прямого доступа. можно один раз его достать, по JTAG'у зашить прошивку с реализованной возможностью "перепрошивки" по UART. защит от дураков не надо, достаточно просто реализовать по-битную (можно по-байтную, тут не суть) заливку и проверку на правильность перешитой флэш. "трогать" буду только main flash, info оставляю не тронутой. ЗЫ: почти все время с смомента регистрации пытался найти сам, гуглил везде и по всякому, много перечитал и перекачал...но никак не смог решить свою проблему и решил спрсоить помощи у знающих гуру.
а да, мне ж надо не только скопировать кусок исполняемого кода в RAM, но и запустить его оттуда, что б мог стереть флеш
Сообщение отредактировал Desperanto - Feb 17 2011, 07:55
|
|
|
|
|
Feb 17 2011, 07:59
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(Desperanto @ Feb 17 2011, 10:51)  а да, мне ж надо не только скопировать кусок исполняемого кода в RAM, но и запустить его оттуда, что б мог стереть флеш В инструкции по эксплуатации, заботливо переведённой компэлом и выложенной на gaw.ru вроде бы всё предельно чётко расписано. Вот, например: CODE ; Запись одного блока, начиная с адреса 0F000h. ; Запись должна выполняться из ОЗУ; предполагается, что флэш-память уже стерта. ; 514 кГц < SMCLK < 952 кГц ; Принимается ACCVIE = NMIIE = OFIE = 0. MOV #32,R5 ; Используется как счетчик записи MOV #0F000h,R6 ; Указатель записи MOV #WDTPW+WDTHOLD,&WDTCTL ; Отключение сторожевого таймера DINT ; Запрещение прерываний L1 BIT #BUSY,&FCTL3 ; Проверка BUSY JNZ L1 ; Ожидание в цикле, пока занято MOV #FWKEY+FSSEL1+FN0,&FCTL2 ; SMCLK/2 MOV #FWKEY,&FCTL3 ; Очистка LOCK MOV #FWKEY+BLKWRT+WRT,&FCTL1 ; Разрешение записи блока L2 MOV Write_Value,0(R6) ; Месторасположение записи L3 BIT #WAIT,&FCTL3 ; Проверка WAIT JZ L3 ; Ожидание в цикле, пока WAIT=0 INCD R6 ; Указание на следующее слово DEC R5 ; Декремент счетчика записи JNZ L2 ; Конец блока? MOV #FWKEY,&FCTL1 ; Очистка WRT,BLKWRT L4 BIT #BUSY,&FCTL3 ; Проверка BUSY JNZ L4 ; Ожидание в цикле, пока занято MOV #FWKEY+LOCK,&FCTL3 ; Установка LOCK ... ; Повторный запуск сторожевого таймера, ; если необходимо EINT ; Разрешение прерываний
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
Сообщений в этой теме
Desperanto Копирование в ОЗУ цикла записи во FLASH Feb 17 2011, 06:38 ih_ Цитата(Desperanto @ Feb 17 2011, 09:38) П... Feb 17 2011, 06:58 Desperanto готов даже высказать материальное спасибо за помощ... Feb 17 2011, 08:14 Сергей Борщ QUOTE (Desperanto @ Feb 17 2011, 08:38) Т... Feb 17 2011, 08:38 MrYuran Цитата(Сергей Борщ @ Feb 17 2011, 11:38) ... Feb 17 2011, 10:10 Desperanto Сергей Борщ, связь дусторонняя, отправить могу хот... Feb 17 2011, 10:01 Сергей Борщ QUOTE (Desperanto @ Feb 17 2011, 11:44) а... Feb 17 2011, 10:14 Desperanto Сергей Борщ ну так вернемся к сути первых моих соо... Feb 17 2011, 10:30 Сергей Борщ QUOTE (MrYuran @ Feb 17 2011, 12:10) Серг... Feb 17 2011, 11:01 Desperanto Сергей Борщ передавать в ti txt потому что так хоч... Feb 17 2011, 11:26 MrYuran Цитата(Desperanto @ Feb 17 2011, 14:26) С... Feb 17 2011, 11:36 Сергей Борщ QUOTE (Desperanto @ Feb 17 2011, 13:26) С... Feb 17 2011, 11:39 Desperanto Сергей Борщ, MrYuran, хм...а слона то я и не замет... Feb 17 2011, 12:10 rezident Замечание вдогонку остальным советам.
MSP430 може... Feb 17 2011, 13:11 MrYuran Цитата(rezident @ Feb 17 2011, 16:11) Коп... Feb 17 2011, 13:17  rezident Цитата(MrYuran @ Feb 17 2011, 18:17) Разн... Feb 17 2011, 13:45 jorikdima Цитата(Desperanto @ Feb 17 2011, 09:38) П... Feb 17 2011, 20:54 Desperanto jorikdima скинул Feb 18 2011, 08:35 Desperanto jorikdima личку то получили? а то не могу посмотре... Feb 18 2011, 10:02 Desperanto друзья, подниму тему а кто чем пользуется для раб... Mar 25 2011, 06:20 Ave Как можно программно запустить BSL для MSP430. Jul 15 2011, 09:18 rezident Цитата(Ave @ Jul 15 2011, 14:18) Как можн... Jul 15 2011, 14:22
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|