Перейти к содержанию
    

andk

Свой
  • Постов

    215
  • Зарегистрирован

  • Посещение

Весь контент andk


  1. Код в студию! Эктрасенсов нет здесь :)
  2. Сделать компонент и включить в проект (ну и в топ исходник, естес-но)
  3. Multi, MIPS, wiggler

    Idt/sim есть. Могу положить куда скажете. Еще есть несколько мониторов, но я их не компилировал, не могу ничего сказать.
  4. Вам абсолютно правильно сказали по поводу задержек в обработчиках прерываний - скорее всего там и проблема. Если я правильно разглядел исходник, вы не конфигурируете WDT (оставляете по значение умолчанию), а оно соответствует ~16мс. То есть, попадая в прерывание с задержками более чем 16мс собака гарантировано кусает. Поэтому в прерываниях нужно делать только абсолютно необходимые действия. (В Вашем случае - установить флаг о том, что прерывание было. Все.) А обработку событий перенести в основной цикл. И не забывать о периоде WDT. Если процедура длинная (по времени естес-но) вставить код сброса WDT. Сейчас в тупую можете поставить сбросы WDT в обаботчик прерывания, скорее всего поможет. 2 kertis Успокойтесь, творческий подход в этом случае не поможет :) У этого проца НЕТ возможности узнать причину сброса.
  5. 1. Запостить сюда исходник (Экстрасенсов тут нет) :)
  6. Проверочный пост

    Гхм... На мой взгляд здесь уже достаточно красиво для постов :) Когда начинать?
  7. Еще есть LanExplorer от www.SunRiseTelecom.com. Платный, удобный, красивый и лекарство в инете. Хотя EtheReal мне тоже нравится. Я их вместе пользую.
  8. Доступ к EEPROM в IAR

    Эти функции не библиотечные. Они описаны и реализованы в intrinsics.h
  9. Ух ты! А что уже есть Multi 4.07? А где бы его качнуть? И про Адама я не знал. Смотрю на него усиленно :) >>MIPS® SDE - не пробовал, в linux перезагружаться некогда... Да она виндовая, не нужно никуда перегружаться...
  10. Угу, оно. MIPS.com, вы правы. Спасибо за ссылки, посмотрю
  11. Спасибо за ответы. Поплакался в жилетку, блин, легче стало :) Грин хил снес к черту, буду расковыривать SDE-MIPS от MIPS.org (бывший Algoritmics) - весь ГНУтый насквозь.
  12. Спасибо за ссылку, посмотрю. Ну может и не с...и :) Кроме досады на каждом шагу у меня других положительных чуств не возникло. То не поддерживают мой проц, то кривое как у выше описанного, то еще какая фигня. Вроде и процы хорошие а время я убиваю на вылавливание плохо документированных фич, поиск ошибок в "примерах" и на борьбу с софтом. Про гнутый софт - отдельная песня. Скомпилировал проект в грин хиле - не могу загрузить в проц! Фантастика! ELF не грузится, потому что как выяснилось, IDTSIM(монитор/отладчик живущий в пзу) может грузить только 6 программных секций, а грин хил, который вобщем-то на бумаге поддерживает этот IDTSIM делает запросто 16 секций. Ну ладно, не можешь ELF - грузи Srec. Фиг там!!! Вчера дошел до очередного сладкого места - при превышении какого-то обьема кода при загрузке грин хил не дожидается от IDTSIMа промпта-готовности и говорит "тайм-аутнах". Настройка тайм-аута есть, но не работает. Все. Приплыл. Сижу и думаю "Ну что, еще и загрузчик свой писать с отладчиком?" С другой стороны я уже почти созрел купить нормальный софт, только куда смотреть?
  13. Да я так и сделал, когда увидел что мне нагенерил компилятор. Но "Абыдно, да?". Вообще общее впечатление от софта для разработки мипсов - какое-то все кривое, убогое. Уже пожалел, что связался с этими процами.
  14. Да нет, сильно похоже на глюк компилятора. У мипсов в векторах прерываний должно быть или переход на функцию либо сама функция. Wigglera у меня нет, отлаживаюсь через Com порт. Хотя враги пишут, что поддержка есть.
  15. Попробовал писать для MIPS на Green Hills MULTI v4.0.5 и наткнулся на такой прикол: Пишу процедуру прерывания по примеру из их документации: Процессор - IDT 79RC32355 __interrupt void foo(void); int main(int argc, char *argv[]) { bla-bla-bla } #pragma intvect foo 0x80000200 __interrupt void foo() { bla-bla-bla } Компилируется, линкуется на ура. Не работает. Смотрю под отладчиком - в 0x80000200 лежит АДРЕС функции foo!!!! А должен быть либо переход на нее либо сама функция должна там расположиться. Еще один прикол связан с генерацией ELF файла: В линкерном скрипте для секции ставлю атрибуты "NOLOAD" В ELF вижу - ВСЕ программные секции с атрибутом "LOAD" Кто нибудь сталкивался ? Может что-то не так делаю? Искал на сайте у зеленых - не нашел ни патчей, ни еррат - Ну не верю что софт у них безглючный!
  16. Ээээ а почему вдруг описание портов (я подозреваю что это пины микросхемы) стали не std_logic а integer? Может так правильнее: port (Read_Write : in std_logic; Data_in_out : inout std_logic_vector (7 downto 0); Data_in : in std_logic_vector (7 downto 0); qata_out : std_logic_vector (7 downto 0) );
  17. 2 mkalexey: <Извините, а Вы с кем переписывались? Можно мне тоже попробовать? Дайте, если можна, адресс по личке или аське. > Да, вот была где-то у меня бумажка - потерял, блин.... Да вообщем-то история была такая: Я сказал своему поставщику: - Хочу проц TMS320C6455 (с гигабитом на борту) - Дык его еще нет на рынке, знаю что есть у Интела что-то подобное - Ну скажи, что есть и почем. Видимо дальше он связался с Интелом, оттуда и пришло сообщение которое я вам ранее приводил. Кстати, инженерные образцы TMS320C6455 появились, но цены мне не нравятся Из последней переписки: < На данный момент можем поставить: 1. ZTZ7 (720 МГц) от 2 шт. по $357 за 7-8 недель. 2. ZTZ8 (800 МГц) от 1 шт. по $434 за 7-8 недель. 3. ZTZ7 (1000 МГц) от 1 шт. по $511 за 7-8 недель. Цена дана без учета стоимости доставки. Конечно цена на образцы выше, чем на партию (в данном случае 200 шт - это большая партия). >
  18. "А как из нескольких процессов управлять одним сигналом ? Можете кусочек кода выложить." Ну не делается так. Основная причина - процессы выполняются параллельно. Это означает, что значение выходному сигналу может присвоить несколько процессов сразу. Что получится на выходе? Как разрулить? Делаются промежуточные выходные сигналы, каждый в своем процессе. Потом в специально выделенном процессе получаешь из промежуточных один выходной(ные). Да, можно использовать Z состояние, но, опять-таки внутри одного процесса. Только для того, чтоб иметь в каждый момент времени определенное состояние выходного сигнала. Пример: entity DataBus is port ( Data : inout std_logic_vector (3 downto 0); Rd : in std_logic; Wr : in std_logic; Res : in std_logic; Clk : in std_logic ); End DataBus; architecture behav of DataBus is signal WrData : std_logic_vector (3 downto 0); signal RdData : std_logic_vector (3 downto 0); process(Res,Clk,Data,Rd,Wr) begin if(Res='0') then Data <="ZZZZ"; else if(Clk'event and Clk='1') then if(Rd='0') then Data <=RdData; elsif (Wr='0') then WrData <= Data; Data <="ZZZZ"; else Data <= "ZZZZ"; end if; end if; end if; end process; end behav; Примитивная шина данных. По сбросу - в Z состоянии. По клоку - По сигналу Rd - выдаем на шина волшебное число. По сигналу Wr - Выходные буфера - в Z, со входных читаем в переменную WrData. Во всех остальных случаях - Z. Этот же пример можно развить в твой вопрос (см начало) - данные для записи на шину и прочитанные с шины обрабатываются (готовятся) без проблем в других процессах. Опять-таки примитивный пример: process (Res,Clk,Data,Rd,Wr) begin if(Res='0') then RdData <="0000"; WrData <="0000"; else if(Clk'event and Clk='1') then if(Wr='1' and Rd='1') then if(WrData="1010") then RdData <="0101"; else RdData <="1111"; end if; end if; end if; end if; end process; Вот, получи. Данные готовятся в одном процессе, на улицу выводятся в другом процессе. И т.д.
  19. Infineon-ы дают доки под NDA, сомневаюсь что кто-то поможет кроме них.
  20. Насколько я понял, на эту штуку обращает внимание симулятор, синтезатору пофиг.
  21. Типичные ошибки начинающих.... Выходной сигнал должен обрабатываться в одном процессе. Ну в самом деле - ты же не соединяешь несколько выходов вместе! Видимо есть несколько путей В комбинаторике: pci_transaction <= nAds and nRst and (not nBlast); Недостаток - если между входными сигналами есть гонки - получишь "иголки" на выходе. Поэтому часто рекомендуют делать синхронные схемы. Соответственно, нужен Clock. В твоем тексте есть Lclk - это видимо он и есть? Если да, тогда должно быть что-то типа такого: process(nRst, Lclk,nAds,nBlast) begin if(nRst='0') then pci_transaction <= '0'; elsif (Lclk'event and Lclk='1') then if(nAds='1') then pci_transaction <= '1'; elsif(nBlast='1') then pci_transaction <= '0'; -- else pci_transaction <= еще что нибудь; end if; end if; end process; если сброс - понятно, держим выходной сигнал. по фронту (можно по спаду) смотрим на nAds и nBlast и пытаемся выходной сигнал привести в соответствие. Обрати внимание, в описаном примере схема получилась приоритетная - активный nAds будет иметь приоритет над активным nBlast.
  22. Во-во, оч ехидно узнать, настоящая ли цифра :)
  23. Из моей переписки по поводу Ixp2400: "Интел оценивает работу по дизайну продукта на нём, как требующую 10 софтовых инженеров и 2 года работы… И Интел должен убедиться, что дизайн клиенту по силам. Это делается для того, что бы получить от Интела полную техническую поддержку по этому продукту (продукт редкий и сложный, инженеров по нему не так и много, и решение на тех. поддержку принимается в индивидуальном порядке)."
×
×
  • Создать...