Hp ipaq 214 linux

Вторая жизнь HP iPaq 214

Решил закрыть старый гештальд и собрать образ для сия детища от HP. Благо документации навалом, даташиты, в большинстве своём, опубликовали. От тогоже Oliford’а и парней которые портируют(али) Android (Не уверен что оно ещё живо).

Ковыря исходники U-Boot совместно с даташитами и смахивая скупые слёзы, поймал себя на мысли, что сюда весьма неплохо вписываются современные С++17 с его constexpr и повсеместным использованием ссылок, т.к. память на старте не инициализированна, да и никаких аллокаторов у нас нет, посему ограничимся стэком. Немного помучавшись, получился такой интерфейс для моргания диодами через GPIO:

Что скажите за такой подход в целом?

Я такой неделю назад выкинул. Хороший был аппарат, 10 лет назад.

Их как грязи на рынке, я новый в открытой коробке за 10 евро купил. Апарат весьма интересный, да и начинка весьма неплоха, имхо тогда ХПшники не смогли раскрыть потенциал чипа нормально на винмобле, а вот все болячки винды притащили

Если у тебя используется та самая идиома, которая позволяет вокруг операторов вызывать служебный код на основе raii — то да. Блин не могу вспомнить как оно зовётся, ну это, типа когда по operator [] возвращает rvalue которое в конструкторе/деструкторе например лочит мутех, и имеет оператор приведения на ссылку сутевого типа(честно сходу как с точкой сделать я х3, гораздо проще всё с operator -> и operator* ). Иначе, если ты локаешь весь cpu — это слегка не комильфо.

чёта нее до конца понял, у меня тут по operator[] возвращяется инстанс класса описывающий интерфейсы пина по ссылке.

Marwell pxa используют 4 набора регистров для управления 128 GPIO, и тут по сути мапинг происходит, для замены вот такого стиля на более читабельный:

Эмм, ну я примерно про такое(не компилил):

жуть какая, ты его специально запутывал?)) Я примерно понял о чем ты && и тд, да я этим пользуюсь. Т.к. пишу загрузчик/инициализатор то всё собирается с ключём -nostdlib, тут нет ни new, мьютексов, ничего))) Даже start пришлось объявить в extern «C» чтобы манглинг не лез и линковщик с ума не сходил.

походу надо нормальное описание в шапку закинуть

Я если честно — х3 как в этом вашем эмбедед устроенна синхронизация, но направление пина и значения на нём по идее должны атомарно задаваться? Чисто наивное предположение, ибо как оно на самом деле, я на 100% не знаю.

В случае диодов это наверное не роляет, а вот в случае привода ногоотрубательной машинки таки может.

_REG(0x40ff0010) |= 0x28; — это чисто теоретически вполне может быть атомарно, т.к. оба бита ты выставляешь разом, вопрос какова модель памяти.

А твой подход — говорит ‘это был вход, но ты сделай выход потупи такт, потом таки выстави туда напряжение’. За этот такт может кому-то ногу отрубить.

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

Читайте также:  Windows 10 sounds fix

Я примерно понял о чем ты && и тд, да я этим пользуюсь тут нет ни new, мьютексов, ничего

Наверное всё же не понял 🙂 Rvalue ссылка, это рука сама написала, косточка в порядке вызовов report , если этот код дописать до конпилябельного состояния.

Я не эмбедед, так мимокрокодил. Кароче смотри, есть регистры для управления GPIO, по неким адресам:

  • 0x40ff0000 — Каждый бит задаёт направление пина 0-31
  • 0x40ff0010 — Тут каждый бит соответствует текущему значению пина 0-31
  • 0x40ff0020 — Тут каждый бит позволяет установить значение на пинах
  • 0x40ff0030 — Каждый записанный сюда бит установит значение соотвествующего пина в 0
  • На этом веселье не заканчивается

Часть пинов MultiFunctional, т.е. надо решить какой функционал они будут исполнять.

Если всё делать по «классике», то будет

UBoot да и Linux заворачивают это всё в несколько слоёв препроцессора, читать и править тяжело, я и решил попробовать что то более человекопонимаемое сделать.

Насчет атомарности операций я не уверен, в даташитах написано что писать в gpio в режиме input безопасно, да и ковыряние gpio происходит в начальной инициализации и индикации, всё остальное заворачивается в нормальные протоколы ssp/spi и тд. которые создаются на конкретных gpio.

В этом как бэ и идея, формирования иерархии

Да, это голимый сахар, но если он создаёт оверхед близкий к 0, то чёб нет?

А, ну если маски для направления, значения и т.п. разнесенны в памяти, то тут ты ничего нового не привнёс, оверхед дело десятое, пока не жмёт. По идее, для синхронизации должен быть какой то механизм, как минимум — тактовый генератор, вот что смущает.

Источник

Hp ipaq 214 linux

