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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Протокол программирования ISP
TAutomatic
сообщение Aug 31 2012, 07:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-12-11
Пользователь №: 68 798



Встала задача- написать оболочку для заводской инициализации устройства на LPC1768, в том числе сначала заливка тестовой прошивки, после инициализации, заливки уже рабочей прошивки, что бы это было в автомате.
Встала проблема.
ISP работает так.
1 осуществляется синхронизация
2 затем идет стирание секторов
3 затем идет запись блоков с контролем контрольной суммы в RAM и перезапись из RAM во FLASH
4
5 верификация путем чтения блоков по 512 байт

Вот вызывает вопрос 4 пункт. Происходит запись 16 байт, затем выполнение команды Go. Что это за данные? Без эаписи этих данных прошивка не стартует. Смею предположить, это сигнатура валидности программного кода? Причем аналогичные дополнительные действия делаются при верификации 0 и 1 блока, последующие блоки просто читаются и все.
Вот что можно увидеть монитором COM - порта.
CODE
Written data
57 20 32 36 38 34 33 35 39 36 38 20 31 36 0d W 268435968 16.

Read data
57 20 32 36 38 34 33 35 39 36 38 20 31 36 0d 30 W 268435968 16.0
0d 0a ..

Written data
30 60 44 41 2f 5c 60 24 21 60 36 21 50 31 50 60 0`DA/\`$!`6!P1P`
60 30 2c 60 2f 30 24 56 5c 0d `0,`/0$V\.

Read data
30 60 44 41 2f 5c 60 24 21 60 36 21 50 31 50 60 0`DA/\`$!`6!P1P`
60 30 2c 60 2f 30 24 56 5c 0d `0,`/0$V\.

Written data
31 30 31 30 0d 1010.

Read data
31 30 31 30 0d 4f 4b 0d 0a 1010.OK..

Written data
55 20 32 33 31 33 30 0d U 23130.

Read data
55 20 32 33 31 33 30 0d 30 0d 0a U 23130.0..

Written data
47 20 32 36 38 34 33 35 39 36 38 20 54 0d G 268435968 T.

Read data
47 20 32 36 38 34 33 35 39 36 38 20 54 0d G 268435968 T.

Written data
52 20 30 20 35 31 32 0d R 0 512.

Read data
52 20 30 20 35 31 32 0d 30 0d 0a 4d 36 23 34 60 R 0 512.0..M6#4`
24 2e 24 60 60 60 23 45 60 60 60 60 59 50 60 60 $.$```#E````YP``
60 2e 44 60 60 60 23 4b 60 60 60 60 5b 30 60 60 `.D```#K````[0``
60 23 4b 25 5f 5e 5c 60 60 60 60 60 60 60 60 60 `#K%_^\`````````
60 60 60 60 60 60 23 4f 0d 0a 4d 60 60 60 60 5c ``````#O..M````\
30 60 60 60 60 60 60 60 60 23 53 60 60 60 60 43 0````````#S````C

ТУТ КУСОК БЛОКА ДО КОНЦА ОТРЕЗАН, ЧТО БЫ МЕСТА НЕ ЗАНИМАТЬ

Written data
4f 4b 0d OK.


Read data
4f 4b 0d OK.

Дальше следующий блок


Written data
57 20 32 36 38 34 33 35 39 36 38 20 31 36 0d W 268435968 16.

Read data
57 20 32 36 38 34 33 35 39 36 38 20 31 36 0d 30 W 268435968 16.0
0d 0a ..

Written data
30 60 44 41 2f 5c 60 60 21 60 36 21 50 31 50 60 0`DA/\``!`6!P1P`
60 30 2c 60 2f 30 25 33 58 0d `0,`/0%3X.

Read data
30 60 44 41 2f 5c 60 60 21 60 36 21 50 31 50 60 0`DA/\``!`6!P1P`
60 30 2c 60 2f 30 25 33 58 0d `0,`/0%3X.

