×
20.01.2013
216.012.1dc1

СПОСОБ ДИНАМИЧЕСКОЙ КОМПОНОВКИ ПРОГРАММЫ НА ВСТРОЕННОЙ ПЛАТФОРМЕ И ВСТРОЕННАЯ ПЛАТФОРМА

Вид РИД

Изобретение

Юридическая информация Свернуть Развернуть
№ охранного документа
0002473111
Дата охранного документа
20.01.2013
Краткое описание РИД Свернуть Развернуть
Аннотация: Изобретение относится к области динамической компоновки программы на встроенной платформе. Техническим результатом является повышение скорости динамической компоновки программы. Раскрываются способ динамической компоновки программы на встроенной платформе и встроенная платформа. Встроенная платформа содержит промежуточный уровень, содержащий по меньшей мере один класс. Компонуемая прикладная программы содержит по меньшей мере один класс. Прикладные программы компилируют в Позиционно-Независимые Коды ПНК (Р1С), причем позиции хранения различных кодовых разделов в кодах ПНК (PIC), полученных при компиляции различных функций прикладной программы, не пересекаются друг с другом; все коды ПНК (Р1С) копируют в память встроенной операционной системы; создают указатель класса и осуществляют перенос указателя класса между классом промежуточного уровня и классом прикладной программы для динамической компоновки прикладной программы. 2 н. и 7 з.п. ф-лы, 5 ил., 2 табл.
Реферат Свернуть Развернуть

Область изобретения

Настоящее изобретение относится к технологиям встроенных систем и, в частности, к способу динамической компоновки программы на встроенной платформе и к встроенной платформе.

Уровень техники

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

В настоящее время в продуктах со встроенной системой, таких как мобильный телефон, динамическая компоновка программы реализуется с использованием режима Формат Исполняемого и Компонуемого Модуля ФИКМ (ELF), как показано на рис.1.

На фиг.1 показана схема динамической компоновки программы с использованием режима ФИКМ (ELF) в известном техническом решении.

Как показано на фиг.1, если динамическая компоновка программы реализуется с использованием режима ФИКМ (ELF), то сначала прикладная программа компилируется в файл в формате ФИКМ (ELF), а затем для файла в формате ФИКМ (ELF) загрузочная программа ELF LOADER выполняет перемещение функций и перемещение переменных; далее файл в формате ФИКМ (ELF), для которого было выполнено перемещение, загружается во встроенную Операционную Систему ОС (OS) и, в завершение, для осуществления динамической компоновки программы встроенная операционная система компонует функции и переменные согласно позициям функций и переменных, для которых было выполнено перемещение.

Если динамическая компоновка программы реализуется с использованием режима ФИКМ (ELF), важную роль играет загрузочная программа ELF LOADER, осуществляющая настройку адресов функций и переменных в прикладной программе по адресам во встроенной операционной системе. В частности, загрузочная программа ELF LOADER извлекает доступную информацию из файла в формате ФИКМ (ELF), вычисляет адреса, используемые после перемещения для функций и переменных в файле в формате ФИКМ (ELF), и затем выполняет перемещение для функций и переменных согласно этим адресам.

Как можно видеть, когда динамическая компоновка программы реализуется с использованием режима ФИКМ (ELF), необходимо извлекать доступную информацию из файла в формате ФИКМ (ELF) и обрабатывать эту доступную информацию, поэтому снижается скорость динамической компоновки программы и вычислительные ресурсы используются нерационально.

Сущность изобретения

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

Технические решения согласно настоящему изобретению реализуются следующим образом.

Способ динамической компоновки программы на встроенной платформе включает в себя следующее: встроенная платформа содержит промежуточный уровень, промежуточный уровень содержит по меньшей мере один класс, каждый класс инкапсулируется по меньшей мере из одного интерфейса функции встроенной операционной системы и соответствует таблице виртуальных функций, элементы таблицы виртуальных функций соответствуют по меньшей мере одному интерфейсу функции встроенной операционной системы; компонуемая прикладная программа содержит по меньшей мере один класс, каждый класс инкапсулируется по меньшей мере из одного интерфейса функции прикладной программы и соответствует таблице виртуальных функций; элементы таблицы виртуальных функций соответствуют по меньшей мере одному интерфейсу функции прикладной программы; данный способ также включает в себя:

