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

MNVolkov

Разработчик
Команда форума
Сообщения
384
Реакции
2,611
Баллы
483
Ваше "умное" устройство
Amazfit Bip
  • Первое сообщение
  • #1
Разработка приложений для 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 компилятора
Библиотека
Библиотека включает в себя как адреса функций прошивки, так и некоторые функции, которые написаны для облегчения разработки пользовательских приложений, например функции работы с меню. Библиотеку необходимо распаковать в папку на одном уровне с папками приложений. Путь до этой папки будет указан в сценарии сборки.

Актуальная версия библиотеки на GitHub -

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



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



BipEmulator от @x27 - Эмулятор окружения BipOS для часов Amazfit Bip, предназначенный для написания и отладки приложений под управлением мода BipOS (0.5.X) в среде Microsoft Visual Studio 2019

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



Пример приложения
Специально для облегчения вхождения подготовлен пример приложения на языке СИ 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. Для обновления данных в оперативной памяти часы после обновления ресурсов необходимо перезагрузить. Сделать это можно либо через меню настроек выключив и включив часы.
У вас нет разрешения на просмотр содержимого!


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


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

Вложения

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

Pólux

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

Вложения

  • 102.3 KB Просмотры: 19

BurSoft

Друг форума
Сообщения
60
Реакции
167
Баллы
38
Ваше "умное" устройство
Amazfit Bip
Затем попробуйте build2.bat из прилагаемого пакета. Остальные файлы являются оригиналами @MNVolkov.
Спасибо, работает!
Вы подсказали мне причину, почему build.bat от @MNVolkov не компилирует. Дело в том, что батник сохранён в Unix-формате, с окончаниями строк LF, для винды это непривычный формат.
В этом случае возникает ошибка
Bash:
import.s:(.text+0x8): undefined reference to `main'
о которой я писал ранее
Если сохранить этот батник в Win-формате CRLF, то компиляция проходит нормально
Изменить окончания строк можно в Notepad++, нужно в режиме замены (режим поиска Расширенный) заменить все \n на \r\n
На скриншоте видно, как выглядит неправильные окончания строк, и окно замены
2021-04-03_185324.png
 

Pólux

Разработчик
Команда форума
Сообщения
156
Реакции
340
Баллы
78
Ваше "умное" устройство
Amazfit Bip
@BurSoft У тебя острое зрение! В Notepad++ также есть пункт меню, посвященный преобразованиям в конце строки:
Captura de pantalla 2021-04-03 205235.png
 

BurSoft

Друг форума
Сообщения
60
Реакции
167
Баллы
38
Ваше "умное" устройство
Amazfit Bip
@BurSoft У тебя острое зрение! В Notepad++ также есть пункт меню, посвященный преобразованиям в конце строки:
оо, круто) не додумался поискать эту функцию по менюшкам, преобразовал по старинке)
спасибо, так гораздо проще!
 
Последнее редактирование:

sashapont

Новичок
Сообщения
16
Реакции
2
Баллы
13
Ваше "умное" устройство
Amazfit Bip
Господа, а есть возможность скомпилировать эльфы на маке? Майк файл для линукса, который выкладывали здесь не сработал :(
 

Sanya pilot

Местный
Сообщения
47
Реакции
83
Баллы
58
Ваше "умное" устройство
Amazfit Bip
Господа, а есть возможность скомпилировать эльфы на маке? Майк файл для линукса, который выкладывали здесь не сработал :(
Оп, а можете ткнуть где скинули? Мне позарез надо, не терплю на винде прогать
 
  •  Мне нравится
Реакции: be3

sashapont

Новичок
Сообщения
16
Реакции
2
Баллы
13
Ваше "умное" устройство
Amazfit Bip
Где-то в начале этой темы видел
 

ugers

Местный
Сообщения
85
Реакции
416
Баллы
68
Ваше "умное" устройство
Amazfit Bip
Обновление BipStatusbarLibrary
*Адаптация под BipOS 0.5.5 - перенес изменения из приложения DnD от @MNVolkov,
*Добавлена зарядка батареи. Теперь при зарядке отображается соответствующий значок
1617723677627.png
Исходники:

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

 

AllexIn

Новичок
Сообщения
6
Реакции
0
Баллы
1
Ваше "умное" устройство
Amazfit Bip
Доступны только графические ресурсы.
То есть возможности залить в ресы текстовый файл и прочитать его из приложения - нет?
Я к чему:
Есть желание вынести часть логики приложения в внешний ресурс, чтобы потенциальный пользователь приложения мог его под себя поправить не трогая саму приложуху, а лишь подправив конфиг.
 

BurSoft

Друг форума
Сообщения
60
Реакции
167
Баллы
38
Ваше "умное" устройство
Amazfit Bip
Приветствую всех!
Сделал что-то типа Галереи для просмотра изображений из демо "Демонстрация использования "собственных" ресурсов", но сейчас оно показывает все подряд ресурсы.
Что нужно изменить в коде приложения, чтобы оно видело только графику png?
Спасибо!
 

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

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