Инструкция Bip | Разработка приложений для BipOS ( SDK )

MNVolkov

Разработчик
Команда форума
Сообщения
263
Реакции
1,987
Баллы
338
Ваше "умное" устройство
Amazfit Bip
Разработка приложений для BipOS
Software Development Kit (SDK)
MNVolkov BipOS

Вводная часть
Начиная с версии 0.5 MNVolkov MOD полностью переработан код запуска приложений. Теперь каждое приложение - это отдельный файл, хранящийся в ресурсах. Формат исполняемых файлов Arm-elf (или просто "эльф"). Мод получил новое название BipOS. При запуске меню мода происходит сканирование ресурсов на наличие приложений. Для каждой прошивки разное количество ресурсов, а приложения всегда размещаются в конце. Поэтому загрузчик ищет ресурсы по сигнатуре Elf начиная с 930 ресурса. Из найденных приложений формируется список, который помещается в меню "приложения".
Для того чтобы повысить общее удобство и снизить количество несовместимостей разработана система "прошивконезависимых" приложений. Так один и тот же Калькулятор будет работать как на латин 1.1.5.12, так и на нелатин 1.1.2.05. без изменений (необходимо только разместить его в RES файле соответствующей версии). Независимость от прошивки удалось достигнуть за счет применения универсальной библиотеки libbip.a которая содержит адреса функций прошивки. После загрузки эльфа в оперативную память происходит пересчет внутренних адресов функций и переменных т.н. релокация, а так же подмена библиотечных адресов функций на реальные адреса функций в прошивке.


Среда разработки
Для разработки приложений понадобится среда разработки и компилятор. В качестве среды разработки я использую обычный Notepad++ . Наверное, можно настроить Code::Blocks или другую IDE я до этого не дошел, отложил на будущее. Установка специализированной IDE конечно повысит удобство разработки. На среде разработки останавливаться не буду.

Компилятор
Для сборки приложения я применяю GNU Embedded Toolchain for Arm. Для установки необходимо проделать следующие шаги:
  1. Скачать тулчейн можно тут:

    Пожалуйста войдите или зарегистрируйтесь для просмотра скрытого текста.


    Качаем файл gcc-arm-none-eabi-8-2019-q3-update-win32-sha2.exe ( или более свежую редакцию) с таким описанием: Windows 32-bit Installer (Signed for Windows 7 and later)
  2. Можно все установить по умолчанию, в конце установки установить все галочки
  3. Рекомендуется добавить в системный (не пользовательский) PATH путь до папки bin компилятора
Библиотека
Библиотека включает в себя как адреса функций прошивки, так и некоторые функции, которые написаны для облегчения разработки пользовательских приложений, например функции работы с меню. Библиотеку необходимо распаковать в папку на одном уровне с папками приложений. Путь до этой папки будет указан в сценарии сборки.
v.0.5.2
У вас нет разрешения на просмотр содержимого!

v.0.5.1
У вас нет разрешения на просмотр содержимого!

v.0.5
У вас нет разрешения на просмотр содержимого!


Пример приложения
Специально для облегчения вхождения подготовлен пример приложения на языке СИ template_app. Функционал простой: создается рабочий экран приложения, при нажатии в центр экрана меняется цвет фона и надписи.
Этот пример можно использовать в качестве шаблона. Для этого нужно создать новую папку приложения и скопировать в неё файлы примера. Наименование папки приложения в скрипте сборки берется в качестве служебного имени приложения.
Отображаемое в списке приложений наименование необходимо внести в файл label.txt При этом после наименования не должно быть каких либо символов или перевода строки.
Для сборки приложения подготовлен bat файл. Сборка осуществляется путем запуска bat файла внутри папки без параметров. Все параметры компилятора и линковщика совместимые с загрузчиком BipOS внесены в этот скрипт.
Приложение-шаблон:
У вас нет разрешения на просмотр содержимого!

Исходники на GitHub

Пожалуйста войдите или зарегистрируйтесь для просмотра скрытого текста.



Пожалуйста войдите или зарегистрируйтесь для просмотра скрытого текста.



