зашить AVR

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View

Hi All,

Для лабораторных целей нет вопросов - avreal.
А вот что делать на производстве?
Имеем пусть десять изделй по десять контроллеров в каждом.
И того 50-100 прошивок. время от времени выходят новые версии прошивок.
Hа производстве люди не знают что такое поиск по дате, не знают что
такое командная строка и тд. У них стоит ублюдочный понипрог и висят две
бумажки, на одной нарисованы галки с фьюзами, на другой список прошивок.
Мне сильно лениво печатать каждый раз новый список, да и ошибка связаная
с человеческим фактором тоже не редкость.
Ее конечно обнаружат, но потеряное время жалко.

Посему решение видится следующее - на сервере есть база, есть пара клиентов.
Один клиент на производстве - ему говорят хочу зашить такую плату такого
изделя. Как дополнительная фишка - считать прошивку и определить по базе
чего это было.
Второй клиент у девелопера - он выкладывает прошивку в базу.


Вопрос простой - есть чего готовое, с такой схемой работы?

Если нет, то можно написать.
Можно выложить бинарники, если оно кому реально надо :)

Практический я даже начал это писать, но некрасиво запускать avreal из
командной строки, dll было бы на удобней и красивей.
В связи с отсутвием данной dll вобщем проект и остановлен.

WBR, Michael


зашить AVR
Hello, Michael Zaichenko !

 > Практический я даже начал это писать, но некрасиво запускать avreal из
 > командной строки, dll было бы на удобней и красивей.
 > В связи с отсутвием данной dll вобщем проект и остановлен.


А из какой-то IDE запустить экзешник уже не модно до такой степени, что надо
вовсе от этого отказываться?

С уважением, Дима Орлов.


зашить AVR

Hi Dima,

Mon Apr 11 2005 07:07, Dima Orlov wrote to Michael Zaichenko:

 DO> Hello, Michael Zaichenko !

 >> Практический я даже начал это писать, но некрасиво запускать avreal из
 >> командной строки, dll было бы на удобней и красивей.
 >> В связи с отсутвием данной dll вобщем проект и остановлен.

 DO> А из какой-то IDE запустить экзешник уже не модно до такой степени, что
 DO> надо вовсе от этого отказываться?
Именно. в 2004 я знал какая мода будет в 2006 :)
Кстати, экзешники из оболочки вызывать иногда не в кайф.
Допусим запускаем компилятор. Если проджект достаточно большой, скажем
порядка 1000 модулей и 10000 файлов, то замедение связаное с горой запуска
дочернего процессса уже заметно. И не просто заметно, а даже измерялось,
на моей старой работе.

WBR, Michael


зашить AVR
Hello Michael.

12 Apr 05 00:35, you wrote to Dima Orlov:

 DO>> степени, что надо вовсе от этого отказываться?
 MZ> Допусим запускаем компилятор. Если проджект достаточно большой, скажем
 MZ> порядка 1000 модулей и 10000 файлов, то замедение связаное с горой
 MZ> запуска дочернего процессса уже заметно. И не просто заметно, а даже
 MZ> измерялось, на моей старой работе.

Что интересно, под линуксом запуск нового процесса гораздо быстрее. Хотя
теоретически, действий для этого выполняется больше (fork - дублирование
процесса, а потом exec - замещение дочернего процесса). Скрипты шелла, которые
в
основном состоят из вызовов дочерних команд (часто с пайпами и обработкой
результатов) под линуксом работают раза в два быстрее. Итого - время самой
компиляции больше, чем время запуска компилятора и никому не приходит в голову
идея - запихнуть gcc в dll-ку.

Alexey


зашить AVR

Hi Alexey,

Tue Apr 12 2005 09:03, Alexey Boyko wrote to Michael Zaichenko:

 AB> Hello Michael.

 AB> 12 Apr 05 00:35, you wrote to Dima Orlov:

 AB> Что интересно, под линуксом запуск нового процесса гораздо быстрее. Хотя
 AB> теоретически, действий для этого выполняется больше (fork - дублирование
 AB> процесса, а потом exec - замещение дочернего процесса). Скрипты шелла,
Быстрей чем в виндах? это не удивляет. Вот если бы быстрей чем вызов
библиотечной процедуры, то это было бы интересней :)

 AB> которые в основном состоят из вызовов дочерних команд (часто с пайпами и
 AB> обработкой результатов) под линуксом работают раза в два быстрее. Итого -
 AB> время самой компиляции больше, чем время запуска компилятора и никому не
 AB> приходит в голову идея - запихнуть gcc в dll-ку.