компиляцию прикладной программы в Позиционно-Независимые Коды ПНК (РIС) (причем позиции хранения различных кодовых разделов в кодах ПНК (РIС), полученных при компиляции различных функций прикладной программы, не пересекаются друг с другом); копирование всех кодов ПНК (РIС) в память встроенной операционной системы;

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

Встроенная платформа содержит: промежуточный уровень;

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

промежуточный уровень сконфигурирован для реализации вышеуказанного способа.

Можно заметить, что промежуточный уровень инкапсулируется из встроенной операционной системы и содержит один или несколько классов. Каждый класс инкапсулируется из множества интерфейсов функций встроенной операционной системы и соответствует таблице виртуальных функций. При этом элементы таблицы виртуальных функций соответствуют множеству интерфейсов функций. Компонуемая прикладная программа содержит один или несколько классов, причем каждый класс инкапсулируется из множества интерфейсов функций прикладной программы и соответствует таблице виртуальных функций. При этом элементы таблицы виртуальных функций соответствуют множеству интерфейсов функций прикладной программы. Прикладная программа компилируется в Позиционно-Независимые Коды ПНК (РIС), причем позиции хранения различных кодовых разделов в кодах ПНК (РIС), полученных при компиляции различных функций прикладной программы, не пересекаются друг с другом, поэтому прикладная программа может работать в любой области памяти, и функции прикладной программы могут вызываться независимо. Все коды ПНК (РIС) копируются в память встроенной операционной системы; создается указатель класса, который переносится между классом промежуточного уровня и классом прикладной программы для динамической компоновки прикладной программы.

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

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

Краткое описание чертежей

На фиг.1 показана схема динамической компоновки программы с использованием режима ФИКМ (ELF) в известном техническом решении.

На фиг.2 показана схема, представляющая структуру встроенной платформы в соответствии с примером осуществления настоящего изобретения.

На фиг.3 показана схема динамической компоновки прикладной программы на встроенной платформе, показанной на фиг.2.

На фиг.4 показана схема, представляющая взаимодействие между промежуточным уровнем и прикладной программой в соответствии с примером осуществления настоящего изобретения.

На фиг.5 показана среда разработки динамической прикладной программы, где в качестве ядра используется служба Мгновенного Обмена Сообщениями МОС (IM).

Подробное раскрытие изобретения

Ниже приведено подробное описание настоящего изобретения со ссылками на прилагаемые чертежи и примеры осуществления для более полного представления цели, решений и преимуществ настоящего изобретения.

На фиг.2 показана схема, представляющая структуру встроенной платформы в соответствии с примером осуществления настоящего изобретения. Как показано на фиг.2, встроенная платформа содержит промежуточный уровень.

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

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

На фиг.3 показана схема динамической компоновки прикладной программы на встроенной платформе, показанной на фиг.2.

Как показано на фиг.3, процедура динамической компоновки прикладной программы включает: этап компиляции и генерации файла BIN, этап выгрузки и сохранения файла BIN, этап загрузки файла BIN и этап динамической компоновки прикладной программы.

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

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

Задача импорта функции относится к тому, как динамически компонуемая прикладная программа вызывает функцию встроенной операционной системы через промежуточный уровень; задача экспорта функции относится к тому, как встроенная операционная система вызывает функцию прикладной программы через промежуточный уровень; задача вызова подфункции относится к тому, как прикладная программа или промежуточный уровень вызывает подфункцию прикладной программы; и задача определения местоположения глобальной переменной относится к тому, как (при условии, что в прикладной программе содержится глобальная переменная) переместить глобальную переменную прикладной программы на встроенной платформе после компоновки прикладной программы на встроенной платформе.