Written data
31 30 30 39 0d 1009.

Read data
31 30 30 39 0d 4f 4b 0d 0a 1009.OK..

Written data
55 20 32 33 31 33 30 0d U 23130.

Read data
55 20 32 33 31 33 30 0d 30 0d 0a U 23130.0..

Written data
47 20 32 36 38 34 33 35 39 36 38 20 54 0d G 268435968 T.

Read data
47 20 32 36 38 34 33 35 39 36 38 20 54 0d G 268435968 T.

Written data
52 20 35 31 32 20 35 31 32 0d R 512 512.

Read data
52 20 35 31 32 20 35 31 32 0d 30 0d 0a 4d 60 3e R 512 512.0..M`>
60 21 5c 28 21 21 22 3b 24 21 28 21 22 5d 60 22 `!\(!!";$!(!"]`"
23 5c 59 50 25 26 32 26 41 50 31 50 29 26 22 54 #\YP%&2&AP1P)&"T
39 31 3a 21 2e 51 60 3f 60 60 30 30 27 40 60 3f 91:!.Q`?``00'@`?
22 60 30 30 46 51 60 32 21 50 0d 0a 4d 31 50 60 "`00FQ`2!P..M1P`
40 5f 2e 3c 60 60 21 21 60 60 54 60 60 4f 5f 5b @_.<``!!``T``O_[
47 24 2b 34 24 31 40 24 41 22 60 30 60 5c 2f 37 G$+4$1@$A"`0`\/7
59 33 5f 23 5f 2c 22 21 40 60 22 21 40 38 60 50 Y3_#_,"!@`"!@8`P
40 28 27 28 60 28 2e 21 40 0d 0a 4d 24 2b 54 30 @('(`(.!@..M$+T0

Снова блок обрезан для экономии места

Written data
4f 4b 0d OK.

Read data
4f 4b 0d


Дальше чтение идет без доп. команд

Код
Written data
52 20 31 30 32 34 20 35 31 32 0d                    R 1024 512.    

Read data
52 20 31 30 32 34 20 35 31 32 0d 30 0d 0a 4d 36     R 1024 512.0..M6
24 44 60 5e 50 27 50 32 24 47 31 5e 28 40 30 50     $D`^P'P2$G1^(@0P
3f 2c 27 30 30 27 51 60 30 26 50 5e 5f 27 51 30     ?,'00'Q`0&P^_'Q0


Может кто-то подсказать, как это поворить?


Инет глюканул в момент добавления топика и получилось две одинаковые темы. Просьба к админу или модератору - убейте ненужный дубль.

Сообщение отредактировал IgorKossak - Sep 7 2012, 09:44
Причина редактирования: [codebox] для длинного кода!!!
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Aug 31 2012, 08:24
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Занимался подобным проектом месяц назад. При реализации возникла проблема с чтением данных. Конкретно команда read memory возвращаля бред, хотя данные были записаны успешно. Снял лог с FlashMagic и увидел что для корректного чтения требуется запись какогото кода в оперативку. У меня небыло времени разбираться с этим, поэтому я просто контролировал успешно или неуспешно записывались блоки по 512 байт по возвращаемому статус-коду. А далее передёргивал питания и контролировал запуск программы. Сам процесс прошивки довольно прост - синхронизация с установкой скорости уарт по максимуму, стирание всего чипа, разблокировка чипа, а дальше в цикле команда записи, отправка данных, подготовка сектора, команда копирования ram в flash, контроль успешности копирования.

Конкретно Вам может помочь глава 32 в user manual и приложенные файлы. В приложенном файле есть процедура uu-кодирования данных которая позволяет кодировать по 512 байт - для меня именно кодирование данных вызывало затруднение, всё остальное довольно просто.

P.S. Если разберётесь зачем для корректного чтения необходимо отправлять дополнительные команды, напишите сдесь.

Сообщение отредактировал mempfis_ - Aug 31 2012, 08:44
Go to the top of the page
 
+Quote Post
TAutomatic
сообщение Aug 31 2012, 09:36
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-12-11
Пользователь №: 68 798



Цитата(mempfis_ @ Aug 31 2012, 11:24) *
Занимался подобным проектом месяц назад.
P.S. Если разберётесь зачем для корректного чтения необходимо отправлять дополнительные команды, напишите сдесь.

Спасибо, посмотрю документы. У меня таких не было. Очистка памяти и запись все прошивки у меня работает. Теперь надо разобраться с моментом, который я описал и с верификацией.

Честно говоря, если бы был в распоряжении только манул, то по главе 32 трудно было бы все это реализовать. Помогла инфа из инетета да снифер компорта при программировании с помощью FlasMagic



Самое интересное все работает.
Я стираю девайс своими процедурами. И таки реально стирает, поскольку проверка на чистоту FlashMagic говорит, что читсый кристалл. Записываю прошивку. Верифицирую FlashMagic - говорит что идентично. Почему контроллер не оживает, как после выполнения этих же процедур полностью FlashMagic - не понятно.
Go to the top of the page
 
+Quote Post
TAutomatic
сообщение Aug 31 2012, 10:44
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-12-11
Пользователь №: 68 798



Цитата(mempfis_ @ Aug 31 2012, 11:24) *
А далее передёргивал питания и контролировал запуск программы.

Бог с ним, с верификацией. Тоесть у Вас после выполнения всех описанных шагов контроллер запускался? Странно, делаю тоже самое, проверил и перепроверил еще раз. Все аналогично. Но у меня контроллер не запускается
Go to the top of the page
 
+Quote Post
TAutomatic
сообщение Aug 31 2012, 12:06
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-12-11
Пользователь №: 68 798



И еще вопрос, не могу сообразить, как правильно дополнять в последнем блоке, который из 17 байт, до размера, кратного 3?
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Aug 31 2012, 16:39
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(TAutomatic @ Aug 31 2012, 13:44) *
Бог с ним, с верификацией. Тоесть у Вас после выполнения всех описанных шагов контроллер запускался? Странно, делаю тоже самое, проверил и перепроверил еще раз. Все аналогично. Но у меня контроллер не запускается


При заливке программы выключаю питание, замыкаю перемычку boot, включаю питание, синхронизируюсь, прошиваю, выключаю питание.
Далее снимаю перемычку boot, включаю питание, контролирую запуск программы.
Сами заведомо рабочие и отлаженные прошивки получаю из IAR путём генерирования бинарного файла. Размер файла кратен 512 байтам - т.е. кратен размер uu-кодированного блока данных. Основная программа занимает всю flash, а тестовая столько сколько надо, если она не кратна 512 то дополняю её 0xff.

Вы уверены то бинарный файл что Вы отправляете рабочий?
Или он правильно кодируется и отправляется?
С командами erase, copy думаюпроблем у Вас нет - они просты в формировании. Может быть чтото неправильно кодируется.
Привожу кусок кода кодирования и отправки блока в 512 байт.

CODE
//копируем блок данных в буффер
unsigned int i, j, chksum, num;
for(i=0; i<512; i++)
{
isp_buff[i] =; //тут isp_buff заполняется очередным блоком прошивки
}


//вычисляем контрольную сумму
chksum = 0;
for (i=0; i<512; i++)
{
chksum += isp_buff[i];
}

//кодируем данные сохраняя в isp_send_buff и отправляем
for (i=0; i<512; i+=45)

{
//max 45 bytes a time
num = 512 - i;
if ( num > 45 ) num = 45;

isp_send_buff[0] = num + 0x20;

for ( j=0; j<num; j+=3 )
{
uuencode(isp_buff+i+j,(unsigned char *)isp_send_buff+1+(j/3)*4);

}

isp_send_buff[1+((num+2)/3)*4] = 0;

//отправляем строку
_putstringBoard((const char*) isp_send_buff);
_putcharBoard('\r');

delay_ms(10);
}

//отправляем контрольную сумму
unsigned char buff[12];
my_itoa(chksum, buff);
_putstringBoard((const char*) buff);
_putcharBoard('\r');


Сообщение отредактировал IgorKossak - Sep 7 2012, 09:45
Причина редактирования: [codebox] для длинного кода!!!
Go to the top of the page
 
+Quote Post
TAutomatic
сообщение Aug 31 2012, 18:13
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-12-11
Пользователь №: 68 798



Цитата(mempfis_ @ Aug 31 2012, 19:39) *
При заливке программы выключаю питание, замыкаю перемычку boot, включаю питание, синхронизируюсь, прошиваю, выключаю питание.
Далее снимаю перемычку boot, включаю питание, контролирую запуск программы.


У меня такая же пермычка и кнопка Ресет.

Цитата(mempfis_ @ Aug 31 2012, 19:39) *
Сами заведомо рабочие и отлаженные прошивки получаю из IAR путём генерирования бинарного файла. Размер файла кратен 512 байтам - т.е. кратен размер uu-кодированного блока данных. Основная программа занимает всю flash, а тестовая столько сколько надо, если она не кратна 512 то дополняю её 0xff.

Вы уверены то бинарный файл что Вы отправляете рабочий?
Или он правильно кодируется и отправляется?

Я прошиваю hex файлом из Keila. С помощью FlashMagic он прошивается, убираю пермычку, нажимаю кнопку Ресет, программа работает. Прошиваю этот же файл своим изделием... Опс, и ничего rolleyes.gif

Я снял с помощью сканера обмен FlashMagic и свой. Разницы нет никакой. За одним исключением.
отправляются блоки не более 45 байт, правильно? Получается отправляем на один сектор 512 байт 11 блоков полных по 45 байт и двенадцатый блок размером 17 байт. Но мы должны при UU кодировании иметь целое количество троек. Тоесть нужно дополнять 17 байт восемнадцатым. Как он определяется, я не могу понять. В описании есть что-то невнятное типа байты надо вычесть из номера линии. Какой номер, какой линии? Они же не нумеруются. Но запись секторов у меня все равно проходит успешно. После записи контрольной суммы контроллер возвращает ее и ОК. Да и понятно, контрольная сумма то формируется из исходных байт, еще не кодированных. Но после полной прошивки контроллер не стартует. И это не понятно.
Сейчас посмотрю Ваши исходники, но я на первый взгляд не нашел ответа, чем заполнять последний байт. То, что он как-то вычисляетя, нет соменений, в конце каждого сектора он разный.

Сообщение отредактировал TAutomatic - Aug 31 2012, 18:18
Go to the top of the page
 
+Quote Post
KRS
сообщение Aug 31 2012, 20:08
Сообщение #8


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Вот вызывает вопрос 4 пункт. Происходит запись 16 байт, затем выполнение команды Go. Что это за данные? Без эаписи этих данных прошивка не стартует.[/quote]
это еще с первых LPC2000 пошло почему то бутлоадер при старте не мапит флешь на адрес 0 (хотя сам больше ни прерываниями ни этой областью не пользуется). Поэтому что бы корректно работала проверка и чтение флеша, надо записать в регистр значение что бы отмапить флешь на адрес 0.

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

Цитата(TAutomatic @ Aug 31 2012, 22:13) *
но я на первый взгляд не нашел ответа, чем заполнять последний байт. То, что он как-то вычисляетя, нет соменений, в конце каждого сектора он разный.

А вы описание бутлоадера читали? А Applicatiion Notes от NXP? (например AN11229)
Какой смысл делать reverse engineering флешь маджику если полно открытой информации?

Кстати писать можно и по 4 кб за раз (а у некоторых LPC ЕМНИП и по 8), а считывать вообще сразу всю прошивку одной командой.
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Sep 1 2012, 07:44
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(TAutomatic @ Aug 31 2012, 21:13) *
Я прошиваю hex файлом из Keila. С помощью FlashMagic он прошивается, убираю пермычку, нажимаю кнопку Ресет, программа работает. Прошиваю этот же файл своим изделием... Опс, и ничего rolleyes.gif


Хочу уточнить на всякий случай - Вы берёте hex-файл как есть и отправляете? или всёже декодируете его в бинарные данные, которые потом кодируете uu-кодированием и отправляете в flash? Заставте keil сгенерировать бинарник для прошивки.
Go to the top of the page
 
+Quote Post
TAutomatic
сообщение Sep 1 2012, 09:30
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-12-11
Пользователь №: 68 798



Цитата(mempfis_ @ Sep 1 2012, 10:44) *
Хочу уточнить на всякий случай - Вы берёте hex-файл как есть и отправляете? или всёже декодируете его в бинарные данные, которые потом кодируете uu-кодированием и отправляете в flash? Заставте keil сгенерировать бинарник для прошивки.

Ну конечно же hex файл я не отправляю как есть. Это текстовый файл с сопутствующей информацией. Я его транслирую в бинарник образа прошивки в памяти программы. Просто этот метод работы я использую по наследству. У меня уже есть свой программатор для PIC24, выдернул оттуда код да и все. Структура Intel hex файла стандартная. Естественно, двоичные данные кодирую, иначе контрольная сумма не совпала бы и контроллер бы у меня запрашивал повтор передачи


Цитата(KRS @ Aug 31 2012, 23:08) *
это еще с первых LPC2000 пошло почему то бутлоадер при старте не мапит флешь на адрес 0 (хотя сам больше ни прерываниями ни этой областью не пользуется). Поэтому что бы корректно работала проверка и чтение флеша, надо записать в регистр значение что бы отмапить флешь на адрес 0.

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

Цитата(KRS @ Aug 31 2012, 23:08) *
Кстати при первоначальном тестировании можно вообще флешь не шить а в рам запускать программу, бутлоадер это позволяет а результаты тестирования через тот же уарт и получать...

Здравая идея. Я пока не додумался, поскольку ни разу не пользовался такой возможностью. Это мой первый проект на ARM и все возможности контроллера использовать просто не в состоянии.

Цитата(KRS @ Aug 31 2012, 23:08) *
А вы описание бутлоадера читали? А Applicatiion Notes от NXP? (например AN11229)
Какой смысл делать reverse engineering флешь маджику если полно открытой информации?

Кстати писать можно и по 4 кб за раз (а у некоторых LPC ЕМНИП и по 8), а считывать вообще сразу всю прошивку одной командой.

Нет, описание загрузчика не читал, спасибо за информацию.

Ерунда какая-то вообще получается. Прочитал документ AN11229, да, все красиво расписано. По поводу добавления байт в блоки, не кратные 3. Пишут, что можно добавлять что угодно, сами добавляют 0. Хотя FlashMagic добавляет какждый раз разное число. Ну тогда мне вообще не понятно. Думал, это последняя проблема, стоит ее устранить и все заработает. Не работает.
Есть три 100% факта:
1 моя программа очифает флеш контроллера. После очистки, во-первых девайс перестает работать естественно. Это внешний признак. Во-вторых, при проверке на чистоту с помощью FM говорит, что чистый.
2 запись тоже работает, поскольку после записи моей программой верификация с помощью FM подтверждает идентичность прошивок.
3 скан процесса программирования с помощью FM и моей программы с последующей ферификацией с помошью, например UltraCompare показывает полную идентичность за исключением времени посылок и добавочного 18 байта в каждом секторе.

Не понимаю, почему контроллер на запускается после прошивки.

Сообщение отредактировал TAutomatic - Sep 1 2012, 08:56
Go to the top of the page
 
+Quote Post
KRS
сообщение Sep 1 2012, 10:14
Сообщение #11


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(TAutomatic @ Sep 1 2012, 13:30) *
Не понимаю, почему контроллер на запускается после прошивки.

А как вы его запускаете? После физического ресета тоже не стартует?
Контрольная сумма векторов прерываний посчитана? (иначе вход в бутлоадер принудительный)
Если командой бутлоадера Go запускать надо флешь отмапить на адрес 0, кроме того надо учитывать что бутлоадер проинитил часть периферии и PLL.
Go to the top of the page
 
+Quote Post
TAutomatic
сообщение Sep 1 2012, 10:42
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-12-11
Пользователь №: 68 798



Цитата(KRS @ Sep 1 2012, 13:14) *
А как вы его запускаете? После физического ресета тоже не стартует?
Контрольная сумма векторов прерываний посчитана? (иначе вход в бутлоадер принудительный)
Если командой бутлоадера Go запускать надо флешь отмапить на адрес 0, кроме того надо учитывать что бутлоадер проинитил часть периферии и PLL.

Конечно физическим ресетом rolleyes.gif Вы вот в тупике, как такое может быть, и я вот тоже.
Контрольная сумма векторов считается, как я понимаю, автоматически при генерации bin и hex файлов, я так понимаю. Во всяком случае, FM не делает каких то доп. операций. После записи 0 блока, FM начинает писать именно с самого старшего значащего блока к младшим, он не подает команд GO, просто останавливает процесс и все. Все очевидно: стирает все нужные сектора размером под прошивка, затем записывает блоки в озу, подготавливает сектора для записи, перписывает озу во флеш. И так все нужные блоки. Я делая тоже самое. Скан моего обмена отличается только незначащими дополнительными байтами. Но после аппаратного ресета прошивка не запускается

Сообщение отредактировал TAutomatic - Sep 1 2012, 10:46
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Sep 1 2012, 11:57
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Я бы предложил Вам пойти по длинному пути тщательной отладки.
В тот порт, через который Вы программируете плату стенда для прошивки-теста основных плат в текстовом виде выводить все сообщения.
Т.е. чтото типа
MSG: SEND ERASE CHIP CMD
MSG: ERASE CHIP ANSWER: 1
MSG: SEND UNLOCK CMD
MSG: UNLOCK UNSWER: 1
и т.д.
Возможно даже с выводом в терминал чистых и uu-кодированных данных.
Иногда это единственный способ найти ошибку в 'работающем коде'.

Когда я разбирался с ISP у меня была возможность отправлять тестовые сообщения чтобы точно видеть что я отправляю в прошиваемуюплату, что получаю в ответ. Благодаря этому я справился с задачей за неделю.
Go to the top of the page
 
+Quote Post
TAutomatic
сообщение Sep 1 2012, 12:08
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 11-12-11
Пользователь №: 68 798



Цитата(mempfis_ @ Sep 1 2012, 14:57) *
Я бы предложил Вам пойти по длинному пути тщательной отладки.

Дело в том, что у меня все это есть. Я программирую контроллер не с помощью контроллера, а с помощью ПО для компа. Весь обмен снимется сканером COM порта. Скан аналогичен скану работы FM. Могу даже вылажить оба файла, там все очевидно. Их можно сравнить какой-то программой сравнения текста. Все идентично, за исключением одного - после прошивки моей программой контроллер не стартует. И это угнетает, так как есть что-то на "ровном месте", чего я не могу понять и пока никто не подсказал.
Go to the top of the page
 
+Quote Post
KRS
сообщение Sep 1 2012, 12:26
Сообщение #15


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(TAutomatic @ Sep 1 2012, 14:42) *
Контрольная сумма векторов считается, как я понимаю, автоматически при генерации bin и hex файлов

не всегда! все зависит от тулчаина. проще всего бинарник посмотреть и проверить.
И кстати не знаю как флеш маджик, а еще Philips Flash Utility считала контрольную сумму налету.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 23:53
Рейтинг@Mail.ru


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