Сборка RES файла и загрузка в часы
Для запуска эльфа необходимо загрузить его в часы. Для этого необходимо поместить его в RES файл. Для сборки RES файлов разработана специальная программа для ПК (Win32) с помощью которой можно добавить в ваш существующий RES файл необходимые приложения. ResPack.exe - это консольное приложение для выполнения простых операций с RES фалами Amazfit Bip: отображение содержимого с краткой информацией по каждому ресурсу, распаковка сырых данных ресурсов, выполнение выравнивания строковых ресурсов версии 61 и 69 для решения проблемы пропадания текста при загрузке кастомных ресурсов, а также добавления произвольных файлов в ресурсы.
Для добавления в существующий RES файл файлов приложений запускаем из командной строки:
Код:
ResPack -a <выходной_RES_файл> <входной_RES_файл> файлы которые надо добавить
Полученный RES файл прошивается в часы обычным способом, например, через GadgetBridge. Для обновления данных в оперативной памяти часы после обновления ресурсов необходимо перезагрузить. Сделать это можно либо через меню настроек выключив и включив часы.
У вас нет разрешения на просмотр содержимого!


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


Обсуждение процесса разработки ведется в этой теме.
 

Вложения

Последнее редактирование модератором:

maxgrom

Участник
Сообщения
61
Реакции
65
Баллы
33
Ваше "умное" устройство
Amazfit Bip
можно инструкцию поподробнее? что-нибудь похожее на уроке, с разбором каждой функции? а то программирую уже 5 лет, а ничего не понял
 
  •  Мне нравится
Реакции: LORD

maxgrom

Участник
Сообщения
61
Реакции
65
Баллы
33
Ваше "умное" устройство
Amazfit Bip
Точнее непонятно, как собирать рес. набросал код, получил эльфа, а прога выдает error 1. Что не так делаю?
 

MNVolkov

Разработчик
Команда форума
Сообщения
263
Реакции
1,987
Баллы
338
Ваше "умное" устройство
Amazfit Bip
Точнее непонятно, как собирать рес. набросал код, получил эльфа, а прога выдает error 1. Что не так делаю?
какая прога выдает ошибку, приведите пример запуска программ с параметрами
 

maxgrom

Участник
Сообщения
61
Реакции
65
Баллы
33
Ваше "умное" устройство
Amazfit Bip
какая прога выдает ошибку, приведите пример запуска программ с параметрами
Respack.exe выдает, действую так:
1)Открываю cmd.exe
2)перетаскиваю respack.exe
3) ввожу -a
4) ввожу file.res
5) перетаскиваю рес с вашими программами
6) перетаскиваю эльфа
7) нажимаю enter
Получаю err: unable to read *путь*\res.res no error
 

trace

Разработчик
Команда форума
Сообщения
408
Реакции
1,169
Баллы
233
Ваше "умное" устройство
Amazfit Bip

align

Новичок
Сообщения
8
Реакции
1
Баллы
23
Под управление плеером возможна разработка программы?
 

MNVolkov

Разработчик
Команда форума
Сообщения
263
Реакции
1,987
Баллы
338
Ваше "умное" устройство
Amazfit Bip
Respack.exe выдает, действую так:
1)Открываю cmd.exe
2)перетаскиваю respack.exe
3) ввожу -a
4) ввожу file.res
5) перетаскиваю рес с вашими программами
6) перетаскиваю эльфа
7) нажимаю enter
Получаю err: unable to read *путь*\res.res no error
Да, лучше пока работать через консоль. Упаковщик ресурсов постараюсь доработать в этом плане.
Под управление плеером возможна разработка программы?
Да, если когда нибудь появится управление плеером для Bip, то в виде эльфа
 

Piligrim321

Участник
Сообщения
35
Реакции
27
Баллы
33
Может чушь напишу, но всё же. Есть же программа для управления плеером через кнопку. А если научить часы эмулировать нажатие кнопки нажатием на определенную область экрана?
 

maxgrom

Участник
Сообщения
61
Реакции
65
Баллы
33
Ваше "умное" устройство
Amazfit Bip
Может чушь напишу, но всё же. Есть же программа для управления плеером через кнопку. А если научить часы эмулировать нажатие кнопки нажатием на определенную область экрана?
Я уже предлагал, ответили, что кнопкой удобнее, но как по мне лучше приложение с интерфейсом
 

Cherkes001