Задача импорта функции и задача экспорта функции в основном связаны с этапом компиляции и генерации файла BIN, а также с этапом динамической компоновки программы; задача вызова подфункции и задача определения местоположения глобальной переменной в основном связаны с этапом компиляции и генерации файла BIN.

Четыре этапа, показанные на фиг.3, можно принять как некоторую определенную последовательность, тогда способ динамической компоновки программы на встроенной платформе, показанной на фиг.2, описывается согласно характеристикам встроенной операционной платформы ARM.

1) Этап компиляции и генерации файла BIN

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

Затем прикладная программа компилируется в Позиционно-Независимые Коды ПНК (PIC), а коды ПНК (PIC) генерируются в форме файла BIN. Коды ПНК (PIC) относятся к кодам, которые могут использоваться в любой области памяти вне зависимости от конкретной позиции в памяти.

В частности, если прикладная программа компилируется с помощью компилятора ARM ADS1.2, то при использовании опции компиляции acps/ropi коды прикладной программы могут быть скомпилированы в коды ПНК (PIC), причем использование опции ropi означает, что позиции сгенерированных кодов, предназначенных только для чтения, являются независимыми позициями.

Поскольку прикладная программа компилируется в коды ПНК (РIС), то на этапе загрузки файла BIN этот файл может быть загружен в любую позицию в памяти встроенной платформы.

Поскольку прикладная программа разделена на множества компонентов, и промежуточный уровень реализуется с использованием множества компонентов, то прикладная программа и промежуточный уровень могут реализовывать импорт и экспорт функций посредством взаимодействия между компонентами или посредством классов. В описании этапа динамической компоновки программы приведено подробное объяснение реализации импорта и экспорта функций прикладной программой и промежуточным уровнем посредством классов.

Применительно к задаче вызова подфункции, можно обеспечить независимую работу функций прикладной программы посредством компиляции функций прикладной программы в коды ПНК (РIС), при этом функции становятся независимыми, а соответствующие различным функциям позиции в памяти не накладываются друг на друга на этапе компиляции и генерации файла BIN, что позволяет вызывать любую из функций, не воздействуя на другие функции.

В частности, если прикладная программа компилируется с помощью компилятора ARM ADS1.2, то при использовании опции компиляции ZO функции прикладной программы компилируются в коды ПНК (PIC), которые являются независимыми и не накладываются друг на друга.

Например, предположим, что существует следующая прикладная программа:

int appMain(Ishell*ptr,void**ppobj)

{

fun1();

return 0;

}

void fun1 (void)

{

}

Предположим, что функция appMain всегда компилируется по начальному адресу 0×00000000 файла BIN, а для компиляции прикладной программы используются опции компиляции acps/ropi и ZO; результаты компиляции приведены в таблице 1.

Таблица 1
функция адрес
appMain РС+0×00
fun1 РС+0×0А

В таблице 1 PC является начальным адресом файла BIN, а 0×0А представляет адрес смещения функции fun1.

Как показано в таблице 1, после компиляции прикладной программы в коды ПНК (PIC), которые обеспечивают независимость функций и отсутствие наложений позиций хранения кодовых разделов, соответствующих различным функциям, переход между функциями является относительным переходом, и позиция после перехода определяется адресом сдвига. Следовательно, каждая функция прикладной программы может вызываться функциями в прикладной программе и функциями вне прикладной программы.

Применительно к задаче определения местоположения глобальной переменной могут использоваться два режима обработки. В одном из этих режимов обработки глобальная переменная помещается в структуру в прикладной программе и, следовательно, находящаяся в структуре глобальная переменная также компилируется в коды ПНК (PIC), когда структура компилируется в коды ПНК (PIC). В другом режиме обработки глобальная переменная компилируется в Позиционно-Независимые Данные ПНД (PID). В первом из вышеупомянутых режимов обработки на встроенную платформу обработки, показанную на фиг.2, одновременно может быть загружено множество прикладных программ; поскольку глобальная переменная хранится в структуре в прикладной программе, то для использования глобальной переменной ее необходимо получить из структуры, и поэтому выполнение рабочих операций усложняется. Во втором из вышеуказанных режимов обработки глобальная переменная компилируется в данные ПНД (PID), поэтому глобальная переменная может храниться вне структуры и, в общем случае, хранится в области оперативной памяти, следующей за областью, в которой расположены коды ПНК (PIC), что позволяет избежать междоменного доступа к данным.

