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

Drozd2

Участник
  • Постов

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

  • Посещение

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


  1. Однако Save Current Report Section As... -> Vector Table Output File (*.tbl)
  2. Ссылка уводит в небеса PS в общем понял. Но не все. А случайно нету здесь привычной идиотской простоты, двинул мышку, нажал кнопку, и счастье привалило?
  3. Понимания не добавилось. Можно по пунктам, как для идиота? Буду рад ссылке на параграф хандбука. Читать их по 1500 страниц притомился. 99% текста вода и вата.
  4. Не то, чтобы я вообще ничего не понял, но карта дальнейших действий пока не складывается. Чайник. Наверное, вопрос неправильно спросил. Мне бы получить файл с числами от quartus, потом quartus вообще закрыть и работать только с этим файлом. По меню quartus полазил, все пункты, связанные с сохранением, повыбирал, ожидаемого результата не получил.
  5. С добрым! Вопрос чайника. Среда - quartus 9.1. Вытянул из прошлого, чтоб пошустрее ворочалась. Делаю вычислитель. Работаю с симулятором, который не modelsim. Названия его, виноват, даже не знаю, ключевое слово waveform. Который рисует диаграммы и пишет под ними числа. Есть возможность все эти числа сохранить в файле, чтобы потом использовать для построения своих диаграмм?
  6. Вот это тоже надо бы сразу понять. Тактовый сигнал касается всех логических вентилей, или только избранных? Могу я спроектировать три (или больше) независимых логических схемы на одной ПЛИС?
  7. Вы меня переоцениваете. До языков мне пока далеко. Схема поближе. Пока понял и осознал: Выводы практически равнозначны кроме специального назначения они могут быть только вход или только выход. Но их мало и на них ещё нужно умудриться попасть. Полная аналогия. Но есть нюанс. На россыпи основная задержка на логике. Тут на связях. От себя делаю вывод : если вывод без специального назначения, то можно делать с ним что угодно, если он INPUT/OUTPUT тактирование можно не прикладывать, и ПЛИС отработает выходные сигналы в ответ на входные так?
  8. А чего тут догадываться? Либо ненужные лапы к верху, либо куда-то тянут. В этом и вопрос. Похоже, MegaQuickStart не получится...
  9. Я предполагал, что будет один ответ на уровне да/нет. В своем Hello world проекте выводы я таки назначил. Редактор их принял. Только запустить на выполнение пока стремновато. Там рядом еще запчасти есть. И в них тоже есть синий дым. Я правильно думаю, что по выводам никаких ограничений нет? Ну и про тактирование. Оно обязательно? Или как рассыпуха? И вот еще. Неназначенные выводы остаются в третьем состоянии?
  10. И эту статью, и много подобных я, естественно, прочитал. Одинаково скользко обходят правила назначения выводов. Может, слишком придираюсь, но очень не хочется, чтобы из спартана синий дым ушел. И про тактирование тоже информации нет.
  11. Здрасьте! Пара нубских воросов. Перед глазами прибор со SPARTAN-3E. Руками пока боюсь трогать. В качестве Hello, world в схемном редакторе нарисовал буфер. Просто передача с пина на пин. Теперь вопросы. 1. Надо назначить выводы. Смотрю на двунаправленные. При выборе какая-то разница есть? 2. Тактирование нужно? Или схема будет работать аналогично собранной на рассыпухе?
  12. Здравствуйте! Добавляю пакеты в buildroot. По мануалу. Застрял на пакете, который собирается не в корневом каталоге, а в одном из подкаталогов. Причем сборка начинается с cmake. В качестве шаблона просматривал правила сборки gcc и ulibc. Не сработало. Не осилил. Есть какой-то hello_world по этой теме? Или готовый шаблон на подобный случай.
  13. Точно. Стек протопотоков общий. Переполнение одно на всех. Отработка протопотоков асинхронная. Для 8-битников, на мой субъективный взгляд, очень удобно.
  14. g_serial

    Подключаю плату к компьютеру посредством g_serial. g_serial запускаю без параметров. ttyGS0 в качестве консоли не использую, открываю в программе как порт. termios заполняю так: ios.c_iflag = 0; ios.c_oflag = 0; ios.c_cflag = CLOCAL | CREAD | CS8; ios.c_lflag = 0; Через два аппаратных com работает. Собственно, на них программа была отлажена. Передаются бинарные файлы. Через g_serial текст передается без проблем, а бинарные данные с большой задержкой и с потерями. Пробовал разные размеры блоков. Корректно стало передаваться по 2 байта, но с потерей каждых последующих 2 байтов. В крайнем случае можно на uu перейти, но пока не хочется. Решаемо? Или g_serial не для бинарных данных?
  15. + 5 копеек. Загляните на http://newhavendisplay.com. Выберите нужний дисплей. Через неделю он будет у Вас. И он будет не китайским. За это время успеете детально изучить описание. Но работают только с юридическими лицами. Мой первый заказ на физическое лицо с таможни вернулся обратно. Пришлось попросить в магазине через дорогу от дома принять заказ. Это была Галантерея, но этого оказалось достаточно. Работаю с менеджером Энни Навроцки. Это на всякий случай. У нее уже богатый опыт общения через гуглеводчик. P.S. Через контору покупка происходит прозрачно. Халтура...
  16. Спасибо за информацию. Она породила еще один вопрос. Это связано с тарифными планами, или Билайн так поступает со всеми? Не так просто с этим столкнуться. Для подобных разработок контора выдает корпоративные sim карты с несгораемой суммой. У юридических кустомеров скорее всего будут такие же карты. А вот у физических может всплыть подобная ситуация. Перешел на свою персональную карту. Целенаправленно сжигаю баланс. Надо это увидеть. А выход похоже такой. Запрашивать периодически баланс, если чего запрашивать доверительный платеж, и если хозяин так и не пополнил счет, отправлять ему угрожающее сообщение. Как Вам идейка?
  17. Озадачило. Удалось разобраться? За 10 дней. И про других опраторов что Вам известно в этом плане? Если не сложно.
  18. Да я вообще дворник. Так, заглянул с умными людьми пообщаться.
  19. А вот насчет других индексов то я и не подумал. Начинаю понимать. Хотя с define пока довольно туманно. Попробую додуматься сам. Спасибо!
  20. Да не вопрос. Можно и в ОЗУ. Тогда и одной таблицы достаточно. И адрес нужного обработчика записать туда я в состоянии. Как два разных обработчика с одинаковыми атрибутами прописать?
  21. Сути вопроса никто не понял. Попробую поэтапно. 1. Хочу ДВЕ(!!!) таблицы векторов во flash. Не важно, какой плотности. Таблицы должны быть с разными векторами и вызывать разные обработчики прерываний. При старте с помощью ebase должна выбираться одна из них со своим набором привязанных к ней обработчиков. 2. Тогда в тексте программы появляются соответственно ДВА разных обработчика ОДНОГО вектора, на что компилятор ругается. Не хочет он сразу и void __attribute__((interrupt(X), vector(Y))) foo {}; и void __attribute__((interrupt(X), vector(Y))) bar {}; К тому же нужно связать первый обработчик с первой таблицей, а второй, соответственно, со второй. И уже при старте в ebase писать адрес нужной таблицы. 3. Даже если одну таблицу разместить в озу и при старте менять вектора, то проблема одинаковых атрибутов разных обработчиков остается. Догадываюсь, что штатно это не реализуемо. Но надеюсь, что решение есть. Пока приходится в одном обработчике в зависимости от режима вызывать разные функции. Лишние расходы на сохранение/восстановление регистров.
  22. вектора прерываний

    Микроконтроллер - PIC32MX. Прибор должен работать в двух разных режимах в зависимости от переключателя. Режим выбирается перед включением. Обработчики прерываний тоже должны быть разными. Возможно ли штатными методами создать две таблицы векторов прерываний и два набора обработчиков? В крайнем случае можно сделать одну таблицу в ОЗУ, но 4 КБ flash не так жалко, как ОЗУ. И компилятор ругается на разные обработчики одного вектора.
  23. порт х86

    Изучение матчасти помогло. Так работает: void wait_ms(unsigned long ms) { unsigned long long t2 = _rdtsc() + (unsigned long long)ms * 3000000; while (_rdtsc() < t2) Sleep(0); } Только ускорения не вышло.
  24. порт х86

    Использую порт MSVC-MingW. Пытаюсь приподнять точность таймера с помощью функции rdtsc вместо Sleep. Текст оригинальный, только закомментированы Sleep в бесконечном цикле и добавлен вызов wait_ms. void wait_ms(unsigned long ms) { unsigned long long t2 = _rdtsc() + (unsigned long long)ms * 3000000; while (_rdtsc() < t2); } /*-----------------------------------------------------------*/ static DWORD WINAPI prvSimulatedPeripheralTimer( LPVOID lpParameter ) { TickType_t xMinimumWindowsBlockTime; TIMECAPS xTimeCaps; /* Set the timer resolution to the maximum possible. */ if( timeGetDevCaps( &xTimeCaps, sizeof( xTimeCaps ) ) == MMSYSERR_NOERROR ) { xMinimumWindowsBlockTime = ( TickType_t ) xTimeCaps.wPeriodMin; timeBeginPeriod( xTimeCaps.wPeriodMin ); /* Register an exit handler so the timeBeginPeriod() function can be matched with a timeEndPeriod() when the application exits. */ SetConsoleCtrlHandler( prvEndProcess, TRUE ); } else { xMinimumWindowsBlockTime = ( TickType_t ) 20; } /* Just to prevent compiler warnings. */ ( void ) lpParameter; //Sleep(1); for( ;; ) { /* Wait until the timer expires and we can access the simulated interrupt variables. *NOTE* this is not a 'real time' way of generating tick events as the next wake time should be relative to the previous wake time, not the time that Sleep() is called. It is done this way to prevent overruns in this very non real time simulated/emulated environment. */ /*if( portTICK_PERIOD_MS < xMinimumWindowsBlockTime ) { Sleep( xMinimumWindowsBlockTime ); } else { Sleep( portTICK_PERIOD_MS ); }*/ wait_ms(portTICK_PERIOD_MS); configASSERT( xPortRunning ); WaitForSingleObject( pvInterruptEventMutex, INFINITE ); /* The timer has expired, generate the simulated tick event. */ ulPendingInterrupts |= ( 1 << portINTERRUPT_TICK ); /* The interrupt is now pending - notify the simulated interrupt handler thread. */ if( ulCriticalNesting == 0 ) { SetEvent( pvInterruptEvent ); } /* Give back the mutex so the simulated interrupt handler unblocks and can access the interrupt handler variables. */ ReleaseMutex( pvInterruptEventMutex ); } #ifdef __GNUC__ /* Should never reach here - MingW complains if you leave this line out, MSVC complains if you put it in. */ return 0; #endif } Программа зависает намертво. Причем если в wait_ms добавить Sleep, то начинает работать. Или хотя бы закомментированный Sleep перед for(;;) раскомментировать, то один раз выводится Task 1 is running. И тоже зависает. Как починить?
×
×
  • Создать...