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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Программирование одного мк другим, Вопрос по программированию
Igor26
сообщение Dec 15 2006, 17:30
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Была такая идея, но говорю сразу - это только мысль и реализована она пока не была.
Представьте себе некую маленькую коробочку, в которой кроме источника питания, разъёма ISP,пары светодиодов, кварца и, собственно кристалла больше ничего нет. В кристалл, в секцию бутлоадера зашит собственно программатор и закрыт всеми возможными для него, бутлоадера, битами защиты. Его задача - последовательно читать флэш с нулевого адреса и формировать сигналы программирования для внешнего кристалла. Т.е. кристалл в коробочке - это и есть автономный программатор. Так прелесть, помоему, в том, что берем эту коробочку, шьём ее как целевое устройство (секция бутлоадера защищена, значит он и не затрется при шитье) и забывам об этом. Далее, приезжаем на объект, вставляем коробочку в целевой девайс. Коробочка стартует с бутлоадера и начинает шить то, что в нее зашили "как в целевое устройство".


Извиняюсь за некую сумбурность, смерть как устал за неделю. :-)
Go to the top of the page
 
+Quote Post
prottoss
сообщение Dec 15 2006, 17:55
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Igor26 @ Dec 15 2006, 21:30) *
Была такая идея, но говорю сразу - это только мысль и реализована она пока не была.
Представьте себе некую маленькую коробочку, в которой кроме источника питания, разъёма ISP,пары светодиодов, кварца и, собственно кристалла больше ничего нет. В кристалл, в секцию бутлоадера зашит собственно программатор и закрыт всеми возможными для него, бутлоадера, битами защиты. Его задача - последовательно читать флэш с нулевого адреса и формировать сигналы программирования для внешнего кристалла. Т.е. кристалл в коробочке - это и есть автономный программатор. Так прелесть, помоему, в том, что берем эту коробочку, шьём ее как целевое устройство (секция бутлоадера защищена, значит он и не затрется при шитье) и забывам об этом. Далее, приезжаем на объект, вставляем коробочку в целевой девайс. Коробочка стартует с бутлоадера и начинает шить то, что в нее зашили "как в целевое устройство".
Извиняюсь за некую сумбурность, смерть как устал за неделю. :-)
Идея хорошая, но зачем код для целевого девайса вгонять в МК программатора, для этого есть DataFlash или EEPROM. Дешевле получится и место столько же, если не меньше...


--------------------
Go to the top of the page
 
+Quote Post
demaven
сообщение Dec 16 2006, 09:22
Сообщение #18


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

Группа: Свой
Сообщений: 108
Регистрация: 10-05-05
Из: Киргизия Бишкек
Пользователь №: 4 886



просто товарищ желает сохранить свой код в тайне от всех, а из внешней флешки, как он считает, код этот могут считать. Но ему никто не запрещает в контроллер вставить дешифратор а во флешку писать зашифрованный код и задача упростится, можно будет писать любые программы, меняя только флешку
Go to the top of the page
 
+Quote Post
ReAl
сообщение Dec 16 2006, 18:30
Сообщение #19


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Igor26 @ Dec 15 2006, 16:30) *
Так прелесть, помоему, в том, что берем эту коробочку, шьём ее как целевое устройство (секция бутлоадера защищена, значит он и не затрется при шитье) и забывам об этом. Далее, приезжаем на объект, вставляем коробочку в целевой девайс. Коробочка стартует с бутлоадера и начинает шить то, что в нее зашили "как в целевое устройство".

Если ты едешь туда лично, то никаких таких фокусов не надо, а если не лично - то рано или поздно притулят впараллель SPI-slave только на приём, который сольёт куда сочтёт нужным всю последовательность и потом можно и вырезать нужное для дизассемблирования, и шо хош.
Так что - правильно было сказано - шифрование. Только "дешифратор" - в ЦЕЛЕВОМ устройстве, а в "коробочке" - всего лишь AT45DBсколько_надо с зашифрованной программой. И пусть бутлоадер в целевом читает, декодирует, самопрошивается.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Igor26
сообщение Dec 17 2006, 00:30
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата
Если ты едешь туда лично