Если прикладная программа компилируется с помощью компилятора ARMADS1.2, то при использовании опции компиляции acps/rWpi разделы данных прикладной программы компилируются в данные ПНД (PID). Данные ПНД (PID) относятся к обрабатываемым разделам данных, копируемым в любую область оперативной памяти. При использовании опции компиляции acps/rWpi разделы данных прикладной программы компилируются в данные ПНД (PID), сохраняемые в области памяти [R9]+OFFSET. [R9] является значением регистра R9, a OFFSET - значением адреса смещения. Для того чтобы избежать междоменного доступа к данным, значение регистра R9 может быть сконфигурировано как значение, равное начальному адресу BUFFER плюс размер файла BIN, то есть глобальная переменная будет сохраняться вслед за файлом BIN, полученным при компиляции прикладной программы.

Поскольку при компиляции глобальной переменной в данные ПНД (PID) требуется регистр R9, то при использовании последнего из вышеуказанных способов определения местоположения глобальной переменной прикладные программы можно загружать только по отдельности, то есть невозможно одновременно загрузить множество прикладных программ.

Кроме того, на этапе компиляции и генерации файла BIN необходимо скомпилировать главную функцию прикладной программы по начальному адресу файла BIN, то есть скомпилировать точку входа в прикладную программу на начальный адрес файла BIN, так чтобы обеспечить определение местоположения каждого компонента прикладной программы в процессе динамической компоновки программы. В частности, при компиляции прикладной программы точка входа в прикладную программу конфигурируется как first.

Если прикладная программа компилируется с помощью компилятора ARMADS1.2, то прикладная программа может быть скомпилирована в файл BIN с использованием режима thumb. Функциональный адрес кодов, сгенерированных с использованием режима thumb, обычно смещен на 32 бита (то есть на 4 байта) по сравнению с функциональным адресом кодов, сгенерированных с использованием режима arm. Когда встроенная операционная система впервые вызывает прикладную программу через промежуточный уровень, указатель точки входа в прикладную программу указывает на позицию начального адреса буфера, в котором находится файл BIN, со смещением на 4 байта, и начинается выполнение прикладной программы; например, если начальным адресом файла BIN является адрес 0×8000, то указатель точки входа должен указывать на адрес 0×8004.

Если прикладная программа компилируется с использованием режима thumb, то каждая команда в прикладной программе компилируется в 2 байта (при использовании режима arm в ходе компиляции прикладной программы каждая команда компилируется в 4 байта), что позволяет уменьшить размер файла BIN, повысить скорость выполнения прикладной программы и снизить потребляемую мощность.

Резюмируя вышеизложенное: на этапе компиляции и генерации файла BIN прикладная программа компилируется в файл BIN, местоположение точки входа в прикладную программу определяется как начальный адрес файла BIN; прикладная программа компилируется в коды ПНК (PIC), области памяти с кодами ПНК (PIC), полученными при компиляции различных функций прикладной программы, не накладываются друг на друга; глобальная переменная в прикладной программе компилируется в данные ПНД (PID), либо глобальная переменная сохраняется в структуре в прикладной программе.

2) Этап выгрузки и сохранения файла BIN

На этапе выгрузки и сохранения файла BIN выполняется непосредственное копирование файла BIN в файловую систему.

3) Этап загрузки файла BIN

Когда загружается файл BIN, выполняется непосредственное копирование файла BIN в память из файловой системы, при этом не требуется анализировать файл BIN или выполнять вычисления согласно информации из файла BIN.

4) Этап динамической компоновки программы

