Jump to content

    

alexPec

Свой
  • Content Count

    1481
  • Joined

  • Last visited

Community Reputation

0 Обычный

About alexPec

  • Rank
    Профессионал
  • Birthday 07/02/1981

Контакты

  • ICQ
    Array

Recent Profile Visitors

6286 profile views
  1. У них есть исполнения с SDRAM и c DDR. Модель DDR есть и моделируется. А у меня чип с SDRAM - модели нет, написал поведенческую только.
  2. В качестве стороннего отзыва о GOWIN (личные впечатления): среда - проще некуда, все понятно, можно даже мануалы не читать :) Связка встроенный Cortex - ПЛИС - взял из примера, чуть доработал, все сразу заработало. Даже встроенным осциллографом не пришлось копаться. Разработка для CPU - обычный Eclipse. Проект под GW1-4C компилируется секунд 20-30. Отлаживать - милое дело. Погонял пару устройств на -40..+85 (пока до чипа GW1-4C руки дошли) - все ок, запускается, работает. Другой проект перетаскиваю на GW2 - там посложнее, с LVDS трансиверами на 500+мбит. Сейчас на этапе моделирования с говиновскими блоками все отлажено, работает (со встроенной SDRAM). Жду плату, буду отлаживать в железе. В целом, приятные впечатления. Думал будет все сырое, с глюками. Но пока ни одного глюка не словил. Все вопросы быстро решились через поддержку (спасибо StewartLittle!). Как по мне - достойная замена MAX10 ( и кстати, lattice - я еще ICE5LP4K заменил на GW1-4C) на сегодняшний день - и по цене, и по доставаемости, и по функционалу.
  3. Жесть... Помнится, по 500 р их покупал недавно, но в другом корпусе Ну у меня расход плисов небольшой, поэтому перед тем как переползать, за закупился небольшим запасом.
  4. Тут где-то пост был, участник писал, что ему 10M08 за 700+$ предлагали :) Сам я тоже с макса 10 соскочил, как раз по причине недоставаемости (а если и доставаемы - то цена неадекватная). Весной когда разработка начиналась, они стоили 1700р. А осенью разработка закончилась. И максы закончились, сейчас вон за 700+$ ... Советую глядеть на GOWIN GW2. У меня проект перетащился нормально. И LVDS есть, и частоты нормальные держит, и память (!) встроенная на 64мбит. И стоит копейки.
  5. Спасибо! Все работает по Вашему варианту!
  6. Так вообще синтаксическая ошибка говорит. пробовал так: volatile ramext [256] __attribute__((at(0x40002400))); .. .. ramext[4] = 0x12345678; тоже не работает. Под "не работает" подразумеваю отсутствие сигнала CS на шине внешней периферии. Т.е. процессор не попадает в нужную область памяти. Хочу попасть вот сюда (обвел красным): Там диапазон 256 байт (я хочу захватить 4 мастера, т.е. 256 слов по 32бит). Но это не суть. CS мастера APB1 активируется пока только в одном случае: __IO int* port = (int*)0x40002400; *port = 0x12345678; А мне надо чтобы адрес (или смещение) было в переменной... Не думал что на ровном месте будет такая засада. Уверен, что какая-то мелочь, связанная с атрибутами, но как известно, все мелочи знают только профессионалы, к которым в области программирования ARM я себя не причисляю :)
  7. Так не работает. Если без +i, то работает. Неважно какое i, даже если 0 не работает
  8. Сами-то понимаете, наверно, что ваш пост абсолютно бесполезен. Можно было просто посмотреть и не отвечать. Знаете как - напишите, не знаете - зачем мусорить в теме? Update: и это скорее не про С, а про компилятор и как этот компилятор обрабатывает атрибуты. Сам естественно тоже копаюсь. Но дополнительно спросил тут - если кто-то знает, то поможет сэкономить время на поиски. Компилятор кстати, GNU ARM для Cortex-M3
  9. Всем доброго дня! Осваиваю процессор в ПЛИС GOWIN, там для доступа к периферии для внешних шин выделены адресные пространства. Так вот если я обращаюсь к этому адресу (в частности, 0x40002400) вот так: *(0x40002400) = 0x12345678; то ничего не происходит. А если так: __IO int* port = (int*)0x40002400; *port = 0x12345678; То все нормально. Теперь мне понадобилось обращаться к диапазону регистров по этому же адресу размером 256 слов. Пытаюсь сделать так (i - число от 0 до 1024 кратно 4, т.к. в слове 4 байта): __IO int* port = (int*)0x40002400; *(port+i) = 0x12345678; Ничего не происходит. Пока на этом фантазия кончилась. Вопрос: как обращаться к порту по адресу, который хранится в переменной, а не объявлен заранее как порт с атрибутом __IO ?
  10. А по Fmax на LVCMOS18 смотрели? Обычно по LVDS (ну по крайней мере в моих задачах) гоняют сотни мегабит.
  11. Тоже были в проекте, по причине дешевизны и доставаемости. Сейчас ни того, ни другого. Пришлось переделывать на другой чип...
  12. В wireshark говорит, что все CS верные. Физика на девайсе отличная, она с чем только не работала. Собственно как и свитч - я его тоже куда только не включал. 1. Да, от wireshark работоспособность не зависит. 3. Да, padding использует комп, а девайс все это зеркалит обратно. Это видно при соединении напрямую. 4. Ну wireshark все равно должен показывать все что идет от свитча. А тут вообще пусто...
  13. Нет, ну линк-то как то детектит же. Там в оригинале были link puls периодические. В физике KSZ8041 линк-пульсы тоже идут, я их осциллом вижу. Сейчас преамбулу шлю, 7байт 0х55 (это 5,6мкс), затем d5, затем пакет. Вот и думаю может преамбула маленькая? Или большая? Как на это свитчи реагируют? Свитч точно рабочий. Тот же девайс включаю с другой прошивкой (там МАС- аппаратный, от ниоса, а стек arp, ip, icmp, udp - все программно) - все работает, на той же плате, на той же физике, на той же скорости 10мбит. Так ведь и напрямую с компом соединение работает и с аппаратным стеком. Вот и не пойму в чем разница. Ради эксперимента подключил к другому компу - тоже пинг идет. И только через свитч глухо. Auto negotiation физика на себя берет, там тоже все вроде нормально. А что такое FCS?
  14. Так ведь в ARP нет никаких TTL. Это же в IP ? У меня даже ARP ответный рубится. Девайс его отпраляет (как и в случае с прямым соединением, не через свитч), но от свича уже ничего нет. А напрямую - все ок - и ARP и ICMP идет, и UDP. UPD: А в KSZ8041 при передаче пакета преамбулу надо отправлять (0х55) или сразу 0хD5 и далее пакет? Сейчас 7 байт 0х55 преамбула, 0хd5, а затем пакет. Может тут в чем-то проблема?