vak: (Default)
Omega2+ это относительно новая плата для IoT с интерфейсом Wi-Fi по цене $13. На плате установлен Линукс OpenWRT. В качестве языков програмирования рекомендуются Python и Javascript. Честно говоря, мне все эти скриптовые языки кажутся несерьёзным баловством. Но имея карточку microSD, можно запустить полноценный Debian Linux, а под ним нормальные компиляторы Си, Go и прочие.



Шаг 1: готовим microSD-карточку. Тут понадобится линуксный компьютер. Скачиваем файл debian-stretch-mini.tgz - минимальный вариант корневой файловой системы для Debian 9 (Stretch). Вставляем карточку microSD в компьютер, непосредственно (есть есть слот SD) или через USB-адаптер. Карточка будет видна в системе как /dev/mmcblk0 или как /dev/sdc (или sdb или с другой буквой - проверьте). Нужно карточку отмонтировать, переделать таблицу разделов, создать новую файловую систему, заново смонтировать и распаковать туда файлы. Выглядит это примерно так:

sudo umount /dev/mmcblk0p1
sudo sfdisk /dev/mmcblk0 << EOF
/dev/mmcblk0p2 : size=512M, type=82
/dev/mmcblk0p1 : type=83, bootable
EOF
sudo mke2fs /dev/mmcblk0p1
sudo mkswap /dev/mmcblk0p2
sudo mount /dev/mmcblk0p1 /mnt
sudo tar xzf debian-stretch-mini.tgz -C /mnt
sudo umount /mnt


Шаг 2: подсоединяем консольный порт. Используем штатный Expansion Dock или любой адаптер USB-to-serial, например FT232, CP2102 или CH340. Сигнал GND адаптера соединяем с ножкой GND платы, сигнал TXD - с ножкой P9, RXD - P8. Включаем USB-адаптер в компьютер и подключаемся к консольному порту на скорости 115200. Нажимаем кнопку "Reset" - видим протокол загрузки типа этого.

Шаг 3: настраиваем подключение Wi-Fi, как описано на официальном сайте. Устанавливаем нужные пакеты, подключаем раздел swap. Заметьте: мы никоим образом не портим исходную предустановленную систему OpenWRT. Все имеющиеся функции и методы разработки, описанные в руководстве для платы Omega2+, продолжают работать.

wifisetup
[...]
opkg update
opkg install swap-utils block-mount e2fsprogs


Шаг 4: стартуем среду Debian. Для этого мы используем утилиту chroot. Корневая файловая система Debian находится на карточке microSD. Ее всегда можно вынуть и переставить в другой компьютер: переписать нужные файлы, сдублировать, забэкапить и т.п. В принципе, когда заработал Wi-Fi, консольный порт больше не нужен - можно подключаться через ssh (предварительно установив пароль на root).

swapon /dev/mmcblk0p2
mount --bind /dev /tmp/run/mountd/mmcblk0p1/dev
mount --bind /proc /tmp/run/mountd/mmcblk0p1/proc
mount --bind /sys /tmp/run/mountd/mmcblk0p1/sys
chroot /tmp/run/mountd/mmcblk0p1 /bin/bash


Вы оказываетесь в оболочке bash из окружения Debian. Здесь при первом запуске имеет смысл установить полезные пакеты:

apt-get update
apt-get install locales bison byacc flex libelf-dev libfuse-dev \
build-essential make autoconf automake libtool gdb fuse man-db \
groff less ed bmake git byacc flex exuberant-ctags libfuse-dev \
bmake git byacc flex exuberant-ctags libfuse-dev dialog \
openssh-client subversion le vim gettext iputils-ping locate procps


Теперь у вас имеется полноценный Debian Linux, со всеми наворотами и Wi-Fi подключением к интернету. Можно скачивать, компилировать и запускать любой софт. И все это на платке размером 2x4 сантиметра.

Чтобы освободить карточку перед тем как вынуть, надо будет выполнить:

umount /tmp/run/mountd/mmcblk0p1/dev
umount /tmp/run/mountd/mmcblk0p1/proc
umount /tmp/run/mountd/mmcblk0p1/sys
umount /tmp/run/mountd/mmcblk0p1
swapoff /dev/mmcblk0p2
vak: (Default)
Протокол загрузки платы Omega2+. На пладе установлен процессор MIPS с частотой 580 МГц и 128 мегабайт памяти, а также порт Wi-Fi и SD флэш карточка.