На этапе динамической компоновки программы создается действительный указатель класса и для реализации импорта и экспорта функций этот указатель класса переносится между классом промежуточного уровня и классом прикладной программы.

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

Например, промежуточный уровень содержит класс IFastString, класс IFastString содержит указатель таблицы виртуальных функций (pvt) и таблица виртуальных функций содержит три подфункции: IFastString_Realase, IFastringString_GetLength и IfastString_Find.

В таблице 2 показан схематический состав класса IFastString.

Когда прикладная программа вызывает функции класса IFastString, создается указатель класса FastString и трем элементам (IFastString_Realase, IFastringString_GetLength и IfastString_Find) в таблице виртуальных функций, соответствующей указателю класса, присваиваются действительные адреса функций. Следовательно, прикладная программа может определить местоположение трех функций (IFastString_Realase, IFastringString_GetLength и IfastString_Find) во встроенной операционной системе.

Таким образом, когда прикладная программа вызывает функции встроенной операционной системы с использованием класса управления (например, класса Shell), создаются различные указатели классов, соответствующие классам на промежуточном уровне; класс создается согласно идентификатору класса на промежуточном уровне; создаются экземпляры интерфейсов функций, соответствующих элементам таблицы виртуальных функций в классе, и с помощью созданного указателя класса прикладная программа определяет местоположение интерфейсов функций, соответствующих элементам в таблице виртуальных функций, на которую указывает указатель класса. Идентификатор класса на промежуточном уровне определяется при компиляции промежуточного уровня; когда прикладная программа вызывает класс промежуточного уровня, прикладная программа переносит в класс управления идентификатор вызываемого класса, затем класс управления создает соответствующий указатель класса согласно идентификатору класса и переносит указатель класса в прикладную программу.

Соответственно, точка входа в прикладную программу может быть представлена в следующей форме:

int appMain(Shell*ptr,void**ppobj)

{

return 0;

}

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

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

Применительно к процедуре импорта функции прикладная программа создает указатель класса, соответствующий классу промежуточного уровня, посредством класса управления. Применительно к процедуре экспорта функции при компиляции прикладной программы создается экземпляр каждого класса прикладной программы так, чтобы загрузка сгенерированного при компиляции прикладной программы файла BIN на промежуточный уровень (то есть загрузка файла BIN) была эквивалентна непосредственному копированию созданного экземпляра класса прикладной программы на промежуточный уровень; если встроенная операционная система вызывает класс прикладной программы, то есть, когда осуществляется экспорт функции, непосредственно вызывается класс прикладной программы, скопированный на промежуточный уровень.

Резюмируя вышеизложенное: в настоящем изобретении промежуточный уровень инкапсулируется из встроенной операционной системы и прикладная программа разделяется на множество компонентов посредством классов, так чтобы реализовать взаимодействие между промежуточным уровнем и прикладной программой через компоненты (см. фиг.4).

На фиг.4 показана схема, представляющая взаимодействие между промежуточным уровнем и прикладной программой в соответствии с примером осуществления настоящего изобретения.

Как показано на фиг.4, когда прикладной программе необходимо вызвать функции встроенной операционной системы, для осуществления взаимодействия компонентов создается указатель класса, соответствующий классу промежуточного уровня; когда необходимо вызвать прикладную программу, промежуточный уровень вызывает прикладную программу через сохраненный указатель класса прикладной программы, причем указатель класса прикладной программы самостоятельно создается прикладной программой и сохраняется на промежуточном уровне.

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

На фиг.5 показана среда разработки динамической прикладной программы радиосистемы, где в качестве ядра используется служба Мгновенного Обмена Сообщениями МОС (IM).

Как показано на фиг.5, среда разработки включает встроенную операционную систему, промежуточную платформу (SDK) динамической прикладной программы и динамическую прикладную программу. SDK представляет собой вышеупомянутый промежуточный уровень, инкапсулированный из встроенной операционной системы, и динамическая прикладная программа является вышеупомянутой прикладной программой, скомпилированной в форме классов.

