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

juvf

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    2

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


  1. Да, получилось. Спасибо. Ну и для полного счастья осталось из кансоли залить полученный jic в epcs...
  2. я примерно также через жик прожигаю. бубном с плясками. написал скриппт который делает два хекса - один из sof, длугой из elf. Потом открываю гуй-конвертер, добавляю туда два хекса и получаю нужный жик. Потом жгу жик другим гуём. Слишком много телодвижений. Но гуи это всего лишь гуи. Наверника конвертирование делается каким нибудь quartus-cpf. И раз гуи принимает хексы, то и кансоль должна принимать хексы и выплёвывать жики. Хочу допилить свой скрипт, чтоб сразу из эльфа и софа прожигалась епцс без флешьпрограмматора. Как бы из hex-ов получить jic без гуи?
  3. Спасибо, то что нужно. А как к этому жику прикрутить программу ниоса? В справке quartus_cpf не нашол как прикрутить hex или elf с программой к жику.
  4. не понятно. Запускаю сигнал таб - при запуске почемуто открывается проект D:/Work/handler3/handler3. Почему? квартус закрыт, все остальные приложения закрыты. Откуда handler3? И от куда ПРОЕКТ в сигналтабе. Ну да ладно, мне совершенно другой анализ нужно провести. Принес на флешке файл нужный *.stp, открываю его. Сигнал таб его открывает, но почемуто в шапке пишит "D:/Work/handler3/handler3 handler3 [i:/Temp/stp1.stp]" и сообщяет что загруженный stp не соответствует проекту handler3. При чём здесь проект handler3? Я вообще другую плату и от другово проекта хочу проанализаровать? Как сменить проект в сигнал табе? игрался игрался.... вдруг произошла фатальная ошибка и винда аварийно закрыла сигналтаб. в процессах видать остался процесс, который занял файл проетка handler3.qpf. Запускаю сново сигналтаб... получаю сообщение Project is already open for file "D:/Work/handler3/handler3.qpf" in another Quartus II software; however, Altera recommends opening only one instance per project. Do you still wish to open the project? Какой проект? Ни чего не понимаю. handler3.qpf - это проект КВАРТУСА, при чем здесь сигнал таб? Нажал No, отказался от загрузки "уже открытого" проекта. Открылся сигналтаб без всяких открытых проектов. Открыл нужный I:/Temp/stp1.stp - ни каких предупреждений... запустил и получил счастье. Проблема решена. Но вопрос открыт: Почему сигналтаб при запуске открывает квартусовский проект и как в сигналтабе закрыть квартусовский проект?
  5. Ни как не могу сменить проект. При запуске открывается какойто левый проект. Он мне не нужет . Открываю свой *.stp но при старте получаю сообщение --------------------------- Quartus II --------------------------- The design has changed. Do you wish to recompile before running the logic analyzer? --------------------------- Cancel &Yes &No --------------------------- А однажды сигналтаб вообще выдал при запуске --------------------------- Quartus II --------------------------- Project is already open for file "D:/Work/handler3/handler3.qpf" in another Quartus II software; however, Altera recommends opening only one instance per project. Do you still wish to open the project? --------------------------- &Yes &No --------------------------- При чем тут проект, ни как не пойму. Я запускаю сигналтаб без квартуса. (скачен бесплатно с программатором в комплекте). В заголовке сигналтаба действительно путь D:/Work/handler3, но что за путь? Проекта? А как проект сменить?
  6. Как в кансоли из хексов или/и из sof получить jic? Как в кансоли прожеч jic-ом плис?
  7. vTaskStartTrace

    у Курница в КиТ-е Я бы хотел оставить работу ртос на .... на ночь или на неделю и трассировочную информацию от vTaskStartTrace скидывать через 232-ой на комп. Как это сделать? Как сделать чтоб трассировочная информация писалась не в буфер, а в консоль? Можно в какой нить задаче организовать выгрузку информации.... но как определить сколько в буфер записалось? Как сделать так, чтоб буфер не переполнился?
  8. однако целый ниокр. время выкраю, проведу такое исследование. а какая конкретно фрам стоит? Может быть.... однако если идет команда чтения..... ну улетел ниос.... Это как он должен улелеть? пошла команда на чтение.... ниос полетел и вместо чтения передал команду Write Enable Latch, потом снял cs, потом выставил cs и передал команду записи и записал кудато мусор. Как-то маловероятно что с Write Enable Latch ниос улетит так, что попортит фрам. вся конфигурация плис хранится в другой памяти, в epcs. Если бы ниос так "летал" то он бы мог и епцс попортить. но случаев разрушения данных в епцс во время чтения замеченно не было и ни от кого ни разу не слышал о таком. думаю что это всётаки фрам виноватая. Буду тест проводить..... процесор не будет выключаться, чтоб не улетал, только фрам буду отрубать. мысль не понял.
  9. 2 maksimp Теоретически вы правы. Сейчас я сделал единождое чтение фрамки при вкл. питания в озу и работа с данными из озу. Это должно снизить вероятность потери данных. Планируется эксплуатация 24 часа 15 лет. Один раз за весь срок службы включили - одна операция чтения. Но я понимаю, что теоретически лошадь, а практически упала. Добавлю копию+црц, добавлю восстановительный код с большим избытком. Думаю, что вероятность выключения питания сразу после включения, да многократно, да с порчей каждый раз новых ячеек теоретически равна..... это всё похоже на теорию о бесконечных обезьянах. Но всё таки ваше доказательство заставило прибегнуть к ещё нескольким мерам предотвращающим случайное пропадание питания. Но это уже выходит за рамки вводной. Всем спасибо
  10. 2gerber Вот это мысль! Спасибо. По диагонали глянул в вики - вроде должно решить проблему... Наверняка есть готовые библиотеки с реализацией Рида-Соломона? Случайно у вас нету? Есть же всякие алгоритмы с избыточным кодированием с возможностью восстановления.... можно свое что-то написать. но я думаю что велосипед уже изобретён.... Кто может ещё, что-то посоветовать, какие нибудь алгоритмы восстановления? 2Plain Не совсем понятно что и кому вы хотите показать? Несостоятельность моего девайса, я не собираюсь это оспаривать, или свою несостоятельность как инженера? Решить проблему перезапуском плат - любой сможет... любой школьник встретив такую трудность скажет - "перезапуск плат". Была бы возможность перезапуска плат - я бы тут даже не постил тему. Перезапустил бы молча. Но зачем компании нужен такой инженер, который не может решить "невыполнимые" задачи. Архимед один выполнил задачу которую не смогло решить 100500 рабочих(солдат) - столкнуть корабль. Придёте вы на собеседование к работодателю.... дадут вам тест "программно сделать безопасное чтение/запись фрамки без контроля питания". Что вы им скажете? "Ну да, чтобы заменить им пару соплей и резисторов, с гордостью отвергнутых чуть выше:". А другой кандидат применит Рида-Соломона и/или разберётся со строением фрамки и предложит живучий алгоритм сэкономив тем самым компании 1000нефти. Понятно, что всех как магнитом тянет на аппаратное решение проблемы. Но аппаратно не возможно. Я могу обосновать почему невозможно, на несколько страниц расписать... но зачем? Скажу просто: Вводная: (2Plain считай что это абстрактная задача, допустим математическая олимпиада) программно сделать безопасное чтение/запись фрамки без контроля питания и без аппаратного вмешательства ps 2Plain возможно вы правы на счет невозможности. и у вас есть такой опыт.... т.е. вы пробовали применить разное избыточное кодирование с восстановлением и применительно к фрамке это не работает... т.к. во время окончания последнего 8-го бита данных в фрам открывается такой-то транзистор.... происходит выборка строки .... регенерация адреса .... бла бла бла .... В результате чего портится то-то и то-то.... и восстановить такую информацию математически не представляется возможности.... Самую низкую вероятность сбоя показал восстановительный код Иванова-Сидорова, но при прогоне в климатической камере при t<-10°C и при t>50°C частота возникновения ошибки увеличиваются и вероятность сбоя возрастает до такой-то величины. ..... Конечно если предоставить компании подобные доводы и/или результаты исследования, то будут искаться другие пути решения проблемы. Но пока тупо - "Так сделать невозможно" или "Если платы не работают, они не сделаны. Можно повторять это бесконечное число раз, ничего не изменится." выглядит как маза. Один инженер обосновал мне теоретически, на низком уровне (строение фрам), что црц+дублирование не поможет. Но с др. стороны практик У меня данных немного, 100 байт, две копии влезут в один банк и возможно таких проблем действительно не будет.
  11. Продавать. слишком дорогая партия чтоб перевыпускать и слишком длинный цикл производства. Поэтому проблему будем решать и решать ТОЛЬКО программно. Делать хитрый алгоритм на фрам.... или если найдем аналог пин2пин..... хотя это тянет за собой исправление в конструкторской документации, в покупных ведомостях и т.п. ..... а это ещё сложнее.... или можно попробовать использовать EPCS, она на плате есть, или вплоть до того, что откажемся от хранения данных во фраме. Но платы должны работать без сбоев. И всё таки, по энергонезависимой, памяти кто-нибудь может сказать: "Используй чипы памяти ФТМ*56ххх5, с ними таких проблем не будет"
  12. Нет. Даже если не снимут эти чипы с производства, то новая партия плат будет аппаратно переделана....
  13. Где был ваш вопрос про BOD? Сорри, но я не понял второго сообщения Что значит "что"? Я же в вопросе сказал "для конфигурационных параметров, серийного номера и т.п.". Или "что" имеется в виду какой процессор управляет записью? ПЛИС(цыклон)+НИОС. Питание одно. Отключить не возможно. 2Ruslan1 1 проблему не решает. 2 - нет возможности, 3,4,5 - тут можно что-то сделать, но если будет портится несколько ячеек в фрамке случайно разбросанных, то и это не поможет. см сообщение 9, или/и даташит page 3. Фрамкой управляет синтезированый NIOS в ПЛИС Cyclon III. В ней нет BOD (((. если знать точное поведение фрамки при пропадании питания и структуру то можно программно решить проблему. например можно хранить 100 байт. Разбить их на 4 по 25 байт и хранить в начале каждого банка 25 байт. копию хранить в каждом банке по адресам 26-50. Если потрётся 12-ый байт в каждом банке, то попортится только одна копия. Вот только как узнать структуру фрамки? Как узнать что там происходит со строками регенерации и что будет портится? ps. Думаю о будущем.... О будущих разработках плат.... Во первых есть мысли сделать счетчик наработки. Для этого нужно писать в энергонезависимую память что-то, причем довольно часто, например раз в минуту. Что использовать в дальнейших разработках в качестве энергонезависимой памяти чтоб не было таких проблем? Во вторых контроль питания..... я плохо представляю как его организовать с плис..... в неё приходит 5 питаний. на плату приходит +24 и куча источников из них получает разные питания...... можно супервизор поставить на сырое питание..... но, в принципе, допустимо питать плату от +15 в. при +24 плата жрёт 1 А, при 15 будет ещё больше. поставить супервизор на +12.... это уже на +12 потребление будет 2 А. Ахтунг.... если пропадет питание, то сколько у меня будет времени? Всего-ничего. Ставить какие-нибудь мега-конденсаторы..... ионисторы.... тоже не есть гуд. Или вообще вместо фрам поставить какойнить pic или attiny со встроенной епром и BOD.... контролировать только +3,3. ??? Может есть память которая не страдает такими болезнями? Например альтеровская EPCS. по крайней мере при чтении точно ни чего не портится.
  14. рубильнег дернул - вот и попал в эти "десятки наносекунд", за месяц на опытном образце раз 5 уже такое произошло. Причем можно в нормальном режиме, без ИБП только читать фрам, а в настроечном режиме, с ИБП, можно писать. Но баг происходит и при чтении. да и действительно, от куда десятки нс?
  15. моя микросхема FM25CL64. питание по даташиту Voltage Operation 2.7-3.65V. я её питаю 3.3. Смотрю 3-ю страницу: Прям как говорил sgs. У него микросхема очевидно FM25C160 и питается от 5 В.
  16. Ещё раз хочу повторить..... аппаратно платы сделанны. Очень большой объем и очень дорогой. Аппаратную часть ни кто переделывать не будет. Поэотму изыскиваю пути исправить ошибру разработчиков платы программным путём. ну то это понятно, просто сократил, читайте - "Во время отдельной операции записи с явным разрешением и во время отдельной операции чтения". Я сейчас пока так и сделал. надеюсь что обе копии не попортятся. Вот, нашел где я это видел это я и хотел сказать. А что за восстанавливающая запись?
  17. довольно грубо, причем kolobok0 тут не прав. имхо. +1. Как говориться, без комментариев. встретив..... допустим незнакомую аббревиатуру "ООП" не спеши в гугл вбивать "ООП", вбивай "гради буч объектно-ориентированный анализ и проектирование" *ЗАПЕСАЛ* ps очевидно, что у ооп много значений. Почему кто-то решил что тут она означает "проектирование" ..... можно сказать "ООП - Организация освобождения Палестины. Заметьте, Палестины. Т.е. до программирования как до китая ползком на карачках вперёд попой..."
  18. Защита FRAM

    Не нашел лучшего раздела в это форуме Разработан девайс с фрамкой FM25CL64. Фрам воткнули как энергонезависимую память для конфигурационных параметров, серийного номера и т.п. На практике оказалось, что если снять питание с фрамки во время операции чтение/запись, то в ней портятся данные. Как программно решить эту проблему? На достоверность информации можно в фраме хранить crc. Но допустим данные недостоверны - и что? К их восстановить? Есть мысль хранить данные+црц и копию данных+црц. но где-то в инете натыкался на описание такого сбоя... в результате чего допустим 4-ый байт в каждом банке был битый. получается что если испортятся данные, то и копия тоже может испортится. Кто-нибудь решал подобную проблему программно и как?
  19. Обучение FreeRTOS

    FreeRTOS забирает под свои нужды 1 аппаратный таймер. его нужно освободить. Взамент ртос конечно предоставляет таймеры.... но не всегда аппаратный можно заменить программным. если тик == 1 мс, а нужно получить частоту 1 МГц, то ..... тут нужно тик делать 1 мкс. Это не совсем гуд для медленных процесоров (да и для быстрых тоже). если частоты невысокие, то можно программным таймером решить проблему, а если высокие, то тут извращатся придётся.... либо как-то аппаратно настраивать совпадения и обработку этих совпадений.... либо запускать аппаратный таймер на какую-то высокую частоту, а в обработчике прерыванию считать тики в две переменные - вот вам две частоты и руками в прерывании дёргать пины.
  20. хотел глянуть проект. иду по ссылке.... какая-то реклама от гугла с обещянием сделать жысть проще. а где проект? Еще раз попытался, попал на страницу гугла документы с предложением зарегистрироваться. провозился с регистрацией, вроде вот оно бинго.... и вдруг Для доступа к этому элементу требуется разрешение. Вы вошли как [email protected], но у вас нет доступа к этому элементу. Вы можете запросить доступ у владельца или войти в систему под другим аккаунтом. мммда.... новые технологии..... фу блин..... а оно мне надо? почему бы просто не прикрепить архив проекта к теме? ;) ps Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
  21. Обучение FreeRTOS

    непонятно почему компилятор ищет vTaskStartTrace_, мой компилятор ищет vTaskStartTrace. Может символ '_' приписывается в выхлопе компилятора. Нужно искать по всем файлам проекта, включая исходники ртос объявление и определение vTaskStartTrace. И нужно смотреть какими ифами обрамлено определение функции. У меня определение нашлось в task.c, определение обрамлено "#if ( configUSE_TRACE_FACILITY == 1 )". Может нету в вашем проекте task.c
  22. А полный варнинг? Вообще, встать мышкой на варнинг и нажать Ф1. Выскочит подробное описание варнинга и предположение по решению проблемы.
  23. По стандартам изучать - тоже жесть. Есть ещё библия по верилогу.... "Поляков А.К. Языки VHDL и VERILOG в проектировании цыфровой аппаратуры." Там вобще.... см прикрепление.... как по такому учить язык? Посмотрел стандарт на верилог. Описано такое в стандарте. Determinism называица. два назначения. Однако, квартус скомпелял только одно назначение a <= 1;, первое назначение вообще соптимизировал.
  24. +1 пиши или reg [3:0] CurrentBitPosition; или CurrentBitPositionх = NumPosition1[2:0]; // или вообще CurrentBitPositionх = {NumPosition1[3], NumPosition1[0], NumPosition1[1]} или ещё какой изврат смотря какой алгоритм. -1 для модулсима проще, а для квартуса хуже. вместо 4-х битного будет использован ..... 32-х битный. квартус много мяса съест.
×
×
  • Создать...