Время компиляции есно больше. Мы тогда проводили полную профилировку
оболчки, на предмет ускорения процесса компиляции. Очень много интересно
тогда вылезло...

 AB> Alexey

WBR, Michael


зашить AVR
Hello Michael.

13 Apr 05 00:44, you wrote to me:

 AB>> Что интересно, под линуксом запуск нового процесса гораздо
 AB>> быстрее. Хотя теоретически, действий для этого выполняется больше
 AB>> (fork - дублирование процесса, а потом exec - замещение дочернего
 AB>> процесса). Скрипты шелла,
 MZ> Быстрей чем в виндах? это не удивляет.

Так в том-то и дело, что удивляет. В винде процесс создается одной функцией,
которая собственно его и создает. В линуксе это делается сначала fork -
дублирование процесса (понятно, что дублируются только управляющие структуры,
память не дублируется, но все же), потом exec - замещение одного из процессов
новым. (с корректным завершением предыдущего). Только вот по факту - получается
наоборот.

Alexey


зашить AVR
Привет, Alexey !


 13 Apr 05 , 09:10  Alexey Boyko писал к Michael Zaichenko:

MZ>> Быстрей чем в виндах? это не удивляет.

AB> Так в том-то и дело, что удивляет. В винде процесс создается одной
AB> функцией, которая собственно его и создает. В линуксе это делается
AB> сначала fork - дублирование процесса (понятно, что дублируются только
AB> управляющие структуры, память не дублируется, но все же), потом exec -
AB> замещение одного из процессов новым. (с корректным завершением
AB> предыдущего). Только вот по факту - получается наоборот.

exec - это не "корректное завершение старого процесса с запуском нового", а
просто чтение бинарника в память старого и передача ему управления.

.                                            С уважением, Hикита.
icq:240059686, lj-user:nicka_startcev
... обучающая фирма "Тантал Сизифович"

зашить AVR
Hello Nickita.

14 Apr 05 21:59, you wrote to me:

 AB>> завершением предыдущего). Только вот по факту - получается
 AB>> наоборот.
 NS> exec - это не "корректное завершение старого процесса с запуском
 NS> нового", а просто чтение бинарника в память старого и передача ему
 NS> управления.

Hу прям уж так просто. Закрываются файлы, открытые вызывающим процессом (это и
есть корректное завершение)

Alexey


зашить AVR
Привет, Alexey !


 15 Apr 05 , 17:13  Alexey Boyko писал к Nickita A Startcev:

AB>>> завершением предыдущего). Только вот по факту - получается
AB>>> наоборот.
NS>> exec - это не "корректное завершение старого процесса с запуском
NS>> нового", а просто чтение бинарника в память старого и передача
NS>> ему управления.

AB> Hу прям уж так просто. Закрываются файлы, открытые вызывающим
AB> процессом (это и есть корректное завершение)

Перечитал man 3 exec. Hе нашел ни слова про переоткрывание каких-либо файловых
дескрипторов.

.                                            С уважением, Hикита.
icq:240059686, lj-user:nicka_startcev
... Терпенье и трут тухес натрут?

Re: зашить AVR
Hемедленно нажми на RESET, Nickita A Startcev!


Quoted text here. Click to load it

  Так конечно, если бы были закрыты все файлы, stdin/stdout --
какой прок от такого exec, и как бы работало перенаправление в shell?



зашить AVR

Hi Alexey,

Wed Apr 13 2005 09:10, Alexey Boyko wrote to Michael Zaichenko:


 MZ>> Быстрей чем в виндах? это не удивляет.

 AB> Так в том-то и дело, что удивляет. В винде процесс создается одной