Как показано на фиг.5, динамическая прикладная программа содержит компонент А для реализации основной функции МОС (IM), компонент В для реализации игры МОС (IM), компонент С для реализации предпочтительной функции МОС (IM), компонент D для реализации видеофункции МОС (IM), компонент Е для реализации музыкальной функции МОС (IM), компоненты F и G для реализации расширенного приложения. Компонент А, компонент F и компонент G взаимодействуют с промежуточным уровнем посредством классов, компоненты В-Е загружаются и работают после загрузки компонента А (это означает, что одновременно работают несколько компонентов); для реализации процедуры вставки прикладной программы компоненты В-Е могут взаимодействовать с классами компонента А посредством классов компонентов В-Е.

Как показано на фиг.5, SDK и встроенная операционная система компилируются и загружаются в микросхему одновременно. Динамически компонуемая прикладная программа создается в форме классов для реализации определенных прикладных функций, отдельно компилируется с использованием способа, показанного на фиг.3, затем выгружается в файловую систему микросхемы и, когда потребуется загрузка, копируется в память встроенной операционной системы; SDK и прикладная программа взаимодействуют друг с другом посредством класса.

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

Кроме того, пространство памяти, которое занимает файл BIN, полученный при компиляции прикладной программы, составляет одну треть от пространства памяти, занимаемого файлом в формате ФИКМ (ELF), полученным при компиляции прикладной программы; следовательно, если прикладная программа компилируется в файл BIN, обеспечивается экономия пространства памяти.

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

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


СПОСОБ ДИНАМИЧЕСКОЙ КОМПОНОВКИ ПРОГРАММЫ НА ВСТРОЕННОЙ ПЛАТФОРМЕ И ВСТРОЕННАЯ ПЛАТФОРМА
СПОСОБ ДИНАМИЧЕСКОЙ КОМПОНОВКИ ПРОГРАММЫ НА ВСТРОЕННОЙ ПЛАТФОРМЕ И ВСТРОЕННАЯ ПЛАТФОРМА
СПОСОБ ДИНАМИЧЕСКОЙ КОМПОНОВКИ ПРОГРАММЫ НА ВСТРОЕННОЙ ПЛАТФОРМЕ И ВСТРОЕННАЯ ПЛАТФОРМА
СПОСОБ ДИНАМИЧЕСКОЙ КОМПОНОВКИ ПРОГРАММЫ НА ВСТРОЕННОЙ ПЛАТФОРМЕ И ВСТРОЕННАЯ ПЛАТФОРМА
СПОСОБ ДИНАМИЧЕСКОЙ КОМПОНОВКИ ПРОГРАММЫ НА ВСТРОЕННОЙ ПЛАТФОРМЕ И ВСТРОЕННАЯ ПЛАТФОРМА
Источник поступления информации: Роспатент

Showing 61-70 of 79 items.
13.01.2017
№217.015.8903

Терминал и способ чтения на основе терминала

Настоящее изобретение относится к способу чтения с использованием терминалов. Технический результат заключается в обеспечении возможности чтения с сенсорного экрана терминала для людей с ограниченными возможностями. Способ чтения включает операцию детектирования прикосновения к сенсорному...
Тип: Изобретение
Номер охранного документа: 0002602781
Дата охранного документа: 20.11.2016
13.01.2017
№217.015.8a27

Дисплейный терминал и способ отображения интерфейсных окон

Изобретение относится к отображению интерфейсных окон на дисплейном терминале. Технический результат заключается в обеспечении возможности быстрого переключения между множеством окон для просмотра. Размещают в виде стопки указанные по меньшей мере две миниатюры интерфейсных окон для...
Тип: Изобретение
Номер охранного документа: 0002604091
Дата охранного документа: 10.12.2016
25.08.2017
№217.015.9653

Способ, устройство и терминал для подсказки приложения системы sns

