Открыть главное меню

Изменения

Application

460 байт добавлено, 05:29, 1 апреля 2019
Нет описания правки
Приложение для AFW разрабатывалось таким, чтобы работать из [[ROM]]'а, поэтому может вообще не иметь глобальных переменных, все данные должны храниться в структуре приложения, в которой первой должна быть структура [[APPLICATION_T]]. Указатель на экземпляр текущего приложения передаётся в каждом обработчике событий, из которых, по сути, и состоит приложение. В приложениях из эльфов немного иначе, как минимум таблица ивентов регистрации должна быть в [[RAM]]'е, т.к. база ивентов выделяется динамически. В прошивке коды ивентов назначаются автоматически в процессе компиляции.
<metadesc>Application - приложение для системы AFW. Приложение это именно то, что взаимодействует с пользователем (драйвера, в отличие от приложений, обычно не взаимодействуют с пользователем, они работают с железом и приложениями или операционной системой).</metadesc>
== Таблица [[Event|ивентов]] регистрации ==
== Старт ==
Функция старта приложения имеет вид:
'''<pre>UINT32 AppStart( EVENT_STACK_T * ev_st, REG_ID_T reg_id, void * reg_hdl );</pre>
Параметры:
* ev_st - указатель на [[Event_Stack|стэк событий]].
На этой стадии нужно выделить память под структуру и провести инициализацию приложения. Все это делает функция [[APP_InitAppData]].
<pre>APPLICATION_T* APP_InitAppData(void *main_event_handler,
UINT32 sizeof_app,
REG_ID_T reg_id,
</pre>
Если функция вернула не NULL, то приложение можно запустить, после чего приложение будет обрабатывать ивенты.
 
=== Запуск ===
214
правок