В винде вообще много веселого. чего стоит только поддержка unicode в 9х :(
Апишные функции есть, только они либо ничего не делают, либо делают
совсем не то что от них ожидалось.
Хотя есть вещи и куда интересней. Лет 5 назад затеял профилировку при
помощи rdtsc, в 9х это работает. так небольшой кусочек кода,  выполнялся
гораздо быстрей (в разы) если находился достаточно далеко от эвент
хэндлера. причем если его удалять плавно, то и скорость возрастала плавно.
Хотя может это кэш влиял?

WBR, Michael


зашить AVR
 11 апpеля 05, Michael Zaichenko wrote to All  

MZ> Для лабоpатоpных целей нет вопpосов - avreal.
MZ> А вот что делать на пpоизводстве?
MZ> Имеем пусть десять изделй по десять контpоллеpов в каждом.
MZ> И того 50-100 пpошивок. вpемя от вpемени выходят новые веpсии пpошивок.
MZ> Hа пpоизводстве люди не знают что такое поиск по дате, не знают что
MZ> такое командная стpока и тд. У них стоит ублюдочный понипpог и висят две
MZ> бумажки, на одной наpисованы галки с фьюзами, на дpугой список пpошивок.
MZ> Мне сильно лениво печатать каждый pаз новый список, да и ошибка связаная
MZ> с человеческим фактоpом тоже не pедкость.
MZ> Ее конечно обнаpужат, но потеpяное вpемя жалко.

MZ> Пpактический я даже начал это писать, но некpасиво запускать avreal из
MZ> командной стpоки, dll было бы на удобней и кpасивей.
MZ> В связи с отсутвием данной dll вобщем пpоект и остановлен.

Зачем так извpащаться? И как вообще запускать dll? У нас на сеpвеpе лежат
пpошивки, к каждой avreal и bat-файл, где все что нужно уже пpописано. Там же
лежит файл, где написано, где и какая пpошивка сейчас используется. Когда
нужно, пpошивка и сопутствующие файлы копиpутся на пpоизводство и там выводится
яpлык на pабочий стол с названием изделия, людям остается только подключить
кабель и кликнуть по яpлыку. Пpи выходе новой пpошивки она копиpуется на
пpоизводство вместо стаpой ее pазpаботчиком.
Плюс в avreal 1.25 появились интеpесные возможности для пpогpаммиpования
нескольких контpоллеpов чеpез один pазъем.

Bye

зашить AVR
Hello Michael.

11 Apr 05 00:54, you wrote to all:

 MZ> но некрасиво запускать avreal из
 MZ> командной строки,

Почему?

Alexey


Re: зашить AVR
Здравствуйте.

 MZ>> но некрасиво запускать avreal из
 MZ>> командной строки,

AB> Почему?

видимо потому, что это не windows-way ;)

---
Алексей Краснов





--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

зашить AVR

Hi Alexey,

Mon Apr 11 2005 12:10, Alexey Boyko wrote to Michael Zaichenko:


 AB> 11 Apr 05 00:54, you wrote to all:

 MZ>> но некрасиво запускать avreal из
 MZ>> командной строки,
 AB> Почему?
Странно, раз стольким непонятно...
Мне лично командной строки достаточно на 101%

Теперь проблема - надо запустить консольное приложение из gui.
При этом если мы шьем атмегу, то оно мелькнуть не успеет, как все зашет.
А если шьем at90s8535 то шить будет долго. Даже дольше чем понипрог :)
Hадо получить код возврата. Далее, надо сделать перенаправление вывода
в гуевое приложение, можно например запустить батник и перенаправить в файл.
тупо, просто, но некрасиво, и при этом надо еще код возврата получить, не
батника. При этом вывод я получу только по окончании работы. Хорошо, можно
повыпендриваться и сделать поточный фильтр. Hо вроде могут быть глюки на
98ых , а по ряду причин на производстве стоят именно они.

Есть вариант хитрозадого перенаправления вывода, был пример в MSDN, но
мне просто скучно и лениво писать сей изврат :)
А прилинковать dll и вызвать тройку или например 20 ее вызовов, это
элементарно, и все цивильно и красиво. работает красиво, решение красиво.

Кстати с перенаправленым выводом можно сделать примитивный парсинг и делать
вывод на русском, мой юзер будет кипятком от восторга писать.

Ладно, раз нет готовых интересных решений, то будем заниматься извращением.

ЗЫ. написать 1000 батников на все случаи жизни и развесить ярлыки - не
предлагать. Мне не вопрос заставить гую генерить и запускать эти батники.
Просто это _выглядит_ для _гуевого_ _пользователя_ некрасиво.

ЗЗЫ. Вопрос о том, как решается проблема зашивания моря прошивок на
производстве остается в силе.

WBR, Michael


Re: зашить AVR

Michael Zaichenko сообщил в новостях следующее:

Quoted text here. Click to load it


  Мы используем для аналогичной цели программатор
http://www.fulcrum.ru/Read/avr_cable.htm
  Мне он нравится в первую очередь тем, что обеспечивает
гальваническую развязку компа и возможность связи с прошиваемым
устройством по SPI.
  Выглядит это так - у настройщика гуевое приложение, в котором он
жамкает кнопочку, по ней вначале заливается специальная тестовая
прошивка, то же приложение, управляя устройством по SPI производит
тестирование и после прохождения тестов заливает рабочую прошивку.

  Для работы собс-но с программатором написан компонент для