Протокол загрузки )
vak: (Default)
Появилась статья, суммирующая положительный опыт применения открытого процессорного ядра MIPSfpga в образовательных целях.

https://www.ncsu.edu/wcae/ISCA2017/papers/chaver.pdf
vak: (Default)
Приехал ко мне OpenScope MZ, простой универсальный осциллограф-генератор-логический анализатор с открытым софтом. Изначально это был проект на Кикстартере, а теперь продукт компании Digilent.



Скачиваем и устанавливаем так называемый агент (для Windows, Mac или Ubuntu), запускаем его (digilent-agent), после чего заходим на сайт http://waveformslive.com/. Подключаем девайс через USB к компьютеру, настраиваем подключение и получаем осциллограф:



Протокол OpenScope открытый, схему и все исходники можно найти на Гитхабе. В качестве процессора используется MIPS (Microchip pic32mz2048ef 200 МГц). Имеются следующие возможности:
  • Два входа АЦП 12 разрядов с полосой 2 МГц, скорость оцифровки 6.25 мегасэпмлов/сек
  • Один выход ЦАП с полосой 1 МГц и скоростью 10 мегасэпмлов/сек
  • Десять цифровых сигналов входа/выхода GPIO со скоростью обновления 25 МГц
  • Порт USB
  • Беспроводной интерфейс Wi-Fi
  • Карточка micro-SD
В принципе, на эту плату можно установить LiteBSD, но как-то не видно большого смысла.
vak: (Default)
Пять лет назад я начал проталкивать через начальство мысль о необходимости поддержки недорогих отладочных средств для процессоров MIPS. Наконец мои усилия увенчались успехом.

"Imagination Technologies announces availability of a powerful development environment for its MIPS M-class and I-class CPU IP cores that includes a state-of-the-art Graphical User Interface (GUI) and an Eclipse Integrated Development Environment (IDE) together with the low cost Bus Blaster JTAG probes – all at an unprecedented price point for professional grade tools."

Bus Blaster это адаптер, чере который можно подключиться к процессору MIPS через порт USB. Его можно приобрести за $44 (плюс доставка). Годится, к примеру, для большинства маршрутизаторов и точек доступа Wi-Fi. Обычно они сделаны на MIPS и имеют порт отладки EJTAG (2x7 пинов).



С бас бластером также отлично работают бесплатные opensource утилиты ejtagproxy и pic32prog.
vak: (Default)
В конце апреля в Киеве пройдёт экспериментальный семинар для старших и младших школьников по обучению современной цифровой электронике. Программа семинара и форма для регистрации доступны на сайте: http://electronics-ukraine.com/


vak: (Default)
Чего только народ не строит на процессорах MIPS. Вот, к примеру, самодельное сетевое хранилище на шесть жёстких дисков. Процессор MediaTek MT7621A (MIPS 1004Kc), два двухпоточных ядра до 1.2ГГц под управлением Debian Linux. Документация и схемы выложены на Гитхаб.

vak: (Улыбка)
Одноплатный компьютер на базе двухъядерного процессора Baikal-T1 в форм-факторе PCI-104.

Спецификация: http://www.prosoft.ru/cms/f/464222.pdf



Процессор Baikal-T1, представленный в мае 2015 года, стал первой отечественной системой на кристалле, спроектированной по современной технологии 28 нанометров и интегрирующей широкий набор современных высокоскоростных интерфейсов – USB, PCI, Ethernet и др. Baikal-T1 является первой в мире реализацией новейшего процессорного ядра Warrior P-class P5600 популярной архитектуры MIPS, ориентированной на рынки коммуникационных решений и встроенных систем. Энергопотребление Baikal-T1 не превышает 5 Вт, рабочая тактовая частота 1 ГГц. ("Время электроники")
vak: (Улыбка)
Автоматическая самоходная тележка это круто. Вождение по улицам Palo Alto вообще не сахар, приходится постоянно быть начеку. Однако электронные мозги отлично справляются, судя по ролику. Впечатляет автоматическая парковка в конце.

Вот так процессоры MIPS входят в 21-й век.

vak: (Улыбка)
Вытащу из старого форума на свет божий.
MIPS I (1985) --> MIPS II (1990) --> MIPS III (1992) --> MIPS IV (1994) --> MIPS V (1996)
                    \
                     \
                      MIPS R1 (1999) 
                        \
                         \
                          MIPS R2 (2002)
                            \
                             \
                              MIPS R3 (2010)
                                \
                                 \
                                  MIPS R5 (2012)
                                    \
                                     \
                                      MIPS R6 (2015)
vak: (Улыбка)
Процессор Qualcomm Atheros QCA9557 с ядром MIPS 74Kc частотой 720МГц, а также встроенным Wi-Fi на два диапазона 2.4 и 5МГц. На плате установлено 128Мбайт памяти и 128Мбайт Flash. Есть гигабитный проводной Ethernet, а также порты I2S, SPI, I2C, GPIO, PCIe, MDIO. Цена $35.

vak: (Улыбка)
Новая разработка нашей конторы, ядро MIPS I6500, будет применяться в самодвижущихся тележках, в частности Тесла.



Мультикластерная организация позволяет разместить на одном кристалле до 64-х кластеров по 6 ядер, каждое из которых имеет по 4 потока. В сумме на таком чипе можно будет запустить 64*6*4 = 1536 линуксов. :)

Из прочих существенных ништяков там есть аппаратная виртуализация и SIMD.

За последние три года мне тоже довелось приложить руку к этому проекту - в области технологии верификации и разработки образцовой референтной функциональной модели процессора. А Юра [livejournal.com profile] panchul, так даже успел вписать туда пару сотен строчек RTL кода.
vak: (Улыбка)
С сегодняшнего дня студенты и исследователи университетов получают возможность воплощать в кремнии процессор MIPS M5150 и проекты на его основе. Фирмы MOSIS и Imagination подписали соответствующий договор.

"Imagination partners with MOSIS to empower universities to implement leading-edge CPUs in silicon for research projects"

Это по сути то же самое процессорное ядро, что и в проекте MIPSfpga, но со всеми дополнительными возможностями, включая процессор с плавающей точкой, DSP и аппаратную виртуализацию.

В верификации этого процессора я принимал самое активное участие.
vak: (Улыбка)
Получил новую платку, с пылу, с жару.
Документация здесь: Ci40 Hardware User Guide (PDF).


Вот такой протокол загрузки получается.
Дальше... )
vak: (Улыбка)
Проект самодельного компьютера на базе микроконтроллера PIC32 набрал уже почти 90% от нужной суммы. Осталось еще две недели - присоединяйтесь!
vak: (Улыбка)
6 июля Брайан Каллахан расскажет про самые маленькие в мире Unix-системы: RetroBSD и LiteBSD.
И покажет. :)
Приходите!

2016-07-06 - Meet the Smallest BSDs: RetroBSD and LiteBSD, Brian Callahan
18:45, Stone Creek Bar & Lounge: 140 E 27th St


We all expect *BSD to run on our personal computers and servers. What you may not know is that the last five years have seen a successful experiment to bring *BSD to the PIC32 microcontrollers. There are now two different full *BSD operating systems for these microcontrollers: RetroBSD, a port of 2.11BSD, and LiteBSD, based on 4.4BSD-Lite2.

This talk introduces the two smallest BSDs, the differences between them, what hardware you need (with hands-on demos), and how to get involved. We'll overview what works, what doesn't, the challenges of writing a complete operating system with extremely small RAM limits in the modern era, and how to incorporate *BSD on the microcontroller into your *BSD universe.
vak: (Улыбка)
Ардуино хорошо, но Линукс лучше. В качестве примера управления GPIO-сигналами из Линукса, я сделал демо для светодиодного кубика 8x8x8. Выставили на стенде Imagination на недавней конференции DevCon - вроде народ интересовался, спрашивал. Коротенький фрагмент можно посмотреть на видео:



Исходные тексты лежат на Гитхабе: https://github.com/sergev/linkit-cube-demo

Интересно, что нашлась компания, сумевшая довести идею кубика до качественной коммерческой реализации. Приложение на мобильном телефоне позволяет загружать новые анимации непосредственно в кубик через Wi-Fi.
vak: (Daemon)
Парочка свежих видеороликов про самодельный компьютер на основе микроконтроллера PIC32.

Демонстрация работы клавиатуры:



Инструкция по самостоятельной сборке:

vak: (Улыбка)
На сайте CroudSupply народ собирает средства на проект самодельного радиолюбительского компьютера ELLO 2M. За $65 можно получить набор плат для самостоятельной сборки. Полностью собранный работающий компьютер обойдётся в $180.



Базовая версия ELLO 2M построена на чипе PIC32MX470 и поставляется с прошивкой Micromite Basic. Продвинутая версия ELLO 2M2 содержит процессор PIC32MZ-EF и позволяет установить операционную систему LiteBSD.