Нам понадобятся программа VirtualBox и Parted Magic
Если программа VirtualBox большинству юзеров известна, то об Parted Magic следует рассказать отдельно. Это готовое решение на базе Linux, рассчитанное на работу с LiveCD. Дистрибутив включает полноценную операционную систему. Последняя, в свою очередь, кроме управления разделами, может также производить настройку установленной системы, работать с сетью интернет, а также производить любые операции с данными (удаление, восстановление, перенос и прочее). Это одно из лучших решений для управления разделами в среде Linux, основанное на исходных кодах GParted. Мне лично данная ось понравилась простотой и быстрой загрузкой.
Итак, поставили VirtualBox и создаем машину без виртуальных дисков и с 256МВ памяти (больше-лучше!):

Затем в настройках CD/DVD-ROM указываем путь к образу Parted Magic, а в настройках USB включаем контроллер, поддержку USB2.0 и добавляем из списка имеющееся устройство (mass storage или reader):

Стартуем машину, в появившемся меню выбираем Default Settings (но если моник менее 1280х1024 — Alternate graphical server и далее — Start. using Xvesa), ждем пока загрузится.

Убеждаемся, что флешка воткнута и, если все верно, ее уже не видно из винды, кликаем на Partition Editor; Создаем primary-разделы fat16 (прим. 60М) и ext2 (ост.), жмем apply, по окончании процесса жмем close и выключаем машину, нажав right ctrl (хост-клавиша) и закрыв окно:

В раздел fat поместить файлы:

uImage-ipaq214-20100305.bin — переименовываем в uImage-ipaq214.bin
u-boot-ipaq214-20100305.bin — переименовываем в BLDIAG.NB0
boot-script.txt.uImage

Читайте также:  Linux top sorted by memory

В раздел ext2 распаковать файлы из angstrom-x11-image-20100305.tar
После распаковки там будет кучка папок


Файлы качать здесь

  1. Скачайте HaRET. Для простого запуска Linux вы можете использовать официальную программу с http://www.handhelds.org/moin/moin.cgi/HaRET, если же вы собираетесь заниматься разработкой или реверс инжинирингом, то возьмите мою версию на странице для скачивания.
  2. Скачайте последнюю версию U-Boot image (u-boot-ipaq214-xxxx.bin).
  3. Скачайте default.txt.
  4. Отредактируйте default.txt, задайте место нахождения скачанного вами u-boot-ipaq214-xxxx.bin для U-Boot.
  5. Разместите haret.exe, default.txt и u-boot-ipaq214-xxxx.bin в любой папке на вашем устройстве winCE.
  6. Скачайте последнюю версию образа ядра (uImage-ipaq214-20090322.bin) и сохраните её на разделе FAT16 флеш карточки как ‘uImage-ipaq214.bin’
  7. Отключите Wifi и Bluetooth. Выключите питание КПК и отключите все USB устройства и провода от вашего iPAQ.
  8. Отключите аккумулятор приблизительно на 10 сек.
  9. Вставьте батарею и дождитесь загрузки Windows.
  10. Если по какой-то причине включились Wifi/Bluetooth, отключите их.
  11. Запустите haret.exe.
  12. Тапните ‘run’ .
  13. Должен загрузиться U-Boot и вы сможете загрузиться с MMC карточки выбрав опцию 1.

Смущает только MMC в последнем пункте, а с SD что не получится загрузиться?

Сообщение отредактировал GrusWR — 18.09.11, 21:51

Источник

Hp ipaq 214 linux

Нам понадобятся программа VirtualBox и Parted Magic
Если программа VirtualBox большинству юзеров известна, то об Parted Magic следует рассказать отдельно. Это готовое решение на базе Linux, рассчитанное на работу с LiveCD. Дистрибутив включает полноценную операционную систему. Последняя, в свою очередь, кроме управления разделами, может также производить настройку установленной системы, работать с сетью интернет, а также производить любые операции с данными (удаление, восстановление, перенос и прочее). Это одно из лучших решений для управления разделами в среде Linux, основанное на исходных кодах GParted. Мне лично данная ось понравилась простотой и быстрой загрузкой.
Итак, поставили VirtualBox и создаем машину без виртуальных дисков и с 256МВ памяти (больше-лучше!):

Затем в настройках CD/DVD-ROM указываем путь к образу Parted Magic, а в настройках USB включаем контроллер, поддержку USB2.0 и добавляем из списка имеющееся устройство (mass storage или reader):

Стартуем машину, в появившемся меню выбираем Default Settings (но если моник менее 1280х1024 — Alternate graphical server и далее — Start. using Xvesa), ждем пока загрузится.

Убеждаемся, что флешка воткнута и, если все верно, ее уже не видно из винды, кликаем на Partition Editor; Создаем primary-разделы fat16 (прим. 60М) и ext2 (ост.), жмем apply, по окончании процесса жмем close и выключаем машину, нажав right ctrl (хост-клавиша) и закрыв окно:

В раздел fat поместить файлы:

uImage-ipaq214-20100305.bin — переименовываем в uImage-ipaq214.bin
u-boot-ipaq214-20100305.bin — переименовываем в BLDIAG.NB0
boot-script.txt.uImage

В раздел ext2 распаковать файлы из angstrom-x11-image-20100305.tar
После распаковки там будет кучка папок