Участник
Сообщения
47
Реакции
48
Баллы
38
Ваше "умное" устройство
Amazfit Bip
Труъ программисты тут?

Пожалуйста войдите или зарегистрируйтесь для просмотра скрытого текста.


Тут вроде как описан алгоритм взаимодействия с часами.
 

maxgrom

Участник
Сообщения
61
Реакции
65
Баллы
33
Ваше "умное" устройство
Amazfit Bip
Пытаюсь собрать .Рес файл, получаю сообщение, мол, все успешно, после команды -l в самом конце появляются приложения, но часы их не видят. Что делаю не так?
 

MNVolkov

Разработчик
Команда форума
Сообщения
263
Реакции
1,987
Баллы
338
Ваше "умное" устройство
Amazfit Bip
по команде -l в информации указано name: служебное имя; label: отображаемое имя. в список приложений выводится только те приложения у которых отображаемое имя не пустоте, при сборке в папке проекта должен быть файл label.txt в нем необходимо указать отображаемое имя приложения, потом скомпилировать
 

maxgrom

Участник
Сообщения
61
Реакции
65
Баллы
33
Ваше "умное" устройство
Amazfit Bip
по команде -l в информации указано name: служебное имя; label: отображаемое имя. в список приложений выводится только те приложения у которых отображаемое имя не пустоте, при сборке в папке проекта должен быть файл label.txt в нем необходимо указать отображаемое имя приложения, потом скомпилировать
имя я задал, там каракули (кириллица как никак), но приложения нет. Причем когда ставлю Ваши приложения, также не отображаются
 

maxgrom

Участник
Сообщения
61
Реакции
65
Баллы
33
Ваше "умное" устройство
Amazfit Bip
промучив автора прошивки, свои нервы и часы, представляю полную инструкцию для чайников по загрузке эльфов в часы
1) Скачайте и установите программу по этой ссылке (это компилятор, так что не бойтесь, вирусов не будет):

Пожалуйста войдите или зарегистрируйтесь для просмотра скрытого текста.


2) Скачайте данный архив и распакуйте в удобное место:

Пожалуйста войдите или зарегистрируйтесь для просмотра скрытого текста.


3) Киньте эльфа и файл ресурсов в папку с файлами из архива
4) Запустите файл "консоль.bat"
5) Введите "respack -a имя_нового_файла имя_файла_ресурсов имя_эльфа"
6) Прошейте полученный файл ресурсов в часы
7) Перейдите в настройки в часах
8) Нажмите "Выключить"
9) Удерживайте кнопку до включения часов
Готово! ваши программы появятся в меню Alipay
 

MNVolkov

Разработчик
Команда форума
Сообщения
263
Реакции
1,987
Баллы
338
Ваше "умное" устройство
Amazfit Bip
4) Запустите файл "консоль.bat"
Что дает этот батник? Это же из комплекта GNU Toolchain, запускаться он должен со своего места в пути расположения компилятора, иначе от него толку нет.
Ссылка на компилятор не работает.
 

maxgrom

Участник
Сообщения
61
Реакции
65
Баллы
33
Ваше "умное" устройство
Amazfit Bip
Что дает этот батник? Это же из комплекта GNU Toolchain, запускаться он должен со своего места в пути расположения компилятора, иначе от него толку нет.
Ссылка на компилятор не работает.
Батник работает, ссылка действительно битая, тогда надо ставить вторую по счету win32 на офф. Сайте GNU toolchain
 

MNVolkov

Разработчик
Команда форума
Сообщения
263
Реакции
1,987
Баллы
338
Ваше "умное" устройство
Amazfit Bip
  1. Скачать тулчейн можно тут:

    Пожалуйста войдите или зарегистрируйтесь для просмотра скрытого текста.


    Качаем файл gcc-arm-none-eabi-8-2019-q3-update-win32-sha2.exe ( или более свежую редакцию) с таким описанием: Windows 32-bit Installer (Signed for Windows 7 and later)
Вот в инструкции есть
 

maxgrom

Участник
Сообщения
61
Реакции
65
Баллы
33
Ваше "умное" устройство
Amazfit Bip
Написав пару программ, появился вопрос: а есть возможность декомпилировать эльфа?
 
  •  Мне нравится
Реакции: be3

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу