ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
99946 Топик полностью
Evgeny_CD, Архитектор (17.09.2007 23:59, просмотров: 207) ответил AlexandrY на Такие задачи решаются в MATLAB.
Спасибо за замечательную идею! Вы, как всегда, предлагаете замечательное решение! Но если я пойду по такому пути, боюсь, в конце придется "убицца ап стенку". Моя цель не дисер, а конкретный код для конкретной железяки. "Текст на Cи перепесывается на язык M." - вот этого и хотелось бы избежать! Я хочу симулировать именно целевой код. Алгоритмы там не тривиальные, почему не уверен в легкости такого преобразования. "А можно и тупо вставить свой код на С в S блок в Matlab Simulink-e" - в надстойках над моим кодом будет масса отладочных фишек, симуляция псевдо реального времени и пр. Win32 я тоже собираюсь юзать нипадеццки. Я как-то не уверерен в том, что после всей этой икапсуляции суть исходного кода сохранится. Я борюсь вот за что. Большая синхронная система. Девайсики 99,9% времени спят. У каждого свой кварец (или ваще RC генератор), которые плавают у каждого по своему. На каждый девайсик действуют случайные сигналы, которые он должен передать в центр. В эфире носятся случаный помехи. База может перезапуститься и начать перестраивать синхронизацию. У софтины девайсика есть несколько десятков параметров, влияние каждого из которых на конечный результат не очевидно. Да еще несколько вариантов подалгоритмов, из которых надо выбрать оптимальный. И я хочу поставить массу численных экспериментов, дабы потом, на основании большой статистики, выбрать оптимальные параметры и алгоритмы. Заодно, ествественно, проверить код "от и до". Глюки при переходе (ANSI C Win32)->(C targer divice) меня не пугают. Я представляю себе, как испытать готовый бинарник. Это немного другие испытания, и их не трудно провести. А вот испытать 1к девайсов "на столе", да еще и собрать с них статистику - это уже малореально. Понятно, что полностью все не выловишь, но на такой симуляции я хорошо научучь понимать поведение системы. И глюки, if возникнут в реале, уже будет гораздо легче локализовать. Парадокс, но до меня только сейчас начинают доходить все перспективы использования С компилера на Win32. Смешно звучит, но об этом мне как-то не доводилось читать. Если отбросить все, то на пысюке у нас есть: * хорошая ОСька, сервис которой - подмножество сервисов uCOS (как пример). Можно не мудрить с синтетическим портом ОСи, можно писать под "тонкую прослойку", которую самому же можно и написать :) * хорошо проверенный компилер (можно долго спорить о качестве Win32 компилеров, но то, что они порядком обезлючены - 100%! Еще бы, такая база инсталяций :) * неграниченные возможности по логированию, анализу и красивому представлению результатов (вот где Matlab будет возможность развернуться! Это Вам не осцилклом ловить дергание пина на порту) * возможность симуляции реального времени. Последнее особенно интересно :) Банально, но только сейчас дошло, что в синтетическом порту можно ввести понятие "виртуального реального времени", и к нему привязывать все симулируемые события! Чуть-чуть переделать код, и он станет полность незазависим от "реального" реального времени. Т.е. между двумя тиками некого условного генератора, который в жизни тикает на 100 Мгц, можен пройти несколько часов - точность симуляции от этого не нарушится. :) А что касается экономии времени Win32, то нефиг симулировать все тики 100 Мгц подряд :)))) Нужно иметь некий "базовый гипервизор", который будет формировать "сетку событий" вдоль оси "виртуального реального времени". Непустые точки обсчитывать, а пустые интервалы пропускать. Так можно симулировать гораздо быстрее реального времени :)))