Re[4]: Оффтопик, но
От: Dzirt2005  
Дата: 17.09.09 10:18
Оценка:
Здравствуйте, bazis1, Вы писали:

B>Здравствуйте, quodum, Вы писали:


Q>>Вы неправы. Есть довольно узкая, но отнюдь не микроскопическая ниша "промышленных PC", которые строятся на контроллерных вариантах x86 (начиная с 80186, хотя nowadays всё же в основном пентиумы) и комплектуются ДОСом на флэш-диске. Погуглите Octagon Systems для примера.


B>Это единственный тип контроллеров, решающих свой круг задач? Абсолютно нет альтернатив? Есть рынок, но на нем нет развития за последние 20 лет? ИМХО, дело в инерционности конторы, не желающей разово вложиться в переход на новое железо с куда более коротким циклом разработки.


Могу сказать с чем столкнулся лично — скорость запуска после подачи питания. Для нас это было критично, а микроконтроллер с DOS стартовал менее чем за 2 секунды (это вместе с BIOS, загрузкой DOS и программой управления устройством). Linux мне не удалось заставить стартовать менее чем за 18 секунд. Это без программы.
Re[5]: Оффтопик, но
От: ДимДимыч Украина http://klug.org.ua
Дата: 17.09.09 10:34
Оценка:
Здравствуйте, Dzirt2005, Вы писали:

D>Linux мне не удалось заставить стартовать менее чем за 18 секунд. Это без программы.


CONFIG_PRINTK пробовали отключать?
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[6]: Оффтопик, но
От: Dzirt2005  
Дата: 17.09.09 16:16
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>Здравствуйте, Dzirt2005, Вы писали:


D>>Linux мне не удалось заставить стартовать менее чем за 18 секунд. Это без программы.


ДД>CONFIG_PRINTK пробовали отключать?


Нет, но попробую. Хотя все равно я сомневаюсь, что он стартует как DOS, за ~1.5 сек...
Re[7]: Оффтопик, но
От: ДимДимыч Украина http://klug.org.ua
Дата: 17.09.09 17:04
Оценка:
Здравствуйте, Dzirt2005, Вы писали:

ДД>>CONFIG_PRINTK пробовали отключать?


D>Нет, но попробую. Хотя все равно я сомневаюсь, что он стартует как DOS, за ~1.5 сек...


За 1.5 сек на PC вряд ли. Но мне удавалось сократить время загрузки с момента включения до старта приложения до 5 сек, на материнке VIA Epia и каким-то Cyrix 1 Ггц. Около половины времени при этом занимала POST BIOS'а.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[8]: Оффтопик, но
От: Dzirt2005  
Дата: 17.09.09 17:47
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>Здравствуйте, Dzirt2005, Вы писали:


ДД>>>CONFIG_PRINTK пробовали отключать?


D>>Нет, но попробую. Хотя все равно я сомневаюсь, что он стартует как DOS, за ~1.5 сек...


ДД>За 1.5 сек на PC вряд ли. Но мне удавалось сократить время загрузки с момента включения до старта приложения до 5 сек, на материнке VIA Epia и каким-то Cyrix 1 Ггц. Около половины времени при этом занимала POST BIOS'а.


У меня CPC303 на AMD Geode на 133/233/300 МГц. BIOS какой-то специальный, производитель гарантирует 400 мс от снятия сброса до начала загрузки системы.

Вобщем, я попробую. К сожалению прямо сейчас у меня нет доступа к этому контроллеру, а информацию я себе оставил. Спасибо
Re[8]: Оффтопик, но
От: MaxGl Украина  
Дата: 17.09.09 20:29
Оценка:
Здравствуйте, ДимДимыч, Вы писали:
ДД>За 1.5 сек на PC вряд ли. Но мне удавалось сократить время загрузки с момента включения до старта приложения до 5 сек, на материнке VIA Epia и каким-то Cyrix 1 Ггц. Около половины времени при этом занимала POST BIOS'а.
Удавалось-то удвавалось, но ты вспомни, сколько ты времени убил, чтобы этого добиться?
Неавно натыкался на информацию, что кто-то добился времени загрузки (до первой картинки приложения на встроенной системе) равного 2 секундам.
Ну и еще рекомендую в этом направлении поинтересоваться Moblin(просто ради интереса) в частности, а также творчеcтвом товарища Arjan van de Ven (начать можно здесь)
Re[9]: Оффтопик, но
От: Voinov Россия http://www.svoinov.ru
Дата: 23.09.09 19:46
Оценка:
Здравствуйте, MaxGl, Вы писали:

MG>Здравствуйте, ДимДимыч, Вы писали:

ДД>>За 1.5 сек на PC вряд ли. Но мне удавалось сократить время загрузки с момента включения до старта приложения до 5 сек, на материнке VIA Epia и каким-то Cyrix 1 Ггц. Около половины времени при этом занимала POST BIOS'а.
MG>Удавалось-то удвавалось, но ты вспомни, сколько ты времени убил, чтобы этого добиться?
MG>Неавно натыкался на информацию, что кто-то добился времени загрузки (до первой картинки приложения на встроенной системе) равного 2 секундам.
MG>Ну и еще рекомендую в этом направлении поинтересоваться Moblin(просто ради интереса) в частности, а также творчеcтвом товарища Arjan van de Ven (начать можно здесь)

Не так сложно написать свой BIOS, учитывая то, что современные программаторы микросхем Flash-памяти стоят весьма адекватных денег. Единственная проблема — инициализировать системную память. Тут нужно программировать конкретный чипсет (хотя современные в этом плане довольно стандартизированы) — регистры MTTR для отображения физических модулей памяти на физическое адресное пространство ЦП. Можно также использовать кэш ЦП как оперативную память. Есть книжка "BIOS. Дизассемблирование. Модификация. Программирование.". На платформенном симуляторе типа Bochs или Qemu можно поиграться.
Re: Взаимодействие приложений в DOS
От: Voinov Россия http://www.svoinov.ru
Дата: 23.09.09 19:48
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый вечер.


А>Я начинающий программист, и у меня возникла проблема. Это проблема настолько общего характера, что это меня тревожит. Возможно, я выбрал неудачную тему для своего вопроса, поэтому заранее прошу прощения у модератора, если это так.


А>Итак, есть некий комплекс ПО (несколько программ и драйверов), которые работают на контроллерах под управлением (если я правильно понимаю) ОС DOS. Мне поручено разобраться в одной из этих программ, но вот затык: одна из самых важных функций в коде программы не вызывается. Вообще! Тем не менее, известно абсолютно точно, что она выполняется. И вот вопрос: каким образом? Есть предположение, что функция вызывается из другой программы, точнее из драйвера, т.к. эта программа работает в содружестве с драйвером — так ли это? Если да, то что это за механизм и где про него прочитать? Если нет, то как еще это объяснить?


Если процессор класса i486 и выше, то можно просто поставить аппаратную точку останова на нужном адресе и потом уже смотреть, кто вызвал эту процедуру.
Re[9]: Оффтопик, но
От: ДимДимыч Украина http://klug.org.ua
Дата: 24.09.09 14:55
Оценка:
Здравствуйте, MaxGl, Вы писали:

MG>Удавалось-то удвавалось, но ты вспомни, сколько ты времени убил, чтобы этого добиться?


Там параллельно и другие задачи решались, так что сколько именно на это — трудно сказать. Да и со многим с нуля приходилось разбираться, а при отсутствии инета под рукой практически единственный разумный путь — экспериментальный
Но даже отключение только printk() дает заметный выигрыш в скорости загрузки, как по основной причине — не тратится время на вывод сообщений, так и по второстепенной — уменьшается размер ядра и загрузчик его быстрее загружает с носителя.

MG>Неавно натыкался на информацию, что кто-то добился времени загрузки (до первой картинки приложения на встроенной системе) равного 2 секундам.


От требований к системе зависит. Если избавиться от стандартного BIOS'а и разместить ядро прямо в ПЗУ, то вполне нормально.

MG>Ну и еще рекомендую в этом направлении поинтересоваться Moblin(просто ради интереса) в частности, а также творчеcтвом товарища Arjan van de Ven (начать можно здесь)


Coreboot еще можно приспособить.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[3]: Взаимодействие приложений в DOS
От: wallaby  
Дата: 24.09.09 15:47
Оценка:
Здравствуйте, Privalov, Вы писали:

K>>Всем спасибо за ответы. Все гораздо проще: функция все же вызывается из этой программы, но настолько залихватским образом, что я чуть не сломал себе мозг. В общем, обожаю ООП. Сорри тем, у кого отнял время, это, как говорится, меа кульпа.


P>Можешь озвучить подробности? Мало ли, кому-то покажется интересным, а у других, кроме того, выжмет скупую мужскую слезу.


Наверное открыл для себя таблицы виртуальных (или того хуже динамических) методов, но молчит.
---
The optimist proclaims that we live in the best of all possible worlds; and the pessimist fears this is true
Re: Взаимодействие приложений в DOS
От: eagersh  
Дата: 27.09.09 18:44
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый вечер.


А>Я начинающий программист, и у меня возникла проблема. Это проблема настолько общего характера, что это меня тревожит. Возможно, я выбрал неудачную тему для своего вопроса, поэтому заранее прошу прощения у модератора, если это так.


А>Итак, есть некий комплекс ПО (несколько программ и драйверов), которые работают на контроллерах под управлением (если я правильно понимаю) ОС DOS. Мне поручено разобраться в одной из этих программ, но вот затык: одна из самых важных функций в коде программы не вызывается. Вообще! Тем не менее, известно абсолютно точно, что она выполняется. И вот вопрос: каким образом? Есть предположение, что функция вызывается из другой программы, точнее из драйвера, т.к. эта программа работает в содружестве с драйвером — так ли это? Если да, то что это за механизм и где про него прочитать? Если нет, то как еще это объяснить?


Если у вас MS-DOS то проблем вызова программы из драйвера нету. Это 16 битная real-mode где все работает в одном адресном пространстве. Я не знаю какая у вас архитектура software, так как вы не дали практически никаких деталей, но если у вас есть сомнения как работает драйвер то могу дать несколько советов. Может они вам помогут. Пару лет назад меня попросили написать программу по тестированию прерываний I/O модуля. Написать все надо было под MS-DOS. Меня это конечно очень удивило. С MS-DOS я не занимался уже лет 15 тоесть интрументов для написание програм конечно не было.И все надо было сделать за один-два дня. Я нашел и загрузил Turbo C одной из ранних версий которое работает под MS-DOS. С программы которую можно создать на Turbo C можно программировать напрямую железо, включая PIC/APIC . Также можно было создать call back функцию с прерывания. То есть использую Turbo C я смог проверить железо.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.