Файлы качать здесь

  1. Скачайте HaRET. Для простого запуска Linux вы можете использовать официальную программу с http://www.handhelds.org/moin/moin.cgi/HaRET, если же вы собираетесь заниматься разработкой или реверс инжинирингом, то возьмите мою версию на странице для скачивания.
  2. Скачайте последнюю версию U-Boot image (u-boot-ipaq214-xxxx.bin).
  3. Скачайте default.txt.
  4. Отредактируйте default.txt, задайте место нахождения скачанного вами u-boot-ipaq214-xxxx.bin для U-Boot.
  5. Разместите haret.exe, default.txt и u-boot-ipaq214-xxxx.bin в любой папке на вашем устройстве winCE.
  6. Скачайте последнюю версию образа ядра (uImage-ipaq214-20090322.bin) и сохраните её на разделе FAT16 флеш карточки как ‘uImage-ipaq214.bin’
  7. Отключите Wifi и Bluetooth. Выключите питание КПК и отключите все USB устройства и провода от вашего iPAQ.
  8. Отключите аккумулятор приблизительно на 10 сек.
  9. Вставьте батарею и дождитесь загрузки Windows.
  10. Если по какой-то причине включились Wifi/Bluetooth, отключите их.
  11. Запустите haret.exe.
  12. Тапните ‘run’ .
  13. Должен загрузиться U-Boot и вы сможете загрузиться с MMC карточки выбрав опцию 1.
Читайте также:  Help with microsoft windows

Смущает только MMC в последнем пункте, а с SD что не получится загрузиться?

Сообщение отредактировал GrusWR — 18.09.11, 21:51

Источник

Hp ipaq 214 linux

Нам понадобятся программа VirtualBox и Parted Magic
Если программа VirtualBox большинству юзеров известна, то об Parted Magic следует рассказать отдельно. Это готовое решение на базе Linux, рассчитанное на работу с LiveCD. Дистрибутив включает полноценную операционную систему. Последняя, в свою очередь, кроме управления разделами, может также производить настройку установленной системы, работать с сетью интернет, а также производить любые операции с данными (удаление, восстановление, перенос и прочее). Это одно из лучших решений для управления разделами в среде Linux, основанное на исходных кодах GParted. Мне лично данная ось понравилась простотой и быстрой загрузкой.
Итак, поставили VirtualBox и создаем машину без виртуальных дисков и с 256МВ памяти (больше-лучше!):

Затем в настройках CD/DVD-ROM указываем путь к образу Parted Magic, а в настройках USB включаем контроллер, поддержку USB2.0 и добавляем из списка имеющееся устройство (mass storage или reader):

Стартуем машину, в появившемся меню выбираем Default Settings (но если моник менее 1280х1024 — Alternate graphical server и далее — Start. using Xvesa), ждем пока загрузится.

Убеждаемся, что флешка воткнута и, если все верно, ее уже не видно из винды, кликаем на Partition Editor; Создаем primary-разделы fat16 (прим. 60М) и ext2 (ост.), жмем apply, по окончании процесса жмем close и выключаем машину, нажав right ctrl (хост-клавиша) и закрыв окно:

В раздел fat поместить файлы:

uImage-ipaq214-20100305.bin — переименовываем в uImage-ipaq214.bin
u-boot-ipaq214-20100305.bin — переименовываем в BLDIAG.NB0
boot-script.txt.uImage

В раздел ext2 распаковать файлы из angstrom-x11-image-20100305.tar
После распаковки там будет кучка папок


Файлы качать здесь

  1. Скачайте HaRET. Для простого запуска Linux вы можете использовать официальную программу с http://www.handhelds.org/moin/moin.cgi/HaRET, если же вы собираетесь заниматься разработкой или реверс инжинирингом, то возьмите мою версию на странице для скачивания.
  2. Скачайте последнюю версию U-Boot image (u-boot-ipaq214-xxxx.bin).
  3. Скачайте default.txt.
  4. Отредактируйте default.txt, задайте место нахождения скачанного вами u-boot-ipaq214-xxxx.bin для U-Boot.
  5. Разместите haret.exe, default.txt и u-boot-ipaq214-xxxx.bin в любой папке на вашем устройстве winCE.
  6. Скачайте последнюю версию образа ядра (uImage-ipaq214-20090322.bin) и сохраните её на разделе FAT16 флеш карточки как ‘uImage-ipaq214.bin’
  7. Отключите Wifi и Bluetooth. Выключите питание КПК и отключите все USB устройства и провода от вашего iPAQ.
  8. Отключите аккумулятор приблизительно на 10 сек.
  9. Вставьте батарею и дождитесь загрузки Windows.
  10. Если по какой-то причине включились Wifi/Bluetooth, отключите их.
  11. Запустите haret.exe.
  12. Тапните ‘run’ .
  13. Должен загрузиться U-Boot и вы сможете загрузиться с MMC карточки выбрав опцию 1.

Смущает только MMC в последнем пункте, а с SD что не получится загрузиться?

Сообщение отредактировал GrusWR — 18.09.11, 21:51

Источник

Оцените статью