Изобретение относится к средствам для подсказки приложения системы службы («SNS») социальной сети. Технический результат заключается в обеспечении возможности вывода подсказки на основании конкретной административной области . Получают информацию о местоположении, относящуюся к текущему...
Тип: Изобретение
Номер охранного документа: 0002608670
Дата охранного документа: 23.01.2017
25.08.2017
№217.015.9a5d

Способ и терминал для редактирования информации в приложениях службы социальной сети

Группа изобретений раскрывает способ редактирования информации в приложении службы социальной сети (SNS) и терминал для этого. Технический результат – экономия объема памяти командного терминала и ускорение процесса редактирования информации. Для этого способ может содержать этапы, на которых...
Тип: Изобретение
Номер охранного документа: 0002609759
Дата охранного документа: 02.02.2017
25.08.2017
№217.015.a535

Система и способ совместного использования горячей клавиши экземплярами приложения

Изобретение относится к компьютерной технологии и, более конкретно, к совместному использованию горячей клавиши экземплярами приложения. Технический результат заключается в повышении точности реакции горячей клавиши для приложений. Технический результат достигается за счет приема сообщения...
Тип: Изобретение
Номер охранного документа: 0002607614
Дата охранного документа: 10.01.2017
25.08.2017
№217.015.a5fd

Способ, система и машиночитаемый носитель данных для группирования в социальных сетях

Изобретение относится к средствам группирования в социальной сети. Технический результат заключает в увеличении скорости группирования друзей. Получают данные о взаимоотношениях друзей первого пользователя, причем данные о взаимоотношениях друзей содержат один или более узлов-друзей. Определяют...
Тип: Изобретение
Номер охранного документа: 0002607621
Дата охранного документа: 10.01.2017
25.08.2017
№217.015.a73f

Система и способ для синхронизации контактной информации

Изобретение относится к области организации адресных книг пользователей, а именно к синхронизации адресной книги в терминале пользователя и адресной книги в социальной сети. Техническим результатом является обеспечение возможности объединения информации о лицах, имеющих совпадающую контактную...
Тип: Изобретение
Номер охранного документа: 0002608190
Дата охранного документа: 17.01.2017
25.08.2017
№217.015.a792

Способ и система технического осмотра и соответствующий им машиночитаемый носитель данных

Группа изобретений относится к средствам контроля процессов обслуживания или служебных портов в компьютерной сети. Технический результат – повышение эффективности контроля процесса обслуживания или служебного порта в компьютерной сети, включающей множество серверов, за счет использования...
Тип: Изобретение
Номер охранного документа: 0002607991
Дата охранного документа: 11.01.2017
25.08.2017
№217.015.adac

Система и способ формирования круга общения и компьютерный носитель информации

Изобретение относится к Интернет-технологии, в частности к способу и системе формирования круга общения и устройству памяти. Технический результат заключается в обеспечении динамического формирования информации круга общения. Технический результат достигается за счет распознавания атрибутов...
Тип: Изобретение
Номер охранного документа: 0002612608
Дата охранного документа: 09.03.2017
25.08.2017
№217.015.b087

Способ совместного доступа к файлам, терминал и сервер ретрансляции

Изобретение относится к способу совместного доступа к файлам по сети Интернет. Технический результат заключается в предотвращении множества операций по обмену данными для совместного доступа к множеству файлов. Предложен способ, в котором принимают посредством сервера ретрансляции запрос на...
Тип: Изобретение
Номер охранного документа: 0002613531
Дата охранного документа: 16.03.2017
Showing 61-70 of 76 items.
13.01.2017
№217.015.8903

Терминал и способ чтения на основе терминала

Настоящее изобретение относится к способу чтения с использованием терминалов. Технический результат заключается в обеспечении возможности чтения с сенсорного экрана терминала для людей с ограниченными возможностями. Способ чтения включает операцию детектирования прикосновения к сенсорному...
Тип: Изобретение
Номер охранного документа: 0002602781
Дата охранного документа: 20.11.2016
13.01.2017
№217.015.8a27

Дисплейный терминал и способ отображения интерфейсных окон