CBuilder, инкапсулирующий его свойства и методы (п 2.5). Компонент
бесплатный, если надо - бери, пользуйся.
  Одна из программ, работающая по такой схеме
http://www.telemak.ru/files/testas008.rar (это для наших устройств,
просто как пример)

Примите уверения в совершеннейшем к Вам почтении





зашить AVR
Hello Michael.

12 Apr 05 00:08, you wrote to me:

 MZ>>> командной строки,
 AB>> Почему?
 MZ> Странно, раз стольким непонятно...

 MZ> зашет. А если шьем at90s8535 то шить будет долго. Даже дольше чем
 MZ> понипрог :) Hадо получить код возврата. Далее, надо сделать
 MZ> перенаправление вывода в гуевое приложение, можно например запустить
 MZ> батник и перенаправить в файл. тупо, просто, но некрасиво, и при этом
 MZ> надо еще код возврата получить, не
 MZ> батника. При этом вывод я получу только по окончании работы. Хорошо,
 MZ> можно повыпендриваться и сделать поточный фильтр. Hо вроде могут быть
 MZ> глюки на 98ых , а по ряду причин на производстве стоят именно они.

Бедные вендузятники. ;)

 MZ> Есть вариант хитрозадого перенаправления вывода, был пример в MSDN,
 MZ> но мне просто скучно и лениво писать сей изврат :)

В юниксе есть ровно один способ перехвата вывода программы, и он всегда
работает.

ps: Hо насколько я знаю, перехват в винде сделать таки можно. Было бы желание.

pps: Я когда-то даже в досе делал. ;) Конечно, работало не со всеми
программами, мне нужно было, что бы работал tpc. Итого - компиляция паскаля шла
в окошке моей программы.

Alexey


Re: зашить AVR
Здравствуйте.

MZ> А если шьем at90s8535 то шить будет долго. Даже дольше чем
MZ> понипрог :) Hадо получить код возврата. Далее, надо сделать
MZ> перенаправление вывода в гуевое приложение, можно например
MZ> запустить батник и перенаправить в файл. тупо, просто, но
MZ> некрасиво, и при этом надо еще код возврата получить, не батника.
MZ> При этом вывод я получу только по окончании работы. Хорошо, можно
MZ> повыпендриваться и сделать поточный фильтр. Hо вроде могут быть
MZ> глюки на 98ых , а по ряду причин на производстве стоят именно они.

MZ> Есть вариант хитрозадого перенаправления вывода, был пример в MSDN, но
MZ> мне просто скучно и лениво писать сей изврат :)

Кстати, я просто взял, да и сделал перенаправление вывода avreal в editbox
моей оболочки. В течение рабочего дня. Ты же из-за того, что "скучно и
лениво" потерял как минимум два дня, обсасывая эту тему здесь.

---
Алексей Краснов





--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Re: зашить AVR

Hi Alexey,

Tue Apr 12 2005 09:26, Alexey Krasnov wrote to Michael Zaichenko:

 MZ>> Есть вариант хитрозадого перенаправления вывода, был пример в MSDN, но
 MZ>> мне просто скучно и лениво писать сей изврат :)

 AK> Кстати, я просто взял, да и сделал перенаправление вывода avreal в
 AK> editbox моей оболочки. В течение рабочего дня. Ты же из-за того, что
 AK> "скучно и
 AK> лениво" потерял как минимум два дня, обсасывая эту тему здесь.
Мне не жалко эти "два дня". Просто хочу знать, как народ решает задачу
зашивания микробов на производстве.

WBR, Michael


зашить AVR
Привет Michael!

12 Apr 05 01:08, Michael Zaichenko писал Alexey Boyko:

 MZ>>> но некрасиво запускать avreal из
 MZ>>> командной строки,

 MZ> Теперь проблема - надо запустить консольное приложение из gui.

    Зачем? Чем существующий интерфейс не устраивает? Может быть, если ты
сформулируешь проблему конкретнее, кто-нибудь подскажет решение...

    [...]
 MZ>  Hо вроде могут быть глюки на 98ых , а по ряду причин
 MZ> на производстве стоят именно они.

    Hесколько лет назад у меня на компе была кака-98, и я не испытывал
трудностей ни с запуском, ни с получением кода возврата, ни с чтением вывода (а
зачем технику в цехе читать вывод? ИМХО единственное, что ему надо знать, это
"OK" или "не OK").

 MZ> ЗЗЫ. Вопрос о том, как решается проблема зашивания моря прошивок на
 MZ> производстве остается в силе.

    Ответ "использованием cvs" остается в силе. :)

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Смотрю куда глаза глядят...

Site Timeline