:::: MENU ::::
Posts tagged with: Записки программиста на C

Загрузка программы без ОС с помощью grub на x86

Давайте загрузим программу без ОС на x86 — это вам может понадобиться, например, при написании ОС. Для загрузки будем использовать grub и Multiboot. Multiboot — открытый стандарт, который описывает как bootloader может загрузить ОС на x86.

Continue Reading


3 способа перенаправить std::cout (iostream, streambuf, cout, IAR, __write)

Часто, работая с микроконтроллерами на С++, приходится изменять вывод std::cout. Например направить его в USART, на дисплей или просто в буфер. В данной статье будет описано 3 способа изменения вывода — два универсальных и один для IAR.

Continue Reading




Modbus RTU Server (Slave)

Довольно часто программисту встраиваемых систем приходится работать с протоколом Modbus RTU или Modbus через Ethernet. Это клиент-серверный протокол. На встраиваемом устройстве может работать как клиент (шлет запросы), так и сервер (отвечает на запросы).

Далее приведено описание моей реализации modbus сервера (slave) для микроконтроллеров (в принципе ее можно использовать и на ПК).

Continue Reading


assert_param stm32

При отладке программы очень удобно для вывода сообщений об той или иной ситуации, иметь универсальную функцию, которая позволяла бы выводить сообщение об ошибке, номер строки и файл в котором эта ошибка возникла. Для этого, в библиотеке периферии от ST, используется assert_param. 

Continue Reading


CRC16 для Modbus RTU — табличный метод

В Modbus RTU для проверки целостности сообщения применяется алгоритм контрольной суммы CRC16 (циклический избыточный код) с полиномом 0xA001. Далее приведен табличный метод расчета CRC16 на C.

Continue Reading


volatile и зависания

Ключевое слово volatile – это спецификатор, применяемый при объявлении переменной. Он сообщает компилятору, что значение переменной может изменяться в любой момент – без какого-либо действия со стороны кода, который компилятор обнаруживает поблизости.

Continue Reading


Битовые операции C

Во встраиваемых системах часто для экономии памяти приходится использовать битовые операции, например для реализации флага какого-либо события. Далее рассмотрен удобный способ работы с битами на макросах.

Continue Reading



Страницы:12