Если я поеду туда лично, то возьму свой лаптоп и залью. А если едет человек, которому пол дня нужно объяснять, что такое FUSE-биты? Плавали, знаем.
Далее. О закрытии кода речи нет. Не нужно этого. Пусть разбираются в 20к кода, если хотят.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Dec 17 2006, 00:40
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Igor26 @ Dec 17 2006, 04:30) *
Цитата
Если ты едешь туда лично

Если я поеду туда лично, то возьму свой лаптоп и залью. А если едет человек, которому пол дня нужно объяснять, что такое FUSE-биты? Плавали, знаем.
Далее. О закрытии кода речи нет. Не нужно этого. Пусть разбираются в 20к кода, если хотят.


А зачем разбираться? Клонировать достаточно инохда...)


--------------------
Go to the top of the page
 
+Quote Post
Panych
сообщение Jan 21 2008, 09:47
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 335
Регистрация: 17-06-04
Из: Москва
Пользователь №: 35



Я пытаюсь запрограммировать из Mega128 Tiny26.
Вход в синхронизацию проходит, но при этом Flash заполняется какими-то значениями - память оказывается заполненной какими-то значениями даже после команды "Стирание памяти".
В чем может быть загвоздка?

Код
  char mark = 0;
  char temp = 0;

  INITIALIZATION(); // инициализация портов

  while ( mark == 0 ) // будем добиваться входа в синхронизацию
  {
    // вход в режим программирования
    CLEARBIT( DDRE, 6 ); // Reset = High
    DELAYMS( 1 );
    // Reset = Low
    CLEARBIT( PORTE,6 );
    SETBIT( DDRE, 6 );
    CLEARBIT( PORTE,6 );
    
    DELAYMS( 20 );
    // вход в синхронизацию
    SEND_SPI( 0xAC );
    SEND_SPI( 0x53 );
    temp = SEND_SPI( 0xAA );
    if( temp == 0x53 )
    {
      SEND_SPI( 0xAA );
      mark = 1;
    }
  }
  // стирание памяти
SEND_SPI( 0xAC );
SEND_SPI( 0x80 );
SEND_SPI( 0x00 );
SEND_SPI( 0x00 );


ВОПРОС СНЯТ!
этого не происходит, ошибка в мозгах была...


--------------------
Всегда не хватает времени, чтобы выполнить работу как надо, но на то, чтобы ее переделать, время находится. (Закон Мескимена.)
Go to the top of the page
 
+Quote Post
Guest_=VRA=_*
сообщение Jan 21 2008, 09:59
Сообщение #23





Guests






Цитата(ILYCHOFF @ Oct 13 2006, 10:40) *
Хочется посмотреть как делают грамотные люди
Вот они - ключевые слова, на которые никто до сих пор не обратил внимания!



А грамотные люди делают так, чтобы необходимость в таком извращении просто не возникала - тогда и не придется гланды через ж... вырезать a14.gif
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Jan 21 2008, 14:58
Сообщение #24


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
редставьте себе некую маленькую коробочку, в которой кроме источника питания, разъёма ISP,пары светодиодов, кварца и, собственно кристалла больше ничего нет. В кристалл, в секцию бутлоадера зашит собственно программатор и закрыт всеми возможными для него, бутлоадера, битами защиты.

У нас так сделано уже лет 8. Только в коробочке в последних вариантах я ставлю панельку с нулевым усилием - для смены целевого устройства меняется только пишущий кристалл.
Ну и еще небольшой совет. Кроме выше названного поставить пищалку для контроля завершения записи - хорошо помогает smile.gif .
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 21 2008, 21:39
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



А я бы сделал стандартно (на мой взгляд). В обоих однокристалках реализовал бы бутлоадер. А по SPI только передача данных. То есть канал. В этом случае по SPI возможна заливка проги любым из источников. Возможно кодирование/декодирование (если на уровне однокристалки то примитивное).
Go to the top of the page
 
+Quote Post
Dmitry_Od
сообщение Jan 27 2008, 12:15
Сообщение #26


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 17-01-07
Из: Одесса
Пользователь №: 24 523



Цитата(ILYCHOFF @ Oct 13 2006, 09:40) *
... Есть два мк ATMega128 связаны между собой ... чтобы один мк залил в другой свою прошивку...


А если взять третий камень и управление заливкой/считыванием возложить на него?


--------------------
http://odessa-intern.myminicity.com/ - эдакий муравейник
Go to the top of the page
 
+Quote Post

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

 


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


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