Изобретение относится к отображению интерфейсных окон на дисплейном терминале. Технический результат заключается в обеспечении возможности быстрого переключения между множеством окон для просмотра. Размещают в виде стопки указанные по меньшей мере две миниатюры интерфейсных окон для...
Тип: Изобретение
Номер охранного документа: 0002604091
Дата охранного документа: 10.12.2016
25.08.2017
№217.015.9653

Способ, устройство и терминал для подсказки приложения системы sns

Изобретение относится к средствам для подсказки приложения системы службы («SNS») социальной сети. Технический результат заключается в обеспечении возможности вывода подсказки на основании конкретной административной области . Получают информацию о местоположении, относящуюся к текущему...
Тип: Изобретение
Номер охранного документа: 0002608670
Дата охранного документа: 23.01.2017
25.08.2017
№217.015.9a5d

Способ и терминал для редактирования информации в приложениях службы социальной сети

Группа изобретений раскрывает способ редактирования информации в приложении службы социальной сети (SNS) и терминал для этого. Технический результат – экономия объема памяти командного терминала и ускорение процесса редактирования информации. Для этого способ может содержать этапы, на которых...
Тип: Изобретение
Номер охранного документа: 0002609759
Дата охранного документа: 02.02.2017
25.08.2017
№217.015.a535

Система и способ совместного использования горячей клавиши экземплярами приложения

Изобретение относится к компьютерной технологии и, более конкретно, к совместному использованию горячей клавиши экземплярами приложения. Технический результат заключается в повышении точности реакции горячей клавиши для приложений. Технический результат достигается за счет приема сообщения...
Тип: Изобретение
Номер охранного документа: 0002607614
Дата охранного документа: 10.01.2017
25.08.2017
№217.015.a5fd

Способ, система и машиночитаемый носитель данных для группирования в социальных сетях

Изобретение относится к средствам группирования в социальной сети. Технический результат заключает в увеличении скорости группирования друзей. Получают данные о взаимоотношениях друзей первого пользователя, причем данные о взаимоотношениях друзей содержат один или более узлов-друзей. Определяют...
Тип: Изобретение
Номер охранного документа: 0002607621
Дата охранного документа: 10.01.2017
25.08.2017
№217.015.a73f

Система и способ для синхронизации контактной информации

Изобретение относится к области организации адресных книг пользователей, а именно к синхронизации адресной книги в терминале пользователя и адресной книги в социальной сети. Техническим результатом является обеспечение возможности объединения информации о лицах, имеющих совпадающую контактную...
Тип: Изобретение
Номер охранного документа: 0002608190
Дата охранного документа: 17.01.2017
25.08.2017
№217.015.a792

Способ и система технического осмотра и соответствующий им машиночитаемый носитель данных

Группа изобретений относится к средствам контроля процессов обслуживания или служебных портов в компьютерной сети. Технический результат – повышение эффективности контроля процесса обслуживания или служебного порта в компьютерной сети, включающей множество серверов, за счет использования...
Тип: Изобретение
Номер охранного документа: 0002607991
Дата охранного документа: 11.01.2017
25.08.2017
№217.015.adac

Система и способ формирования круга общения и компьютерный носитель информации

Изобретение относится к Интернет-технологии, в частности к способу и системе формирования круга общения и устройству памяти. Технический результат заключается в обеспечении динамического формирования информации круга общения. Технический результат достигается за счет распознавания атрибутов...
Тип: Изобретение
Номер охранного документа: 0002612608
Дата охранного документа: 09.03.2017
25.08.2017
№217.015.b087

Способ совместного доступа к файлам, терминал и сервер ретрансляции

Изобретение относится к способу совместного доступа к файлам по сети Интернет. Технический результат заключается в предотвращении множества операций по обмену данными для совместного доступа к множеству файлов. Предложен способ, в котором принимают посредством сервера ретрансляции запрос на...
Тип: Изобретение
Номер охранного документа: 0002613531
Дата охранного документа: 16.03.2017
+ добавить свой РИД