Интересный небольшой эксперимент по использованию Cи в качестве цели компиляции для получения портативности программы, ее оптимизации и функциональной совместимости. В ходе эксперимента мы также напишем саму программу, реализующую алгоритм Эвклида, выполним ее отладку и профилирование, а также попутно задействуем функцию «красивой» печати gdb. Читать полностью »
Рубрика «C» - 11
Cи в роли промежуточного языка
2021-11-25 в 13:00, admin, рубрики: C, c++, forth, ruvds_перевод, Блог компании RUVDS.com, отладкаИнтересный небольшой эксперимент по использованию Cи в качестве цели компиляции для получения портативности программы, ее оптимизации и функциональной совместимости. В ходе эксперимента мы также напишем саму программу, реализующую алгоритм Эвклида, выполним ее отладку и профилирование, а также попутно задействуем функцию «красивой» печати gdb. Читать полностью »
О чем нельзя забывать при работе с POSIX-сигналами
2021-10-12 в 18:45, admin, рубрики: bsd-системы, C, c++, linux, posix, reentrancy, UNIX, Программирование, Разработка под Linux, системное программированиеАппроксимация синуса: полиномы Чебышёва vs. ряды Маклорена
2021-10-09 в 12:35, admin, рубрики: C, Алгоритмы, аппроксимация, математикаВ комментариях к моей статье про быстрое вычисление синуса был задан вопрос: "А чем не устроило разложение в ряд Тейлора?"
Краткий ответ таков: хоть приближение при помощи рядов Тейлора (точнее - рядами Маклорена) и даёт меньшую ошибку при том же количестве вычислений, но оно не позволяет разбить аргумент на произвольное количество интервалов и тем самым увеличить точность вычислений.
Теперь более подробно.
При приближении синуса (и не только) полиномами Чебышёва используют следующее выражение:
Работа с СОМ-портом на Си в linux
2021-09-17 в 9:00, admin, рубрики: C, linux, ruvds_статьи, uart, Блог компании RUVDS.com, Программирование, Производство и разработка электроники, Разработка под Linux, системное программированиеКаждый, кто постоянно занимается электроникой и программирует встраиваемые устройства, неизбежно сталкивается с необходимостью работы с СОМ-портом под линуксом. Недаром, моя статья "UART и с чем его едят" спустя 11 лет после выпуска набирает просмотры и комментарии.
Для разработчиков чаще всего появляется задача сопрячь какой-то датчик, либо удалённое устройство с одноплатником. Да что греха таить, сейчас в 2021 году UART, наверное, самый распространённый интерфейс для обмена данными, несмотря на всю его архаичность. Далеко за примером ходить не надо, внутри смартфона, лежащего у вас в кармане, будет с десяток UART интерфейсов, самый известный из которых — это подключение SIM-карты.
Поэтому умение работать с СОМ-портами в linux особенно важно. И вот, казалось бы, UART, древнейший интерфейс, всё должно быть известно и понятно, и даже опытные программисты ломают зубы, работая с ним в линуксе. Особенный цирк с конями начинается при работе с передачей сырых данных по RS-485. Не знаю ни одного программиста, который бы не хватил горя при разработке ПО для таких решений. Самое забавное, что с более новомодным i2c работать в линуксе куда проще и понятнее, чем с ортодоксальным UART. Чтобы не было путаницы дальше, всё семейство UART (RS-232, RS-485, UART 5V, UART 3,3 и т.д.) по тексту я буду называть COM-порт или UART. Мы говорим в статье не о физическом интерфейсе, а о программной стороне вопроса.
В этой статье я хочу показать, как писать свои программы, работающие с UART в ОС Linux. И неважно на каком языке вы пишете программу для работы с UART (python, c, c++, bash, php, perl и т.д.), принцип работы и грабли будут одни и те же, так как всё равно всё упирается в системные вызовы к ядру. А не понимание того, что там происходит и приводит к различным трудноуловимым багам.Читать полностью »
Как я портировал DOS игру
2021-09-15 в 6:17, admin, рубрики: Bedlam 2, C, c++, dos, ассемблер, реверс-инжинирингВведение
Как посчитать синус быстро
2021-09-10 в 9:39, admin, рубрики: C, stm32, Алгоритмы, математика, программирование микроконтроллеров, тригонометрические функции, целочисленная арифметикаи точно. Точнее, с заданной точностью, простите за каламбур.
Под катом я расскажу, как сделать это с использованием школьного курса алгебры и целочисленной арифметики, при чём здесь полиномы Чебышёва I-го рода, и дам ссылки на примеры реализаций для ПК и Cortex-M3.
Быстрый, мощный интерфейс на Python
2021-09-08 в 18:13, admin, рубрики: C, gpu, GUI, polling, python, skillfactory, Блог компании SkillFactory, интерфейсы, окна, отрисовка, Программирование, туториалыИ минимум зависимостей
Dear PyGui принципиально отличается от других фреймворков GUI Python. Рендеринг на GPU, более 70 виджетов, встроенная поддержка асинхронности — это лишь некоторые возможности Dear PyGui. Руководством по работе с этим пакетом делимся к старту курса по разработке на Python.
Отладка C на ZX Spectrum
2021-08-29 в 7:30, admin, рубрики: C, debugger, gdb, gdbserver, Z80, zx spectrum, отладка, программирование микроконтроллеров, Процессоры, Сетевые технологииЕсли ваш Спектрум пылится на полке, эта статья подскажет, как дать ему вторую жизнь, а вам — новое хобби.
Кому Spectrum может быть интересен в 2021?
Пишем дизассемблер виртуальной машины из игры Clock Tower (PS1-PC) для IDA Pro
2021-08-20 в 5:27, admin, рубрики: C, c++, disassembler, ida pro, дизассемблер, Программирование, разработка игр, реверс-инжиниринг, хоррорыВсем привет. Тут такое дело: ещё одна моя реверсерская мечта сбылась - я написал процессорный модуль для IDA Pro с нуля, за два дня! Если вы когда-то тоже хотели написать свой модуль, но боялись начать - думаю, моя статья сможет помочь.
В качестве кода, который требуется дизасемблировать, будет выступать код виртуальной машины из очень крутого хоррора, который выходил сначала на SNES, потом на PS1, PC и Wonderswan - "Clock Tower - The First Fear". В игре имеется 9 концовок (sic!), атмосфера гнетущая, а в качестве главного злодея выступает "Scissorman" (человек с руками-ножницами). Заинтересовал? Тогда добро пожаловать...Читать полностью »