Создание автономного C-приложения с библиотекой matlab

Опубликовано в рубрике "Статьи", 12.01.2010.
Тэги: , , , автор:

Иногда нужно сделать приложение, которое общается с неким девайсом и выполняет сложные математические расчеты. Конечно, можно написать свои библиотеки или найти библиотеки сторонних разработчиков, но зачем, если все уже написано за нас? Намного проще написать матлабовскую функцию, отладить ее и использовать в своем приложении.

mat_logo

Дык на чем писать-то?

Опубликовано в рубрике "Статьи", 08.01.2010.
Тэги: , , автор:

Среди эмбеддеров живы споры по поводу того – на каком языке лучше писать программы для контроллеров. Одни ратуют за ассемблер – мол, быстрее, компактнее, другие, те что за Си говорят, что на нем программы быстрее пишутся, а по скорости совсем слегка проигрывают ассемблеру. Оба этих класса эмбеддеров катят бочку на тех, кто пользуется C++: мол, он слишком медлителен прожорлив и опасен для встраиваемых систем. Ну что, устроим холивор?

image 

Письмо в usb.org

Опубликовано в рубрике "Статьи", 27.11.2009.
Тэги: , , , автор:

Как известно, для того, чтобы сделать свое USB-устройство, необходимо присвоить ему идентификатор в виде комбинации 16-битных чисел — VID и PID.

VID – Vendor ID – идентификатор производителя выдается usb.org. Производитель должен присвоить каждому новому продукту идентификатор PID – Product ID. Таким образом, получается уникальная комбинация VID/PID

Комбинация VID/PID служит для того, чтобы операционная система подгрузила нужный драйвер.

Для того, чтобы получить даже одну комбинацию VID/PID, нужно заплатить usb.org довольно большую сумму – минимум 2000$. После этого вы получаете возможность сделать 65536 устройств.

 

 usb

Работа с GPIO

Опубликовано в рубрике "Статьи", 06.10.2009.

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

gpio

WTF Volatile?

Опубликовано в рубрике "Статьи", 01.10.2009.
Тэги: , , , , автор:

Если вы пишите прошивки для микроконтроллеров на C/C++, но наверняка встречались с ситуациями, когда:

  • Программа работает хорошо до тех пор, пока вы не включите оптимизацию
  • Программа работает хорошо пока запрещены прерывания
  • Драйвера аппаратуры прекрасно работают у ваших друзей/коллег, а у вас – глючат
  • В многозадачных приложениях задачи по отдельности работают хорошо, а если запустить их вместе – происходит что-то страшное.

bug

Все эти ситуации могут быть вызваны тем, что вы не используете ключевое слово volatile. Вы не одиноки, очень многие программисты не понимают зачем оно нужно.