Наконец пришла плата с FPGA от Altera! ^__^

Наконец дождался борд из Китая с FPGA!  Давно хотел попробовать программирование под всякие там ПЛИС-ы и вот оно свершилось 😀

Скачал Quartus II и прочитал введение в Verilog.  После получаса безуспешных ковыряний в IDE я всё же смог сам написать, собрать и прошить первый код на Verilog ^____^   Пищит динамиком на плате:


module Test(clk, out);

input clk;
output out;
reg out;
reg[15:0] cnt;

parameter period = 7000;

always@(posedge clk)
begin
cnt<=cnt+1;
if(cnt == period)
begin
cnt<=0;
out<=~out;
end
end

endmodule
0
0

ELF & DWARF parser

Написал тут по-быстрому (хотя не очень, 4 дня потратил на этот говнокод) на C# библиотеку для чтения ELF файлов и парсинга DWARF4 дебаг информации в ELF файлах.

https://github.com/L-proger/ELFUtils

https://github.com/L-proger/ELFExplorer – GUI приложение, лагучий набросок.

В основном для самообучения, для раскуривания дебаггинга и т.п. но ещё одно интересное для меня применение – напишу вскоре тулзу для вывода подробной инфы о памяти ELF бинарника.  Я довольно часто программирую под микроконтроллеры и как многим известно там есть обычно достаточно большие проблемы с объёмом памяти – как FLASH так и оперативной, потому часто приходится считать байты и стараться сделать бинарник как можно меньше по размеру.

Вот и накидал эту библиотеку. На самом деле всё можно было бы сделать гораздо проще! Использоваться стандартную тулзу тулчейна readelf и, скажем, регулярками разбирать её вывод и получать финальную информацию о символах в бинарнике, но это слишком просто ) А так я разобрался в DWARF формате что меня весьма радует.

Пример вывода консольной версии ниже. Консоль сейчас для простого дебага, я вскоре сделаю красивый удобный гуй для этого всего )   А, да, ещё DLL умеет парсить пока минимально lds скрипты линкера и правильно использовать информацию о секциях памяти для последующего анализа её использования (можно посмотреть сколько % памяти каждого из банков занято и т.п.).


Вывод инфы по секциям памяти.

0
0

Windows Phone Developer Registration

Недавно сменил HTC 8S на Nokia Lumia 1020, попробовал зарегистрировать новый телефон, чтобы можно было на него билдить приложения и… не получилось о_О

Стандартная процедура регистрации простая: ставим WP8 SDK, запускаем Windows Phone Developer Registration тулзу, подключаем телефон с разлоченным экраном и включенным интернетом по USB к компьютеру, тулза регистрации детектит телефон, логинимся в девелоперский аккаунт и телефон разлочивается! Всё просто!  А вот у меня не сработало.

И на то было несколько причин:

1. Судя по всему учитывается установленный регион в телефоне. Для тестов Cortana я сменил язык телефона и регион на USA!  После долгих попыток зарегать телефон понял, что регион важен.

2. Москва на данный момент находится в GMT+3 засовом поясе, однако в телефоне у меня Москве присвоен GMT+4 пояс. Я вручную выставлял время и пояс на +03.  Так делать не нужно!  Необходимо выставить +4 часовой пояс в данном случае и пусть время будет на 1 час больше на время регистрации.

3. После перехода на новую мобилу Windows автоматически подтащил из облака все настройки телефона, включая и его имя! Важно, что если прошлый телефон не был разрегистрирован и имел такое же имя, то зарегистрировать новый не выйдет. Пофиксил удалением регистрации предыдущего телефона через сайт https://dev.windowsphone.com/en-us/Account/Devices

Как только выставил верный регион и корявое время но совпадающее с мнением телефона, разрегистрировал старый телефон – всё сразу зарегистрировалось.  

0
0

Автомобильные колёса

Уже имеющиеся в Unity колёса работают хорошо, но их интерфейс не достаточно информативен для моей реализации физической модели автомобиля.  Поэтому я запилил свои колёса под юнити )

Для расчёта сил трения шин использую “магическую формулу” Hans B. Pacejka – ох и долго ж я её вкуривал (не люблю что-то использовать не зная как оно работает), но в итоге заимплементил )  На скрине выводится функция поперечного трения шины выделенного колеса под нормальной нагрузкой в 5KN и углом развала 0 градусов в диапазоне от -20 до 20 градусов проскальзывания.
Неплохая статья для начинающих разбираться в физике автомобиля: http://www.gamedev.ru/code/articles/?id=4233  (перевод)

