Авг 25 2015

Книга Р. Лав «Linux. Системное программирование»

Прочитал книгу Р. Лав «Linux. Системное программирование».
В книге описывается ряд системных вызовов для работы с файлами, процессами, временем, сигналами и распределением памяти. Приводятся сведения о работе этих вызовов по стандарту POSIX и по их реализации в ядре Linux.

3a56606f29e71f3a51b8c5fdd1d

Авг 21 2015

Прошиваем FPGA в run-time

В общем, ничего сложного.
Для того, чтобы заливать прошивку в FPGA из процессорного ядра, нужно сделать следующее:
1. Подготовить файл rbf, это и есть файл прошивки. Он делается из файла sof с помощью утилиты Quartus:

quartus_cpf -c output_files/sockit_test.sof output_files/sockit_test.rbf

Положить этот файл в основной раздел SD-карты, например, в корень.

2. После загрузки linux, отключить мосты между FPGA и HPS (HPS — это процессорное ядро):

echo 0 > /sys/class/fpga-bridge/fpga2hps/enable
echo 0 > /sys/class/fpga-bridge/hps2fpga/enable
echo 0 > /sys/class/fpga-bridge/lwhps2fpga/enable

И заливаем файл в FPGA:

dd if=/sockit_test.rbf of=/dev/fpga0 bs=1M

Собственно, всё. Мосты можно включить обратно, если нужно:

echo 1 > /sys/class/fpga-bridge/fpga2hps/enable
echo 1 > /sys/class/fpga-bridge/hps2fpga/enable
echo 1 > /sys/class/fpga-bridge/lwhps2fpga/enable

Разумеется, всё это можно делать скриптом.
Пишем файл gsrd_init.sh:

#!/bin/sh

echo 0 > /sys/class/fpga-bridge/fpga2hps/enable
echo 0 > /sys/class/fpga-bridge/hps2fpga/enable
echo 0 > /sys/class/fpga-bridge/lwhps2fpga/enable
dd if=/sockit_test.rbf of=/dev/fpga0 bs=1M
echo 1 > /sys/class/fpga-bridge/fpga2hps/enable
echo 1 > /sys/class/fpga-bridge/hps2fpga/enable
echo 1 > /sys/class/fpga-bridge/lwhps2fpga/enable

Кладём его в /etc/init.d. Теперь после загрузки Linux прошивка FPGA будет загружаться автоматически.

Авг 14 2015

Книга B. Stroustrup «A Tour of C++»

Прочитал книгу B. Stroustrup «A Tour of C++», Addison-Wesley, 2013, 180 стр, англ. язык.

51xVLzxX4vL._SX370_BO1,204,203,200_

Книга не является ни учебником по С++, ни полным справочником по С++, это именно «тур», обзор основных возможностей С++11, причем и тех, которые были в стандарте С++98, и новых. Рекомендую прочитать тем, кто знает язык, но хочет усовершенствовать эти знания.

Авг 06 2015

Книга Scott Meyers «Effective Modern C++»

Прочитал книгу Scott Meyers «Effective Modern C++», O’Reilly Media, 2014 г., 336 стр, англ. язык.

c38858a6d6b8

Замечательная книга, одна из лучших, которые я читал по С++.

Во-первых, описывается современный стандарт С++11/С++14. С введением нового стандарта в 2011 году С++ стал совершенно другим, новым языком, как это отмечает и его автор, Б. Страуструп. Книги по С++, изданные до 2011 года, сейчас читать практически не имеет смысла.

Во-вторых, у Мейерса подход к изложению гораздо более практический, чем у Страуструпа. Страуструп описывает язык с формальной точки зрения, перечисляет операторы, конструкции языка, синтаксис. Мейерс рассматривает новые возможности языка с точки зрения их применения на практике, рассматривает «подводные камни» и сложные места, предупреждает об опасностях, которые могут крыться в коде.

Следует заметить, что книга не предназначена для чтения «с нуля», она подразумевает, что читатель знает С++98. Начинающим «с нуля» могу порекомендовать книгу Шилдт «С++ Базовый курс«.

Рекомендую всем, кто любит С++.