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

xvr

Свой
  • Постов

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

  • Посещение

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

    2

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


  1. В языке С++ эти контейнеры входят в стандартную библиотеку. Причем настолько входят, что под неё были сделаны расширения в синтаксисе языка. В С придётся писать самому, или брать какие то готовые со стороны.
  2. 2 ТС: язык С не занимается самостоятельным управлением динамической памятью. Строки (за исключением констант в программе) по своей природе сущности динамические, т.к. могут менять свой размер. Так что у вас 3 выхода: Управлять памятью самому (malloc/free) Выделить сразу массивы достаточного размера, и смериться с потерями памяти, если строки будут короче, и с ограничением на макимальную длинну строк Сменить язык (например на С++ и std::string)
  3. Надо сказать, что программные защиты всевозможных видов, основанные на проверках чего-нибудь, ломаются за считанные минуты :( По собственному опыту (где то 30ти летней давности) - пришлось ломать Автокад. Никаких IDA не было, был примитивный офлайн дизассемблер (не помню уже какой именно) и отладчик (кажется turbo debugger). Защищён он был похоже flex lm (точно не скажу, тогда я таких слов не знал, а сейчас уже концов не найти). На то, что бы найти тот условный джамп и поменять на безусловный ушло пол часа. Потом ломал плагин к нему (Российского производства). Вот там разработчики постарались - там и проверки были, и участки шифрованного кода, и самомодифицирующийся код. В результате всё было сломано за те же 30 минут. Был и опыт с другой стороны. Приблизительно тогда же делал защиту на клон Синклера (ATM-Turbo). Там была встроена CPM (её и защищали) и в качестве аппаратного ключа использовалась ПЛМка (на ней развертка генерилась). Было где то 3 уровня защиты, от простой проверки до трудно уловимых глюков в процессе работы. 2 уровня народные умельцы сломали, о последнем они не догадывались - в результате копии сбоили в работе, а вес шишки сыпались на оригинальных производителей :( Самый цимус этой истории в том, что фирма, производившая эти компьютеры так же производила и программатор (ну и продавала конечно). И одним из примеров в составе программатора были исходники этой самой ключевой ПЛМ (это правда обнаружили когда с производством самих компьютеров уже завязали)
  4. Видимо то, что в реальности они инвентированны (о чём внизу в сноске написано)
  5. Хм, а то, что адреса обоих структур у вас NULL - не смущает?
  6. 2 металлических коврика - один до двери, второй после. Подключаем в 220. Пациентов считаем по количеству воплей, при пересечении двери. (Нужен микрофон) PS. Простите, не удержался
  7. Уже гораздо лучше Можно и их. Преимущество в том, что всю вашу команду вместе с любыми числами внутри можно записать одной регуляркой, а потом проверить одним вызовом. Сразу получите всё - и команды отдельно и числа отдельно. И проверку на синтаксис
  8. ТС пытается зашарить между разными процессами 'живые' объекты C#. Наблюдается полное непонимание того, что происходит 'за фасадом' сорцов C# программы. В рамках C# способа нет, инициализируйте из каждого exe. Можно вынести код работы с релюхой в отдельную библиотеку (сборку в терминах C#), что бы не дублировать его многократно. В принципе должно хватить
  9. Код из первого поста - жесть. Откройте для себя, что в string.h есть ещё много других функций, например strpbrk и strcpy И sscanf конечно хорошо, но он очень жирный (много кода за собой тянет). Если у вас нет проблем с размером кода, советую смотреть в сторону регулярных выражений. У вас и есть знаковое (формат %d). Беззнаковое будет %u. А %f - это вообще плавающая точка
  10. Видимо дальше будет вопрос на какой провод в PCIe повесить светодиод, что бы можно было его зажечь по сигналу с компьютера :) PCIe весьма непростой интерфейс - на рассыпухе его не собрать. Определитесь с интерфейсной микросхемой - это может быть FPGA либо готовый PCIe мост (сегодня довольно редкий зверь) И 'платку' будет сделать непросто - там частоты в диапазоне гигагерц, если у вас нет опыта проектирования высокочастотных схем лучше взять что нибудь готовое
  11. Первое же неперехваченное исключение в Питоне и он как раз и 'завершится спонтанно'. Всё зависит от скрипта, который крутится на интерпретаторе
  12. На кнопку. Прошивальщик этим входом не управляет RESET (тоже вручную)
  13. Не видит метки

    У вас в 1м случае все файлы компилируются отдельно, во 2м - в одной единице компиляции (вместе) Во 2м случае все метки получаются в пределах одного запуска ассемблера - он их видит вне зависимости от места определения и использования В 1м случае метка в месте использования не видна - её нужно определить как внешнюю (директива global или как то так)
  14. Не про МК, но вполне в тему: В это трудно поверить, но иногда фирмы-изготовители теряют чертежи какого-либо кристалла и по этой причине прекращают его производство. Такая история произошла с 8-каскадным делителем на КМОП-транзисторах типа SSS-4404 фирмы Solid State Systems. Цитата из ХХ (глава 4)
  15. Судя по листингу у вас Verilog, а это не 'программа' (как у вас в первой строке написано) Вы уверены, что у вас действительно всё отправляется последовательно? Если вы в Verilog пришли с С (или другого процедурного языка) - вас ждёт масса сюрпризов :)
  16. Если очень упрощенно, то: PCI local bus (он же PCI) - параллельная 32(64)х битная шина. Повсеместно применялась (и наверное где то ещё осталась) в ПК. PCI express (он же PCIe) - 'посаженная' на высокоскоростной последовательный интерфейс PCI. В шине изменили физический уровень, оставив прежнюю логическую структуру (на уровне взаимодействия контролера шины с процессором)
  17. Немного оффтопика. Т.е. ваша зарплата 500/5/12= 8333р в месяц? С вашей энергией вменяемый работодатель должен вам платить как минимум в 10 раз больше (а некоторые в 100 раз - лишь бы вы не хватили лишку в применении этой энергии :) И даже если нет вменяемых работодателей, просто развернув вектор своей активности из забивания в землю (в виде теплонасосов) в сторону внешнего мира (например делая и продавая эти самые насосы), вы явно получите много больше, чем экономия 3х копеек на короткозамкнутых витках.
  18. Страшное случится если в загрузчике случится прерывание и при этом таблица прерываний окажется в приложении. Согласен, что такого быть не должно, но иногда люди делают и не такие дикие вещи :) Был тут один индивид, который сделал загрузчик как часть приложения. Всей конференцией его убеждали, что так делать нельзя - не убедили :( Абсолютно согласен, надеюсь что ТС сделал именно так
  19. Не себя, а приложения. Boot loader (который и обновляет прошивку) не обязан быть частью самой прошивки. Кстати, отсюда следует, что он (boot loader) либо не должен использовать прерывания либо перемещать таблицу прерываний к себе на время своей работы. А если обновление прошивки является частью самой прошивки - то это вдвойне кривое ПО. Достаточно загрузить прошивку с багом (даже если она идеально прошьётся) и привет - кирпич на ровном месте.
  20. Господа, возникновение прерывания во время стирания флэши кроме временной остановки процессора имеет ещё один побочный эффект :) Представьте, загрузчик стирает страницу флэша с таблицей прерываний, и тут случается прерывание. Что произойдёт? Процессор остановится до окончания стирания, а потом весело побежит дальше (это хорошо), но вопрос - куда именно 'дальше'? Он считает вектор из только что стёртой страницы и весло отправится исполнять обработчик на 0xFFFF.... :( Так что или выносить таблицу прерываний из перезаписываемой части флэша либо запрещать прерывания
  21. Думаю, что точки разделяются между треугольниками, т.е. там не просто набор треугольников, а mesh
  22. Судя по коду это не отдельная утилита а плагин к чему то.
  23. Не подскажете, платы в формате KiCAD принимаете, или надо на герберы и экселон рассыпать?
  24. Считать (если она не закрыта битами зашиты) - реально. Берёте на сайте analog программу wsd, подключаетесь к девайсу по UART'у и качаете. Но так вы получите бинарник прошивки - это далеко не исходник :( Если есть исходники от производителя то можете попробовать изменить их, откомпилировать и зашить. Если не заработает -вернёте старую прошивку :) NB. Если в том, что написано выше, много незнакомых вам слов - то да, лучше в "Предлагаю работу" :)
×
×
  • Создать...