User Tag List

Страница 6 из 12 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя
Показано с 51 по 60 из 120

Тема: Altera (Cyclone3?) или Xilinx (Virtex5?)

  1. #51

    Регистрация
    23.05.2005
    Адрес
    Санкт-Петербург
    Сообщений
    367
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov
    задача многопоточная (> 5 потоков)
    Более того DevPartner позволяет выявлять deatlock'и в многопоточных программах, и делает это достаточно эффективно.

  2. #52

    Регистрация
    23.05.2005
    Адрес
    Санкт-Петербург
    Сообщений
    367
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov
    эта платная штука
    Ну, бесплатный - только сыр в мышеловке. Делфи - тоже платный продукт. И любой софт для разработки под альтеру - тоже (и не малых денег стоит).

  3. #53

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Проект на паскале, но какая разница. Метод паттернов не проходит. Проверялось и другими средствами, которые заполняют все паттерном. (Не пойму только, а при чем тут MSR'ы всякие? Какой с них толк - если это всего лишь средство получить информацию о возможностях аппаратуры). Там ошибка очень глубокая, наведенная. И наверняка даже не моя, а в одной из библиотек графики. Криворукие программисты, говорите? Вы попробуйте написать 100000 сток кода, и чтобы без ошибки, а я посмотрю. Хорошая ошибка - это которая сразу приводит к сбою. Но есть плохие ошибки. Функция отрабатывает нормально, ничего не происходит. На первый взгляд, и на второй и на десятый. Но где-то в памяти делает что-то не то. И спустя минуты долгого выполнения другая функция в другом месте начинает обращаться к данным, а они какие-то не те. Все случаи предусмотреть нельзя, и прога с грохотом падает. Попробуй теперь догадайся, которая из 10000 функций что-то не учитывает. Это не кривые руки программистов. Это ленивое железо + принцип "программисту доступно все". Я считаю, что сейчас на разработку ПО приходится вбухивать все больше средств и времени и сил - только потому, что слишком много экономии на разработке железа. "Мы не будем делать паровоз, вот вам 100 лошадей, скачите куда хотите". Так получается.
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  4. #54

    Регистрация
    23.05.2005
    Адрес
    Санкт-Петербург
    Сообщений
    367
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov
    Не пойму только, а при чем тут MSR'ы всякие? Какой с них толк - если это всего лишь средство получить информацию о возможностях аппаратуры
    Читайте первоисточник (мануал по процессору от интела том 3 (с сайта интела)), а не русский перевод непонятно кого. В области регистров MSR есть область из 16-32х регистров, которые запоминают последние 16-32 перехода (все виды переходов call/jmp/int и т.д.), просто так этим воспользоваться не удастся, т.к. обработчик исключения Page Fault в первую очередь должен сохранить значения этих регистров (в противном случае в них запишутся переходы, которые происходят внутри обработчика).

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

    Я разрабатываю драйверы режима ядра (для систем на ядре NT) и исходников там порядка 1Мб, однако мне это не мешает находить и исправлять ошибки. Большинство ошибок можно исправить исходя из чисто теоретических принципов. Остальные с помощью контролирующего кода (assert'ов) и всяких там дебагеров и средств типа баундс чекера.

    Понятное дело, что код без ошибок написать очень сложно, но для этого и существуют всякие разные приемы отладки, чтобы исправлять ошибки в том числе и трудноуловимые.
    Последний раз редактировалось deathsoft; 26.01.2007 в 20:52.

  5. #55

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну и какой обычному разработчику (не уровня ядра) от этих регистров, если он может ими воспользоваться. Ошибки ошибками, но есть еще преднамеренный вредоносный код, от которого на x86 не убежать, не спрятаться. Стек программе доступен всегда как адресуемой пространство. В том же самом стеке лежат и адреса возвратов, и локальные переменные, и параметры. Метод паттернов здесь не поможет. Кроме естественных ошибок, появляется возможность найти редкий случай сочетания входных данных и переполнением буфера выполнить код, который никогда не должен был бы выполниться, в случае нормальном. Архитекутура, в которой стеки разделены, и не адресуются как обычная память, исключает такую возможность напрочь.
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  6. #56

    Регистрация
    23.05.2005
    Адрес
    Санкт-Петербург
    Сообщений
    367
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov
    Стек программе доступен всегда как адресуемой пространство. В том же самом стеке лежат и адреса возвратов, и локальные переменные, и параметры. Метод паттернов здесь не поможет.
    Ну, вообще метод патернов со стеком отлично помогает, делается проверка стека после каждого вызова функции, аналогично выявляются непроинициализированные переменные и налезание стека на код.
    В новых x86 есть бит защиты страниц, который разрешает/запрещает выполнение кода с этой страницы, для стека стасятся атрибуты RW, для данных тоже RW, для кода RX, при этом запись в страницы с кодом тутже приводит к исключению, а также попытка выполнени данных и стека.
    Кстати на x86 есть возможность защиты стэка, кода и данных, практически как в компьютерах с гарвардской архитектурой - это использование сегментной модели, когда у каждого сегмента задается его адрес и размер, тогда при переполнении стека вырабатывается исключение Stack Fault. Это никто не использует, потому что компилятор под сегментную модель писать в 100 раз сложнее, поэтому везде и используют упрощенную - FLAT модель. В своей тестовой многозадачной ОС, которую я писал на ассемблере я использовал защиту уровня сегментов и все 3 кольца защиты (как раз дл того чтобы посмотреть какие преимущества это дает), защищенность от ошибок повышается в разы, но компиляторов поддерживающих это нет, а из ОС только OS/2 поддерживала уровни привелегий 0, 2 и 3, все остальные ОС поддерживают только 0 и 3.

  7. #57

    Регистрация
    23.05.2005
    Адрес
    Санкт-Петербург
    Сообщений
    367
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov
    Ну и какой обычному разработчику (не уровня ядра) от этих регистров, если он может ими воспользоваться.
    Так это не проблема железа, а проблема кривых инструментальных средств, которые не поддерживают аппаратуру на которой работают. Тотже отладчик SoftIce поддерживал MSR регистры, но только LastBranchFromIp и LastBranchToIp.

  8. #58

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всего стека? В каждом потоке? Ну вы меня умиляете. Я же говорю: до возникновения ошибки придется запускать прогу на несколько суток тогда.

    Проверять после вызова придется всю память, принадлежащую задаче. Я о том и толдычу, что это нереалистично.

    И потом, представьте себе идеальный мир. Прогу можно написать сразу так, что если в пределах защищенного блока произойдет ошибка, то прога не слоамется, а просто сообщеит, что данный участок данных сбойный, и пропустит его, и дальше пойдет. А может и не сообщать, просто в журнале фиксировать - если задача такая. А сейчас - будьте добры увидеть, что "программа выполнила недопустимую операцию", и полчаса ваших прежних ожиданий накрылись медным тазом. И будьте добры сами методом исключения (например) найти тот кусок данных, который роняет прогу, и удалить их из набора. Пример абстрактный, но характеризует нынешнее положение дел в полной мере. Разработчики даже не пытаются предусмотреть восстановление после сбоя, потому что сбой однозначно испортит общую кучу, доступную всей программе с едиными правами, и дальше пытаться выполнять что-либо просто бессмысленно: восстановление невозможно.

    Нет, конечно, можно организовывать для каждой мелкой задачки свой собственный процесс (упало - главный процесс перезапускает ведомый), но - накладно получается, тормозить будет, причем сильно тормозить.
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  9. #59

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну вот, получил я Quartus II 6.1. Пока не понял, пойдет ли он с лицензией Web Edition, буду сейчас пробовать.

    Ага, вроде идет. Expiration date: 27-Jun-2007. На полгода, то есть. Через полгода новую дадут, если от имени той же сетевой карты / пользователя просить, кто в курсе, скажите.

    Пойду туториал "полистаю"
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  10. #60
    ZEK
    Гость

    По умолчанию

    дают, хотя проще вылечить, в qartus отладчик убогий, можно сказать его там нет.
    Последний раз редактировалось ZEK; 27.01.2007 в 20:51.

Страница 6 из 12 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Altera DE1 - Development and Education Board в раше.
    от fan в разделе Разный софт
    Ответов: 295
    Последнее: 30.01.2014, 22:00
  2. Altera
    от serg.ne@ в разделе Несортированное железо
    Ответов: 60
    Последнее: 24.12.2005, 12:27
  3. Можно ли запихнуть Z80 в ALTERA
    от tilikum в разделе Несортированное железо
    Ответов: 71
    Последнее: 11.07.2005, 20:14

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •