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

 
 
> Копирование в ОЗУ цикла записи во FLASH, Помогите пожалуйста реализовать
Desperanto
сообщение Feb 17 2011, 06:38
Сообщение #1


Участник
*

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



Помогите пожалуйста реализовать. Работать стал недавно, опыта мало. Суть такова: по UART надо залить прошивку по-битно. Я пересылаю по биту прошивки через UART и записываю во FLASH, предварительно стерев ее. Что бы это реализовать, мой цикл записи должен находиться в ОЗУ, иначе я вешаю контроллер. Если нужен исходник программы, приложу попозже. Такой способ записи выбран из-за довольно большой прошивки и FLASH и маленькой ОЗУ. А если еще сможете помочь реализовать верификацию прошивки после заливки, то буду очень признателен! sm.gif
ЗЫ: целевой контроллер MSP430F1611, но тест проводится на 149ом.
ЗЫ2: использую IAR 4.20 и язык С++.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Desperanto
сообщение Feb 17 2011, 07:51
Сообщение #2


Участник
*

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



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

а да, мне ж надо не только скопировать кусок исполняемого кода в RAM, но и запустить его оттуда, что б мог стереть флеш

Сообщение отредактировал Desperanto - Feb 17 2011, 07:55
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Feb 17 2011, 07:59
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 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 =)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:30
Рейтинг@Mail.ru


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