Объяснение параметров функции Pacejka 94 года (есть более старые и новые варианты функции, количество параметров в них различается) http://www.edy.es/dev/docs/pacejka-94-parameters-explained-a-comprehensive-guide/

0
0

Update

Пилю потихоньку дальше проект.  Как уже писал – упор на качество симуляции.   Симулировать же хочется как можно больше всего )  Сейчас у меня пилится электронная система автомобиля, система зажигания, двигатель и т.п.   Электронная система включает в себя шины питания (шина аксессуаров и шина зажигания), источники питания, устройства – потребители. Можно добавлять/удалять аккумулятор, менять его напряжение и ёмкость, от выдаваемого тока зависит мощность и скорость стартера, работа других электроприборов )  Загон конечно, но мне нравится.

Основная проблема заключается не в написании всего этого, а в сборе данных! Ни как не могу найти нормальный годный список, например, стартеров с _подробными_ даташитами!  Или хотя бы графики токоскоростных характеристик!  У производителей инфа есть, конечно же, но ни кто не выкладывает её.  Путём жесточайшего гугления нашёл графики всего для нескольких стартеров, вот пример для модели4216.3708-02

И вот где найти такие графики для отечественных и иностранных стартеров (и других агрегатов автомобиля) – не понятно. Очень много времени отнимает поиск инфы, фейковать же параметры нет ни какого желания.
0
0

Project X

Много раз пытался создавать небольшие игры, безуспешно. И дело тут не в том, что я чего-то не могу, дело в нежелании )  Я понял, что просто не могу делать что-то мелкое, меня оно не мотивирует, и да, пусть это идёт в разрез с логикой (маленький проект одному реально осилить и т.п., а большой – вряд ли), но.. не, лучше я буду делать то, что реально мне хочется.

Итак, движок мой уже 2.5 года на паузе и там похоже останется. Я бы мог его допиливать, опыта необходимого за последнее время сильно прибавилось, как и понимания что делать, но это процесс долгий и по сути своей бессмысленный уже – необходимые мне знания получены во время разработки того, что есть + ушёл я уже дальше и без движка. До коммерческого вида мне в одиночку его доводить несколько лет, чем я заниматься не хочу, да и толка от него не будет – есть куча готовых годных движков.

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

На Unity3D начал пилить некий игровой проект, упор на качество симуляции, больше информации будет со временем )

0
0

Драйвер RFM70

Для очередного своего ненужного безумного проекта писал драйвер для RFM70 радио приёмо-передатчика под STM32F100RB ARM контроллер.  Драйвер ещё не дописан но принимает/отправляет байтики исправно.
Ссылка на репозиторий: https://bitbucket.org/L_proger/rfm70cpp

Ах да, если у кого-то баттхёрт о том, что дрова нельзя писать на С++  (или по сути прошивки на МК), то лучше не переходить по ссылке выше и код не смотреть.

По мере использования RFM70 буду дописывать драйвер, по-позже закину в реп пример использования.

I’m back.

0
0

STM32VLDISCOVERY

А сегодня я ещё приобрёл забавный борд – STM32VLDISCOVERY.  На борту у неё 32 разрядный ARM контроллер STM32F100RB, Cortex™-M3, 24 MHz, 128 Kbytes of Flash,
8 Kbytes of SRAM.

Куча пинов выведено наружу, что меня дико радует ) Можно очень дофига всего прицепить! Доволен покупкой, сейчас займусь изучением )

0
0

Raspberry Pi

А я вот приобрёл эту штуковину.  Оказалость, что тут питание подаётся через micro USB, которого у меня нет. Вот фейл (   Придётся БП покупать и кабель :  А так вообще система радует – 700 MHz CPU, 512 MB RAM, HW 3D (OGL ES 2.0), совсем неплохо )

0
0

Керамический нож

Давно хотел купить керамический нож – посмотреть что он вообще из себя представляет, насколько крут и юзабелен.

Приобрёл вот такой недорогой вариант:


Нож оказался весьма качественным, не просвечивается (хорошо закалён), сколов на режущей кромке нет. Режет вообще шикарно – нарезал всё что лежало в радиусе метра от меня 😀  Весьма забавная штуковина. 

0
0