Способ и устройство для обновления микропрограммного обеспечения
FIRMWARE UPDATE METHOD AND DEVICE

[0001] По данной заявке испрашивается приоритет согласно заявке Китая №201410778909X, поданной 15 декабря 2014 года, содержание которой целиком включено в состав настоящей заявки посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ
[0002] Раскрытие настоящего изобретения в целом относится к области интеллектуальных устройств, а более конкретно, - к способу и устройству обновления микропрограммного обеспечения.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
[0003] Микропрограммное обеспечение в качестве наиболее важного программного компонента электронных устройств обеспечивает корректное функционирование таких устройств. Однако некоторые внешние причины могут приводить к возникновению проблем при выполнении микропрограммного обеспечения и, таким образом, вызывать сбои в процессе нормального режима функционирования электронных устройств.
[0004] Если возникают проблемы, связанные с микропрограммным обеспечением электронного устройства, то для обновления микропрограммного обеспечения требуется применять специализированные средства. В процессе обновления микропрограммного обеспечения специализированное средство обновления для замены устаревшего микропрограммного обеспечения подключается к электронному устройству, которое затем запускает управляющую программу, соответствующую специализированному средству обновления, для чтения микропрограммного обеспечения, размещенного в специализированном средстве обновления.
[0005] При создании настоящего изобретения был найден по меньшей мере тот недостаток указанного выше способа, что в отсутствие установленной управляющей программы в электронном устройстве, микропрограммное обеспечение, хранимое в специализированном средстве обновления, не может быть считано, и в результате процесс обновления завершится неудачно.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0006] Для решения проблемы существующего уровня техники, заключающейся в том, что, если соответствующая управляющая программа не установлена в электронном устройстве, то микропрограммное обеспечение, содержащееся в специализированном средстве обновления, не может быть прочитано, и, следовательно, процесс обновления в этом случае завершится неудачно, в рамках раскрытия настоящего изобретения предлагается способ и устройство для обновления микропрограммного обеспечения. Ниже описываются соответствующие технические решения.
[0007] В соответствии с первым аспектом вариантов раскрытия настоящего изобретения предлагается способ обновления микропрограммного обеспечения. Способ включает выполнение следующих операций:
[0008] если электронное устройство находится на стадии запуска, определение, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска;
[0009] если обнаружено, что подключенному устройству управляющая программа не требуется, запись обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство; и
[0010] если электронное устройство находится в нормальном режиме функционирования после перезапуска, запуск обновляющего микропрограммного обеспечения, записанного в электронное устройство.
[0011] Дополнительно процедура определения, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, включает:
[0012] получение информации дескриптора интерфейса устройства, подключенного к электронному устройству перед стадией запуска;
[0013] если информация дескриптора интерфейса указывает на то, что подключенное устройство представляет собой запоминающее устройство большой емкости, получение информации о типе подключенного устройства; и
[0014] если информация о типе устройства указывает на то, что подключенному устройству не требуется управляющая программа, определение того, что подключенное устройство применяется без управляющей программы.
[0015] Дополнительно процедура записи обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство включает:
[0016] получение из подключенного устройства адреса памяти обновляющего микропрограммного обеспечения;
[0017] определение области памяти микропрограммного обеспечения в электронном устройстве и
[0018] запись обновляющего микропрограммного обеспечения, хранящегося по адресу памяти, в область памяти микропрограммного обеспечения.
[0019] Дополнительно процедура получения из подключенного устройства адреса памяти обновляющего микропрограммного обеспечения включает:
[0020] чтение информации в конкретном секторе подключенного устройства;
[0021] оценка, использует ли подключенное устройство конкретную файловую систему, в соответствии с информацией, хранимой в конкретном секторе;
[0022] если принимается решение о том, что подключенное устройство использует конкретную файловую систему, определение заранее заданного адреса памяти в качестве адреса памяти обновляющего микропрограммного обеспечения;
[0023] если принимается решение о том, что подключенное устройство не использует конкретную файловую систему, определение адреса памяти обновляющего микропрограммного обеспечения в соответствии с метаинформацией, входящей в состав информации, содержащейся в конкретном секторе, при этом метаинформация содержит данные о начальном адресе и размере данных обновляющего микропрограммного обеспечения.
[0024] Дополнительно процедура записи обновляющего микропрограммного обеспечения, хранящегося по адресу памяти, в область памяти микропрограммного обеспечения включает:
[0025] если в электронном устройстве существует одна область памяти микропрограммного обеспечения, замена исходного микропрограммного обеспечения, хранящегося в области памяти микропрограммного обеспечения, на обновляющее микропрограммное обеспечение; и
[0026] если в электронном устройстве существуют по меньшей мере две области памяти обновляющего микропрограммного обеспечения, запись обновляющего микропрограммного обеспечения в область памяти обновляющего микропрограммного обеспечения, установленную в качестве неактивной области, которая сконфигурирована для хранения микропрограммного обеспечения, не выполняющегося в электронном устройстве.
[0027] Дополнительно способ также включает:
[0028] определение, корректно ли записано обновляющее микропрограммное обеспечение в область памяти микропрограммного обеспечения, установленную в качестве неактивной области;
[0029] если обнаруживается, что обновляющее микропрограммное обеспечение корректно записано в область памяти микропрограммного обеспечения, установленную в качестве неактивной области, установку области памяти микропрограммного обеспечения, которая ранее являлась активной, в качестве неактивной области и установку области памяти микропрограммного обеспечения, в которую корректно записано обновляющее микропрограммное обеспечение, в качестве активной области, которая конфигурируется для хранения микропрограммного обеспечения, выполняемого электронным устройством в нормальном режиме функционирования.
[0030] В соответствии со вторым аспектом вариантов раскрытия настоящего изобретения предлагается устройство обновления микропрограммного обеспечения. Устройство содержит:
[0031] модуль обнаружения устройства, сконфигурированный для определения, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, если электронное устройство находится на стадии запуска;
[0032] модуль записи микропрограммного обеспечения, сконфигурированный для записи обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство, если модуль обнаружения устройства определяет, что подключенному устройству управляющая программа не требуется; и
[0033] модуль запуска микропрограммного обеспечения, сконфигурированный для запуска обновляющего микропрограммного обеспечения, записанного в электронное устройство, если электронное устройство находится в нормальном режиме функционирования после перезапуска.
[0034] Модуль обнаружения устройства содержит: [0035] первый подмодуль получения информации, сконфигурированный для получения информации дескриптора интерфейса устройства, подключенного к электронному устройству перед стадией запуска;
[0036] второй подмодуль получения информации, сконфигурированный для получения информации о типе подключенного устройства, если информация дескриптора интерфейса, полученная первым подмодулем получения информации, указывает на то, что подключенное устройство представляет собой запоминающее устройство большой емкости; и
[0037] подмодуль определения устройства, сконфигурированный для определения того, что подключенному устройству не требуется управляющая программа, если информация о типе устройства, полученная вторым подмодулем получения информации, указывает на то, что подключенному устройству не требуется управляющая программа.
[0038] Дополнительно модуль записи микропрограммного обеспечения содержит:
[0039] подмодуль получения адреса, сконфигурированный для получения из подключенного устройства адреса памяти обновляющего микропрограммного обеспечения;
[0040] подмодуль определения области, сконфигурированный для определения области памяти микропрограммного обеспечения в электронном устройстве; и
[0041] подмодуль записи микропрограммного обеспечения, сконфигурированный для записи обновляющего микропрограммного обеспечения, хранимого по адресу памяти, полученному подмодулем получения адреса, в область памяти микропрограммного обеспечения, которая определена подмодулем определения области.
[0042] Дополнительно подмодуль получения адреса содержит:
[0043] подмодуль чтения информации сектора, сконфигурированный для чтения информации в конкретном секторе подключенного устройства;
[0044] подмодуль оценки системы, сконфигурированный для определения, использует ли подключенное устройство конкретную файловую систему, в соответствии с информацией в конкретном секторе, полученной подмодулем чтения информации сектора;
[0045] первый подмодуль определения, сконфигурированный для определения заранее заданного адреса памяти в качестве адреса памяти обновляющего микропрограммного обеспечения, если подмодуль оценки системы принимает решение о том, что подключенное устройство использует конкретную файловую систему; и
[0046] второй подмодуль определения, сконфигурированный для определения адреса памяти обновляющего микропрограммного обеспечения в соответствии с метаинформацией, входящей в состав информации, содержащейся в конкретном секторе, если подмодуль оценки системы принимает решение о том, что подключенное устройство не использует конкретную файловую систему; при этом метаинформация содержит данные о начальном адресе и размере данных обновляющего микропрограммного обеспечения.
[0047] Дополнительно подмодуль записи микропрограммного обеспечения содержит:
[0048] первый подмодуль записи, сконфигурированный для замены исходного микропрограммного обеспечения, хранящегося в области памяти микропрограммного обеспечения, на обновляющее микропрограммное обеспечение, если в электронном устройстве существует одна область памяти микропрограммного обеспечения; и
[0049] второй подмодуль записи, сконфигурированный для записи обновляющего микропрограммного обеспечения в область памяти микропрограммного обеспечения, установленную в качестве неактивной области, если в электронном устройстве существуют по меньшей мере две области памяти микропрограммного обеспечения, при этом области памяти микропрограммного обеспечения, установленная в качестве неактивной, сконфигурирована для хранения микропрограммного обеспечения, не выполняющегося в электронном устройстве.
[0050] Дополнительно устройство также содержит
[0051] модуль обнаружения микропрограммного обеспечения, сконфигурированный для определения, корректно ли записано обновляющее микропрограммное обеспечение в область памяти микропрограммного обеспечения, установленную в качестве неактивной области; и
[0052] модуль установки области, сконфигурированный таким образом, чтобы, если модуль обнаружения микропрограммного обеспечения определяет корректность записи обновляющего микропрограммного обеспечения в область памяти микропрограммного обеспечения, установленную в качестве неактивной области, область памяти микропрограммного обеспечения, которая ранее являлась активной, устанавливалась в качестве неактивной области, а область памяти микропрограммного обеспечения, в которую корректно записано обновляющее микропрограммное обеспечение, устанавливалась в качестве активной области, которая конфигурируется для хранения микропрограммного обеспечения, выполняемого электронным устройством в нормальном режиме функционирования.
[0053] В соответствии с третьим аспектом вариантов раскрытия настоящего изобретения предлагается устройство обновления микропрограммного обеспечения. Устройство содержит:
[0054] процессор и
[0055] память, в которой хранятся инструкции, выполняемые процессором;
[0056] при этом процессор сконфигурирован для выполнения следующих операций:
[0057] если электронное устройство находится на стадии запуска, определение, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска;
[0058] если обнаружено, что подключенному устройству управляющая программа не требуется, запись обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство; и
[0059] если электронное устройство находится в нормальном режиме функционирования после перезапуска, запуск обновляющего микропрограммного обеспечения, записанного в электронное устройство.
[0060] Путем реализации технических решений, соответствующих вариантам раскрытия настоящего изобретения, можно добиться преимуществ путем выполнения следующих операций.
[0061] Если электронное устройство находится на стадии запуска, определение, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска; если обнаружено, что подключенному устройству управляющая программа не требуется, запись обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство; и если электронное устройство находится в нормальном режиме функционирования после перезапуска, запуск обновляющего микропрограммного обеспечения, записанного в электронное устройство. Таким образом, даже если в электронном устройстве не установлена управляющая программа, обновление микропрограммного обеспечения электронного устройства может осуществляться с помощью устройства, которому не требуется управляющая программа, благодаря чему решается проблема, связанная с тем, что в отсутствие установленной в электронном устройстве управляющей программы не может быть прочитано микропрограммное обеспечение в специализированном средстве обновления, и, как следствие, процесс обновления микропрограммного обеспечения завершается неудачно. В результате процедура обновления микропрограммного обеспечения упрощается, благодаря чему можно повысить долю успешных попыток выполнения этой процедуры.
[0062] Следует принимать во внимание, что как предшествующее общее описание, так и последующее подробное описание представлено только в качестве примера и разъяснения сути изобретения и не ограничивает его объем, указанный в формуле изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0063] Прилагаемые чертежи, которые включены в состав этой спецификации и составляют одну из ее частей, иллюстрируют варианты осуществления, не противоречащие сути настоящего изобретения, и совместно с описанием помогают разобраться в принципах изобретения.
[0064] На фиг. 1 показан алгоритм выполнения способа обновления микропрограммного обеспечения в соответствии с примером раскрытия настоящего изобретения.
[0065] На фиг. 2 показан алгоритм выполнения способа обновления микропрограммного обеспечения в соответствии с другим примером раскрытия настоящего изобретения.
[0066] На фиг. 3 показана структурная блок-схема устройства обновления микропрограммного обеспечения в соответствии с примером осуществления настоящего изобретения.
[0067] На фиг. 4 показана структурная блок-схема устройства обновления микропрограммного обеспечения в соответствии с примером осуществления настоящего изобретения; и
[0068] на фиг. 5 показана структурная блок-схема устройства обновления микропрограммного обеспечения в соответствии с примером осуществления настоящего изобретения.
[0069] Посредством указанных выше чертежей иллюстрируются конкретные варианты раскрытия настоящего изобретения, более подробное описание которых приводится ниже. Эти чертежи и текстовое описание не предназначены для ограничения каким-либо образом объема концепции раскрытия настоящего изобретения, но служат для специалистов в этой области техники для разъяснения концепции раскрытия настоящего изобретения посредством конкретных вариантов его осуществления.
ПОДРОБНОЕ ОПИСАНИЕ
[0070] Далее более подробно описываются примеры осуществления настоящего изобретения, иллюстрируемые посредством прилагаемых чертежей. Последующее описание приводится со ссылками на прилагаемые чертежи, на которых одинаковые цифровые отметки обозначают одинаковые или схожие элементы, если явно не указано иное. Изложенные в последующем описании примеры осуществления не охватывают всех вариантов реализации, не противоречащих настоящему изобретению. В этом описании приводятся только примеры реализации устройств и способов, соответствующих аспектам, связанным с изобретением, сущность которого излагается в прилагаемой формуле изобретения.
[0071] Способы обновления микропрограммного обеспечения, представленные соответствующими вариантами раскрытия настоящего изобретения, могут быть реализованы с помощью электронного устройства, поддерживающего функцию обновления микропрограммного обеспечения. Электронное устройство может представлять собой смартфон, интеллектуальный телевизионный приемник, планшет, устройство чтения электронных книг, устройство воспроизведения файлов формата MP3 (Moving Picture Experts Group Audio Layer III, звуковой кодек третьего уровня, разработанный группой экспертов в области движущихся изображений), устройство воспроизведения файлов формата MP4 и т.п.
[0072] Для простоты описания настоящее изобретение раскрывается на примере способа обновления микропрограммного обеспечения, применимого к электронному устройству, однако, объем настоящего изобретения не ограничен этим способом.
[0073] На фиг. 1 показан алгоритм выполнения способа обновления микропрограммного обеспечения в соответствии с примером осуществления настоящего изобретения. Способ обновления микропрограммного обеспечения может применяться к электронному устройству и включать указанные ниже шаги.
[0074] На шаге 101, определяется, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, если электронное устройство находится на стадии запуска.
[0075] На шаге 102, если обнаружено, что подключенному устройству управляющая программа не требуется, выполняется запись обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство.
[0076] На шаге 103, если электронное устройство находится в нормальном режиме функционирования после перезапуска, запускается обновляющее микропрограммное обеспечение, записанное в электронное устройство.
[0077] Дополнительно процедура определения, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, включает получение информации дескриптора интерфейса устройства, подключенного к электронному устройству перед стадией запуска;
[0078] если информация дескриптора интерфейса указывает на то, что подключенное устройство представляет собой запоминающее устройство большой емкости, получение информации о типе подключенного устройства; и
[0079] если информация о типе устройства указывает на то, что подключенному устройству не требуется управляющая программа, определение того, что подключенное устройство применяется без управляющей программы.
[0080] Дополнительно процедура записи обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство включает:
[0081] получение из подключенного устройства адреса памяти обновляющего микропрограммного обеспечения;
[0082] определение области памяти микропрограммного обеспечения в электронном устройстве и
[0083] запись обновляющего микропрограммного обеспечения, размещенного по адресу памяти, в область памяти микропрограммного обеспечения.
[0084] Дополнительно процедура получения из подключенного устройства адреса памяти обновляющего микропрограммного обеспечения включает:
[0085] чтение информации в конкретном секторе подключенного устройства;
[0086] определение, использует ли подключенное устройство конкретную файловую систему, в соответствии с информацией, хранимой в конкретном секторе;
[0087] если принимается решение о том, что подключенное устройство использует конкретную файловую систему, определение заранее заданного адреса памяти в качестве адреса памяти обновляющего микропрограммного обеспечения;
[0088] если принимается решение о том, что подключенное устройство не использует конкретную файловую систему, определение адреса памяти обновляющего микропрограммного обеспечения в соответствии с метаинформацией, входящей в состав информации, содержащейся в конкретном секторе, при этом метаинформация содержит данные о начальном адресе и размере данных обновляющего микропрограммного обеспечения.
[0089] Дополнительно процедура записи обновляющего микропрограммного обеспечения, хранящегося по адресу памяти, в область памяти микропрограммного обеспечения включает:
[0090] если в электронном устройстве существует одна область памяти микропрограммного обеспечения, замену исходного микропрограммного обеспечения, хранящегося в области памяти микропрограммного обеспечения, на обновляющее микропрограммное обеспечение; и
[0091] если в электронном устройстве существуют по меньшей мере две области памяти обновляющего микропрограммного обеспечения, запись обновляющего микропрограммного обеспечения в область памяти обновляющего микропрограммного обеспечения, установленную в качестве неактивной области, которая сконфигурирована для хранения микропрограммного обеспечения, не выполняющегося в электронном устройстве.
[0092] Дополнительно способ также включает определение, корректно ли записано обновляющее микропрограммное обеспечение в область памяти микропрограммного обеспечения, установленную в качестве неактивной области, если обнаруживается, что обновляющее микропрограммное обеспечение корректно записано в область памяти микропрограммного обеспечения, установленную в качестве неактивной области, установку области памяти микропрограммного обеспечения, которая ранее являлась активной, в качестве неактивной области, и установку области памяти микропрограммного обеспечения, в которую корректно записано обновляющее микропрограммное обеспечение, в качестве активной области, которая конфигурируется для хранения микропрограммного обеспечения, выполняемого электронным устройством в нормальном режиме функционирования.
[0093] В целом способ обновления микропрограммного обеспечения, реализуемый в рамках осуществления настоящего изобретения, заключается в определении, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, если электронное устройство находится на стадии запуска; записи в электронное устройство обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, если обнаружено, что подключенному устройству управляющая программа не требуется; и запуске обновляющего микропрограммного обеспечения, записанного в электронное устройство, если электронное устройство находится в нормальном режиме функционирования после перезапуска. Таким образом, даже если в электронном устройстве не установлена управляющая программа, обновление микропрограммного обеспечения электронного устройства может осуществляться с помощью устройства, которому не требуется управляющая программа, благодаря чему решается проблема, связанная с тем, что в отсутствие установленной в электронном устройстве управляющей программы не может быть прочитано микропрограммное обеспечение в специализированном средстве обновления, и, как следствие, процесс обновления микропрограммного обеспечения завершается неудачно. В результате процедура обновления микропрограммного обеспечения упрощается, и появляется возможность повысить долю успешных попыток выполнения этой процедуры.
[0094] На фиг. 2 показан алгоритм выполнения способа обновления микропрограммного обеспечения в соответствии с другим примером осуществления настоящего изобретения. Способ обновления микропрограммного обеспечения может применяться к электронному устройству и включать указанные ниже шаги.
[0095] На шаге 201, определяется, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, если электронное устройство находится на стадии запуска.
[0096] Если электронное устройство не запущено, устройство подключается к электронному устройству через внешний интерфейс, поддерживаемый электронным устройством (и поэтому такое устройство называется подключенным устройством). Внешний интерфейс может представлять собой интерфейс универсальной последовательной шины (USB, Universal Serial Bus) электронного устройства. Если электронное устройство не оснащено USB-интерфейсом, то оно может соединяться с подключаемым устройством через выделенную соединительную линию. Например, такие электронные устройства, как смартфон, не поддерживают USB-интерфейс, и они могут соединяться с подключаемым устройством с помощью выделенной соединительной линии.
[0097] После соединения с подключаемым устройством электронное устройство запускается. На стадии запуска электронное устройство определяет, установлено ли соединение с подключенным устройством. Если обнаруживается, что соединение с подключенным устройством установлено, электронное устройство определяет, требуется ли управляющая программа подключенному устройству. Устройство, которому не требуется управляющая программа, может функционировать в отсутствие конкретной управляющей программы. Процедура определения электронным устройством, требуется ли подключенному устройству управляющая программа, может включать следующие дополнительные шаги.
[0098] 1. Получение электронным устройством информации дескриптора интерфейса устройства, подключенного к электронному устройству перед стадией запуска.
[0099] Информация дескриптора интерфейса подключенного устройства сконфигурирована для указания функций подключенного устройства. Электронное устройство определяет управляющую программу, которую требуется загрузить для управления подключенным устройством, путем получения информации дескриптора интерфейса. Информация дескриптора интерфейса включает в свой состав сведения о базовом типе интерфейса, типе подкласса интерфейса и о протоколе интерфейса. Электронное устройство соответственно получает сведения о базовом типе интерфейса, типе подкласса интерфейса и о протоколе интерфейса, содержащиеся в составе информации дескриптора интерфейса, путем использования перечислимых типов данных, описывающих интерфейс. Например, с помощью перечислимых типов данных, описывающих интерфейс, электронное устройство получает следующую информацию: базовый тип интерфейса подключенного устройства: USB_CLASS_MASS_STORAGE; тип подкласса интерфейса подключенного устройства: USB_SCSI и интерфейс протокола: USB_PR_BULK.
[00100] 2. Если информация дескриптора интерфейса указывает на то, что подключенное устройство представляет собой запоминающее устройство большой емкости, электронное устройство получает информацию о типе подключенного устройства.
[00101] Электронное устройство распознает информацию дескриптора интерфейса, полученную с помощью перечислимых данных, описывающих интерфейс. Если информация дескриптора интерфейса указывает на то, что подключенное устройство представляет собой запоминающее устройство большой емкости, электронное устройство получает также информацию о типе подключенного устройства. Информация о типе устройства может быть получена путем передачи из электронного устройства инструкции получения данных о системном интерфейсе малых компьютеров (SCSI, Small Computer System Interface).
[00102] Например, электронное устройство получает следующую информацию дескриптора интерфейса подключенного устройства: базовый тип интерфейса: USB_CLASS_MASS_STORAGE, тип подкласса интерфейса: USB_SCSI и интерфейс протокола: USB_PR_BULK, после чего электронное устройство может определить, что подключено запоминающее устройство большой емкости. Электронное устройство передает инструкцию получения данных о SCSI и определяет возвращаемое значение в качестве информации о типе устройства.
[00103] 3. Электронное устройство определяет, что подключенному устройству не требуется управляющая программа, на основе информации о типе устройства.
[00104] Соответствующая взаимосвязь между возвращаемыми значениями и типами устройств может устанавливаться предварительно. Например, после передачи электронным устройством инструкции о получении данных SCSI-интерфейса электронному устройство возвращается следующее значение: 0x00. На основе соответствующего взаимоотношения и возвращаемого значения электронное устройство может определить, что подключаемым устройством является U-диск, который относится к устройствам, работающим без управляющей программы, и, таким образом, электронное устройство может определить, что подключенное устройство не требует запуска управляющей программы.
[00105] На шаге 202 электронное устройство получает из подключенного устройства адрес памяти обновляющего микропрограммного обеспечения.
[00106] Поскольку определяется, что подключенному устройству не требуется управляющая программа, электронное устройство может считывать обновляющее микропрограммное обеспечение, хранящееся в подключенном устройстве, без использования конкретной управляющей программы. Поскольку различные подключенные устройства могут использовать различные типы файловых систем и адреса памяти соответствующего обновляющего микропрограммного обеспечения, при чтении обновляющего микропрограммного обеспечения электронному устройству требуется определить адрес памяти обновляющего микропрограммного обеспечения в соответствии с типом файловой системы подключенного устройства. На шаге получения необходимой информации могут выполняться следующие дополнительные шаги.
[00107] 1. Чтение электронным устройством информации в конкретном секторе подключенного устройства.
[00108] Информация в конкретных секторах, соответствующих различным файловым системам, может храниться в различных форматах, и, таким образом, электронное устройство может определять файловую систему подключенного устройства путем чтения информации в конкретном секторе подключенного устройства. Следует отметить, что электронное устройство обычно считывает информацию из первого сектора подключенного устройства.
[00109] 2. Принятие решения электронным устройством, использует ли подключенное устройство конкретную файловую систему, в соответствии с информацией, хранимой в конкретном секторе.
[00110] Если электронное устройство определяет тип файловой системы, применяемой подключенным устройством, в соответствии с прочитанной информацией в конкретном секторе, то поскольку электронное устройство заранее сохраняет соответствующую таблицу взаимоотношений между информацией в конкретных секторах и типами систем, электронное устройство находит соответствующий тип файловой системы согласно информации, прочитанной в конкретном секторе. Если осуществляется поиск информации о соответствующем типе файловой системы, может быть определено, что подключенное устройство применяет конкретную файловую систему. Ниже показан пример структуры таблицы, в которой представлена взаимосвязь между информацией в конкретных секторах и типами файловых систем.
[00111] 3. Если принимается решение о том, что подключенное устройство использует конкретную файловую систему, определение электронным устройством заранее заданного адреса памяти в качестве адреса памяти обновляющего микропрограммного обеспечения.
[00112] После определения файловой системы в соответствии с информацией, содержащейся в конкретном секторе, электронное устройство может определить адрес памяти обновляющего микропрограммного обеспечения, соответствующего файловой системе. Соответствующая взаимосвязь между файловыми системами и адресами памяти обновляющего микропрограммного обеспечения в качестве примера представлена в таблице 2.
[00113] Заранее заданный адрес памяти может представлять собой путь к каталогу подключенного устройства. Например, заранее заданный адрес памяти может задаваться в виде пути "H:/firmware", указывающего, что по этому адресу памяти обновляющего микропрограммного обеспечения в корневом каталоге диска H находится файл firmware.
[00114] Различные файловые системы могут соответствовать различным или одинаковым адресам памяти обновляющего микропрограммного обеспечения, и данный вариант осуществления описывается на примере, в котором различные файловые системы соответствуют различным адресам памяти обновляющего микропрограммного обеспечения, однако раскрытие настоящего изобретения не ограничивается этим примером.
[00115] 4. Если принимается решение о том, что подключенное устройство не использует конкретную файловую систему, то электронное устройство определяет адрес памяти обновляющего микропрограммного обеспечения в соответствии с метаинформацией, входящей в состав информации, содержащейся в конкретном секторе. В состав метаинформации входит начальный адрес и размер данных обновляющего микропрограммного обеспечения.
[00116] Если электронное устройство не может найти файловую систему, соответствующую прочитанной информации в конкретном секторе, на основе таблицы взаимоотношений между информацией в конкретных секторах и типами файловых систем, то электронное устройство определяет, что подключенное устройство не использует какую-либо определенную файловую систему. Электронное устройство может в соответствии с метаинформацией, включенной в информацию, содержащуюся в конкретном секторе, получить значения начального адреса и размера данных обновляющего микропрограммного обеспечения, которые указаны в метаинформации, и определить адрес памяти обновляющего микропрограммного обеспечения.
[00117] На шаге 203 определяется область памяти микропрограммного обеспечения в электронном устройстве.
[00118] Поскольку информация об области памяти микропрограммного обеспечения в электронном устройстве хранится в составе метаинформации во внутренней флэш-памяти, электронное устройство может считывать данные метаинформации из внутренней флэш-памяти и определять адрес памяти для сохранения обновляющего микропрограммного обеспечения. Область памяти микропрограммного обеспечения конфигурируется для хранения микропрограммного обеспечения.
[00119] Если существует одна область памяти микропрограммного обеспечения, содержащаяся в электронном устройстве, то эта область конфигурируется для хранения микропрограммного обеспечения, выполняемого электронным устройством в нормальном режиме функционирования; если существуют по меньшей мере две области памяти микропрограммного обеспечения, содержащиеся в электронном устройстве, то одна область памяти микропрограммного обеспечения устанавливается в качестве активной области, которая конфигурируется для хранения микропрограммного обеспечения, выполняемого электронным устройством в нормальном режиме функционирования, а другая область(-и) памяти микропрограммного обеспечения устанавливается в качестве неактивной области, конфигурируемой для хранения микропрограммного обеспечения, которое не выполняется электронным устройством.
[00120] Электронное устройство может считывать данные метаинформации из внутренней флэш-памяти и определять, что только одна область памяти микропрограммного обеспечения в электронном устройстве используется для хранения обновляющего микропрограммного обеспечения, или определять, что установленная неактивная область памяти микропрограммного обеспечения в электронном устройстве может использоваться для хранения обновляющего микропрограммного обеспечения.
[00121] Строгого ограничения последовательности выполнения шагов 202 и 203 не вводится, и данный вариант осуществления описывается на примере, в котором шаг 202 выполняется перед шагом 203, однако раскрытие настоящего изобретения не ограничено этим примером.
[00122] На шаге 204 электронное устройство записывает обновляющее микропрограммное обеспечение, хранящееся по указанному адресу памяти, в область памяти микропрограммного обеспечения.
[00123] Поскольку способы записи обновляющего микропрограммного обеспечение в различные области памяти микропрограммного обеспечения различаются, данный вариант осуществления для разъяснения процедуры записи обновляющего микропрограммного обеспечения описывается на примере, в котором используются две определенные выше области памяти.
[00124] Во-первых, если в электронном устройстве существует только одна область памяти микропрограммного обеспечения, электронное устройство заменяет исходное микропрограммное обеспечение, хранящееся в области памяти микропрограммного обеспечения, на обновляющее микропрограммное обеспечение.
[00125] Если в электронном устройстве существует только одна область памяти микропрограммного обеспечения, электронное устройство считывает обновляющее микропрограммное обеспечение из подключенного устройства, записывает его в область памяти микропрограммного обеспечения и сохраняет обновляющее микропрограммное обеспечение для замены исходного микропрограммного обеспечения, хранящегося в области памяти микропрограммного обеспечения, на обновляющее микропрограммное обеспечение.
[00126] Дополнительно, для обеспечения корректности обновляющего микропрограммного обеспечения, электронному устройству далее требуется определить, корректно ли записано обновляющее микропрограммное обеспечение в область памяти микропрограммного обеспечения. Корректность записи обновляющего микропрограммного обеспечения электронное устройство может проверить в соответствии с контрольными числами, записанными в заранее заданной позиции. Контрольные числа могут храниться в начале или в конце файла обновляющего микропрограммного обеспечения. Например, электронное устройство извлекает контрольные числа из начального фрагмента обновляющего микропрограммного обеспечения и выполняет контроль записанного обновляющего микропрограммного обеспечения с помощью избыточного циклического кода (CRC, Cyclic Redundancy Check) и контрольных чисел, после чего на основе результатов проверки определяет, корректно ли записано обновляющее микропрограммное обеспечение в область памяти микропрограммного обеспечения.
[00127] После записи обновляющего микропрограммного обеспечения в область памяти микропрограммного обеспечения электронного устройства это устройство передает пользователю уведомляющую информацию о завершении записи обновляющего микропрограммного обеспечения и предлагает ему отсоединить подключенное устройство и перезагрузить электронное устройство. Уведомляющая информация может представлять собой речевую или текстовую информацию.
[00128] Во-вторых, если в электронном устройстве используются по меньшей мере две области памяти микропрограммного обеспечения, то электронное устройство записывает обновляющее микропрограммное обеспечение в ту область памяти микропрограммного обеспечения, которая установлена в качестве неактивной. Неактивная область памяти микропрограммного обеспечения сконфигурирована для хранения микропрограммного обеспечения, которое не выполняется электронным устройством.
[00129] Например, если в электронном устройстве имеются две области памяти микропрограммного обеспечения, то одна из областей памяти микропрограммного обеспечения устанавливается в качестве активной, а вторая - в качестве неактивной. Электронное устройство записывает обновляющее микропрограммное обеспечение, хранимое в подключенном устройстве, в область памяти микропрограммного обеспечения, установленную в качестве неактивной области.
[00130] Дополнительно способ обновления микропрограммного обеспечения, реализуемый в этом варианте осуществления, может также включать:
[00131] 1) определение, корректно ли записано обновляющее микропрограммное обеспечение в область памяти микропрограммного обеспечения, установленную в качестве неактивной области; и
[00132] 2) если обнаруживается, что обновляющее микропрограммное обеспечение корректно записано в область памяти микропрограммного обеспечения, установленную в качестве неактивной области, установку области памяти микропрограммного обеспечения, которая ранее являлась активной, в качестве неактивной области и установку области памяти микропрограммного обеспечения, в которую корректно записано обновляющее микропрограммное обеспечение, в качестве активной области, которая конфигурируется для хранения микропрограммного обеспечения, выполняемого электронным устройством в нормальном режиме функционирования.
[00133] Корректность записи обновляющего микропрограммного обеспечения электронное устройство может определить в соответствии с контрольными числами, записанными в заранее заданной позиции. Контрольные числа могут храниться в начале или в конце файла обновляющего микропрограммного обеспечения. Например, электронное устройство извлекает контрольные числа из начального фрагмента обновляющего микропрограммного обеспечения и выполняет контроль с помощью CRC записанного обновляющего микропрограммного обеспечения с использованием контрольных чисел, после чего на основе результатов проверки определяет, корректно ли записано обновляющее микропрограммное обеспечение в область памяти микропрограммного обеспечения.
[00134] Если определяется, что обновляющее микропрограммное обеспечение записано корректно, то электронное устройство может корректно выполнять обновленное микропрограммное обеспечение и установить ранее неактивную область в качестве активной области. Для поддержки в электронном устройстве только одной активной области электронному устройству требуется установить в качестве неактивной области ранее активную область. По окончании процесса установки электронное устройство может передать пользователю уведомляющую информацию о завершении записи обновляющего микропрограммного обеспечения и предложить пользователю отсоединить подключенное устройство и перезагрузить электронное устройство.
[00135] Электронное устройство может оставить микропрограммное обеспечение в неактивной области либо удалить или заменить это микропрограммное обеспечение, и согласно данному варианту раскрытия настоящего изобретения каких-либо специальных ограничений на выполнение этой операции не вводится.
[00136] На шаге 205, если электронное устройство находится в нормальном режиме функционирования после перезапуска, электронное устройство запускает обновленное микропрограммное обеспечение, записанное в электронное устройство.
[00137] Если электронное устройство находится на стадии запуска, определяется, соединено ли устройство с электронным устройством. Если обнаружено, что к электронному устройству не подключено какое-либо устройство, то электронное устройство переходит в нормальный режим функционирования и запускает обновленное микропрограммное обеспечение, записанное в область памяти микропрограммного обеспечения, и, таким образом, процесс обновления микропрограммного обеспечения считается выполненным. Если обнаруживается, что существует устройство, подключенное к электронному устройству, то электронное устройство повторно выполняет шаги 201-204.
[00138] В целом способ обновления микропрограммного обеспечения, реализуемый в рамках осуществления настоящего изобретения, заключается в определении, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, если электронное устройство находится на стадии запуска; записи в электронное устройство обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, если обнаружено, что подключенному устройству управляющая программа не требуется; и запуске обновляющего микропрограммного обеспечения, записанного в электронное устройство, если электронное устройство находится в режиме нормального функционирования после перезапуска. Таким образом, даже если в электронном устройстве не установлена управляющая программа, обновление микропрограммного обеспечения электронного устройства может осуществляться с помощью устройства, которому не требуется управляющая программа, благодаря чему решается проблема, связанная с тем, что в отсутствие установленной в электронном устройстве управляющей программы не может быть прочитано микропрограммное обеспечение в специализированном средстве обновления, и, как следствие, процесс обновления микропрограммного обеспечения завершается неудачно. В результате процедура обновления микропрограммного обеспечения упрощается, и появляется возможность повысить долю успешных попыток выполнения этой процедуры.
[00139] Кроме того, электронное устройство определяет, использует ли подключенное устройство конкретную файловую систему; если подключенное устройство использует конкретную файловую систему, то электронное устройство извлекает обновляющее микропрограммное обеспечение из заранее заданной позиции в памяти; если подключенное устройство не использует конкретную файловую систему, то электронное устройство извлекает обновляющее микропрограммное обеспечение в соответствии с метаинформацией, входящей в состав информации, содержащейся в конкретном секторе. Таким образом, электронное устройство может считывать обновляющее микропрограммное обеспечение из различных файловых систем. Соответственно, доля успешных попыток обновления микропрограммного обеспечения может быть повышена и может быть расширена область применения процесса обновления микропрограммного обеспечения.
[00140] Кроме того, электронное устройство определяет, корректно ли записано обновляющее микропрограммное обеспечение в область памяти микропрограммного обеспечения, установленную в качестве неактивной области; если определяется, что обновляющее микропрограммное обеспечение корректно записано в неактивную область памяти микропрограммного обеспечения, то электронное устройство устанавливает эту область памяти микропрограммного обеспечения в качестве активной области; и если определяется, что обновляющее микропрограммное обеспечение записано корректно, то электронное устройство устанавливает неактивную область в качестве активной области. Таким образом, обеспечивается нормальное функционирование обновляющего микропрограммного обеспечения.
[00141] Далее в рамках раскрытия настоящего изобретения описываются варианты реализации устройств, способных выполнять варианты способов, осуществляемых согласно раскрытию настоящего изобретения. Для получения информации о нераскрытых подробностях вариантов реализации устройств можно обратиться к описанию вариантов осуществления способов, описанных при раскрытии настоящего изобретения.
[00142] На фиг. 3 показана структурная блок-схема устройства обновления микропрограммного обеспечения в соответствии с примером осуществления настоящего изобретения. Устройство обновления микропрограммного обеспечения частично или целиком может быть реализовано в виде электронного устройства с помощью программного, аппаратного обеспечения или комбинации этих средств разработки. Устройство обновления микропрограммного обеспечения может содержать модуль 320 обнаружения устройства, модуль 340 записи микропрограммного обеспечения и модуль 360 запуска микропрограммного обеспечения.
[00143] Модуль 320 обнаружения устройства сконфигурирован для определения, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, если электронное устройство находится на стадии запуска.
[00144] Модуль 340 записи микропрограммного обеспечения сконфигурирован для записи обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство, если модуль 320 обнаружения устройства определяет, что подключенному устройству управляющая программа не требуется.
[00145] Модуль 360 запуска микропрограммного обеспечения сконфигурирован для запуска обновляющего микропрограммного обеспечения, записанного в электронное устройство модулем 340 записи микропрограммного обеспечения, если электронное устройство находится в нормальном режиме функционирования после перезапуска.
[00146] В целом, с помощью устройства обновления микропрограммного обеспечения, реализуемого в рамках осуществления настоящего изобретения, определяется, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, если электронное устройство находится на стадии запуска; в электронное устройство записывается обновляющее микропрограммное обеспечение, содержащееся в подключенном устройстве, если обнаружено, что подключенному устройству управляющая программа не требуется; и запускается обновляющее микропрограммное обеспечение, записанное в электронное устройство, если электронное устройство находится в нормальном режиме функционирования после перезапуска. Таким образом, даже если в электронном устройстве не установлена управляющая программа, обновление микропрограммного обеспечения электронного устройства может осуществляться с помощью устройства, которому не требуется управляющая программа, благодаря чему решается проблема, связанная с тем, что в отсутствие установленной в электронном устройстве управляющей программы не может быть прочитано микропрограммное обеспечение в специализированном средстве обновления, и, как следствие, процесс обновления микропрограммного обеспечения завершается неудачно. В результате процедура обновления микропрограммного обеспечения упрощается, и появляется возможность повысить долю успешных попыток выполнения этой процедуры.
[00147] На фиг. 4 показана структурная блок-схема устройства обновления микропрограммного обеспечения в соответствии с другим примером осуществления настоящего изобретения. Устройство обновления микропрограммного обеспечения частично или целиком может быть реализовано в виде электронного устройства с помощью программного, аппаратного обеспечения или комбинации этих средств разработки. Устройство обновления микропрограммного обеспечения может содержать модуль 420 обнаружения устройства, модуль 440 записи микропрограммного обеспечения и модуль 460 запуска микропрограммного обеспечения.
[00148] Модуль 420 обнаружения устройства сконфигурирован для определения, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, если электронное устройство находится на стадии запуска.
[00149] Модуль 440 записи микропрограммного обеспечения сконфигурирован для записи обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство, если модуль 420 обнаружения устройства определяет, что подключенному устройству управляющая программа не требуется.
[00150] Модуль 460 запуска микропрограммного обеспечения сконфигурирован для запуска обновляющего микропрограммного обеспечения, записанного в электронное устройство модулем 440 записи микропрограммного обеспечения, если электронное устройство находится в нормальном режиме функционирования после перезапуска.
[00151] Дополнительно модуль 420 обнаружения устройства содержит первый подмодуль 421 получения информации, второй подмодуль 422 получения информации и подмодуль 423 определения устройства.
[00152] Первый подмодуль 421 получения информации сконфигурирован для получения информации дескриптора интерфейса устройства, подключенного к электронному устройству перед стадией запуска;
[00153] Второй подмодуль 422 получения информации сконфигурирован для получения информации о типе подключенного устройства, если информация дескриптора интерфейса, полученная первым подмодулем 421 получения информации, указывает на то, что подключенное устройство представляет собой запоминающее устройство большой емкости.
[00154] Подмодуль 423 определения устройства сконфигурирован для определения того, что подключенному устройству не требуется управляющая программа, если информация о типе устройства, полученная вторым подмодулем 422 получения информации, указывает на то, что подключенному устройству не требуется управляющая программа.
[00155] Дополнительно модуль 440 записи микропрограммного обеспечения содержит подмодуль 441 получения адреса, подмодуль 442 определения области и подмодуль 443 записи микропрограммного обеспечения.
[00156] Подмодуль 441 получения адреса сконфигурирован для получения из подключенного устройства адреса памяти обновляющего микропрограммного обеспечения.
[00157] Подмодуль 442 определения области сконфигурирован для определения области памяти микропрограммного обеспечения в электронном устройстве.
[00158] Подмодуль 443 записи микропрограммного обеспечения сконфигурирован для записи обновляющего микропрограммного обеспечения, хранимого по адресу памяти, полученному подмодулем 441 получения адреса, в область памяти микропрограммного обеспечения, которая определена подмодулем 442 определения области.
[00159] Дополнительно подмодуль 441 получения адреса содержит подмодуль 441a чтения информации сектора, подмодуль 441b оценки системы, первый подмодуль 441 с определения и второй подмодуль 441d определения.
[00160] Подмодуль 441a чтения информации сектора сконфигурирован для чтения информации в конкретном секторе подключенного устройства.
[00161] Подмодуль 441b оценки системы сконфигурирован для определения, использует ли подключенное устройство конкретную файловую систему, в соответствии с информацией в конкретном секторе, полученной подмодулем 441а чтения информации сектора.
[00162] Первый подмодуль 441c определения сконфигурирован для определения заранее заданного адреса памяти в качестве адреса памяти обновляющего микропрограммного обеспечения, если подмодуль 441b оценки системы принимает решение о том, что подключенное устройство использует конкретную файловую систему.
[00163] Второй подмодуль 441d определения сконфигурирован для определения адреса памяти обновляющего микропрограммного обеспечения в соответствии с метаинформацией, входящей в состав информации, содержащейся в конкретном секторе, если подмодуль 441b оценки системы принимает решение о том, что подключенное устройство не использует конкретную файловую систему; при этом метаинформация содержит данные о начальном адресе и размере данных обновляющего микропрограммного обеспечения.
[00164] Дополнительно подмодуль 443 записи микропрограммного обеспечения содержит первый подмодуль 443a записи и второй подмодуль 443b записи.
[00165] Первый подмодуль 443а записи сконфигурирован для замены исходного микропрограммного обеспечения, хранящегося в области памяти микропрограммного обеспечения, на обновляющее микропрограммное обеспечение, если в электронном устройстве существует одна область памяти микропрограммного обеспечения.
[00166] Второй подмодуль 443b записи сконфигурирован для записи обновляющего микропрограммного обеспечения в область памяти микропрограммного обеспечения, установленную в качестве неактивной области, если в электронном устройстве существуют по меньшей мере две области памяти микропрограммного обеспечения, при этом область памяти микропрограммного обеспечения, установленная в качестве неактивной, сконфигурирована для хранения микропрограммного обеспечения, не выполняющегося в электронном устройстве.
[00167] Дополнительно устройство также содержит модуль обнаружения микропрограммного обеспечения и модуль установки области.
[00168] Модуль 470 обнаружения микропрограммного обеспечения сконфигурирован для определения, корректно ли записано обновляющее микропрограммное обеспечение в область памяти микропрограммного обеспечения, установленную в качестве неактивной области.
[00169] Модуль 480 установки области сконфигурирован таким образом, чтобы при определении модулем 470 обнаружения корректности записи обновляющего микропрограммного обеспечения в область памяти микропрограммного обеспечения, установленную в качестве неактивной области, область памяти микропрограммного обеспечения, которая ранее являлась активной, устанавливалась в качестве неактивной области, а область памяти микропрограммного обеспечения, в которую корректно записано обновляющее микропрограммное обеспечение, устанавливалась в качестве активной области, которая конфигурируется для хранения микропрограммного обеспечения, выполняемого электронным устройством в нормальном режиме функционирования.
[00170] В целом, с помощью устройства для обновления микропрограммного обеспечения, реализуемого в рамках осуществления настоящего изобретения, определяется, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, если электронное устройство находится на стадии запуска; в электронное устройство записывается обновляющее микропрограммное обеспечение, содержащееся в подключенном устройстве, если обнаружено, что подключенному устройству управляющая программа не требуется; и запускается обновляющее микропрограммное обеспечение, записанное в электронное устройство, если электронное устройство находится в нормальном режиме функционирования после перезапуска. Таким образом, даже если в электронном устройстве не установлена управляющая программа, обновление микропрограммного обеспечения электронного устройства может осуществляться с помощью устройства, которому не требуется управляющая программа, благодаря чему решается проблема, связанная с тем, что в отсутствие установленной в электронном устройстве управляющей программы не может быть прочитано микропрограммное обеспечение в специализированном средстве обновления, и, как следствие, процесс обновления микропрограммного обеспечения завершается неудачно. В результате процедура обновления микропрограммного обеспечения упрощается, и появляется возможность повысить долю успешных попыток выполнения этой процедуры.
[00171] Кроме того, электронное устройство определяет, использует ли подключенное устройство конкретную файловую систему; если подключенное устройство использует конкретную файловую систему, то электронное устройство извлекает обновляющее микропрограммное обеспечение из заранее заданной позиции в памяти; если подключенное устройство не использует конкретную файловую систему, то электронное устройство извлекает обновляющее микропрограммное обеспечение в соответствии с метаинформацией, входящей в состав информации, содержащейся в конкретном секторе. Таким образом, электронное устройство может считывать обновляющее микропрограммное обеспечение из различных файловых систем. Соответственно, доля успешных попыток обновления микропрограммного обеспечения может быть повышена и может быть расширена область применения процесса обновления микропрограммного обеспечения.
[00172] Кроме того, электронное устройство определяет, корректно ли записано обновляющее микропрограммное обеспечение в область памяти микропрограммного обеспечения, установленную в качестве неактивной области; если определяется, что обновляющее микропрограммное обеспечение корректно записано в неактивную область памяти микропрограммного обеспечения, то электронное устройство устанавливает эту область памяти микропрограммного обеспечения в качестве активной области; и если определяется, что обновляющее микропрограммное обеспечение записано корректно, то электронное устройство устанавливает неактивную область в качестве активной области. Таким образом, обеспечивается нормальное функционирование обновляющего микропрограммного обеспечения.
[00173] Согласно примеру раскрытия настоящего изобретения также предлагается устройство для обновления микропрограммного обеспечения, которое может применяться в электронном устройстве, поддерживающем функцию обновления микропрограммного обеспечения. Устройство содержит:
[00174] процессор и
[00175] память, в которой хранятся инструкции, выполняемые процессором;
[00176] при этом процессор сконфигурирован для выполнения следующих операций:
[00177] если электронное устройство находится на стадии запуска, определение, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска;
[00178] если обнаружено, что подключенному устройству управляющая программа не требуется, запись обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство; и
[00179] если электронное устройство находится в нормальном режиме функционирования после перезапуска, запуск обновляющего микропрограммного обеспечения, записанного в электронное устройство.
[00180] Дополнительно процедура определения, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, включает:
[00181] получение информации дескриптора интерфейса устройства, подключенного к электронному устройству перед стадией запуска;
[00182] если информация дескриптора интерфейса указывает на то, что подключенное устройство представляет собой запоминающее устройство большой емкости, получение информации о типе подключенного устройства; и
[00183] если информация о типе устройства указывает на то, что подключенному устройству не требуется управляющая программа, определение того, что подключенное устройство применяется без управляющей программы.
[00184] Дополнительно процедура записи обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство включает:
[00185] получение из подключенного устройства адреса памяти обновляющего микропрограммного обеспечения;
[00186] определение области памяти микропрограммного обеспечения в электронном устройстве и
[00187] запись обновляющего микропрограммного обеспечения, размещенного по адресу памяти, в область памяти микропрограммного обеспечения.
[00188] Дополнительно процедура получения из подключенного устройства адреса памяти обновляющего микропрограммного обеспечения включает:
[00189] чтение информации в конкретном секторе подключенного устройства;
[00190] определение, использует ли подключенное устройство конкретную файловую систему, в соответствии с информацией, хранимой в конкретном секторе;
[00191] если принимается решение о том, что подключенное устройство использует конкретную файловую систему, определение заранее заданного адреса памяти в качестве адреса памяти обновляющего микропрограммного обеспечения;
[00192] если принимается решение о том, что подключенное устройство не использует конкретную файловую систему, определение адреса памяти обновляющего микропрограммного обеспечения в соответствии с метаинформацией, входящей в состав информации, содержащейся в конкретном секторе, при этом метаинформация содержит данные о начальном адресе и размере данных обновляющего микропрограммного обеспечения.
[00193] Дополнительно процедура записи обновляющего микропрограммного обеспечения, хранящегося по адресу памяти, в область памяти микропрограммного обеспечения включает:
[00194] если в электронном устройстве существует одна область памяти микропрограммного обеспечения, замену исходного микропрограммного обеспечения, хранящегося в области памяти микропрограммного обеспечения, на обновляющее микропрограммное обеспечение; и
[00195] если в электронном устройстве существуют по меньшей мере две области памяти обновляющего микропрограммного обеспечения, запись обновляющего микропрограммного обеспечения в область памяти обновляющего микропрограммного обеспечения, установленную в качестве неактивной области, которая сконфигурирована для хранения микропрограммного обеспечения, не выполняющегося в электронном устройстве.
[00196] Дополнительно способ также включает определение, корректно ли записано обновляющее микропрограммное обеспечение в область памяти микропрограммного обеспечения, установленную в качестве неактивной области; если обнаруживается, что обновляющее микропрограммное обеспечение корректно записано в область памяти микропрограммного обеспечения, установленную в качестве неактивной области, установку области памяти микропрограммного обеспечения, которая ранее являлась активной, в качестве неактивной области, и установку области памяти микропрограммного обеспечения, в которую корректно записано обновляющее микропрограммное обеспечение, в качестве активной области, которая конфигурируется для хранения микропрограммного обеспечения, выполняемого электронным устройством в нормальном режиме функционирования.
[00197] В целом, с помощью устройства обновления микропрограммного обеспечения, реализуемого в рамках осуществления настоящего изобретения, определяется, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, если электронное устройство находится на стадии запуска; в электронное устройство записывается обновляющее микропрограммное обеспечение, содержащееся в подключенном устройстве, если обнаружено, что подключенному устройству управляющая программа не требуется; и запускается обновляющее микропрограммное обеспечение, записанное в электронное устройство, если электронное устройство находится в нормальном режиме функционирования после перезапуска. Таким образом, даже если в электронном устройстве не установлена управляющая программа, обновление микропрограммного обеспечения электронного устройства может осуществляться с помощью устройства, которому не требуется управляющая программа, благодаря чему решается проблема, связанная с тем, что в отсутствие установленной в электронном устройстве управляющей программы не может быть прочитано микропрограммное обеспечение в специализированном средстве обновления, и, как следствие, процесс обновления микропрограммного обеспечения завершается неудачно. В результате процедура обновления микропрограммного обеспечения упрощается, и появляется возможность повысить долю успешных попыток выполнения этой процедуры.
[00198] Конкретные операции, выполняемые соответствующими модулями устройств, задействованных в приведенных выше вариантах осуществления настоящего изобретения, подробно разъяснялись при описании способов осуществления настоящего изобретения и поэтому далее не рассматриваются.
[00199] На фиг. 5 показана структурная блок-схема устройства обновления микропрограммного обеспечения в соответствии с примером осуществления настоящего изобретения. Например, устройство 500 может представлять собой электронное устройство, способное выполнять функцию обновления микропрограммного обеспечения.
[00200] На фиг. 5 показано, что устройство 500 может содержать один или более следующих компонентов: компонент 502 обработки, память 504, компонент 506 питания, мультимедийный компонент 508, компонент 510 обработки звукового сигнала, интерфейс 512 ввода/вывода (I/O, input/output), компонент 514 датчиков и компонент 516 связи.
[00201] Компонент 502 обработки обычно управляет всеми операциями, выполняемыми устройством 500, такими как операции, связанные с отображением, телефонными вызовами, передачей данных, управлением видеокамерой и записью данных. Компонент 502 обработки может включать в свой состав один или более процессоров 520, предназначенных для выполнения инструкций, осуществляющих все или некоторые шаги описанных выше способов. Кроме того, компонент 502 обработки может содержать один или более модулей, которые облегчают взаимодействие между компонентом 502 обработки и другими компонентами. Например, компонент 502 обработки может содержать мультимедийный модуль, который облегчает взаимодействие между мультимедийным компонентом 508 и компонентом 502 обработки.
[00202] Память 504 сконфигурирована для хранения данных различных типов, необходимых для функционирования устройства 500. К примерам таких данных относятся инструкции для любых приложений или способов, выполняемых в устройстве 500, контактные данные, данные телефонной книги, сообщения, изображения, видеофайлы и т.д. Память 504 может быть реализована с использованием любого типа устройств энергонезависимой или энергозависимой памяти или комбинации таких устройств, например, с помощью статической оперативной памяти (SRAM, Static Random Access Memory), электрически стираемого программируемого постоянного запоминающего устройства (EEPROM, Electrically Erasable Programmable Read-Only Memory), стираемого программируемого постоянного запоминающего устройства (EPROM, Erasable Programmable Read-Only Memory), программируемого постоянного запоминающего устройства (PROM, Programmable Read-Only Memory), постоянного запоминающего устройства (ROM, read-only memory), магнитного запоминающего устройства, флэш-памяти, магнитного или оптического диска.
[00203] Компонент 506 питания обеспечивает электропитание для различных компонентов устройства 500. Компонент 506 питания может включать в свой состав систему управления режимом электропитания, один или более источников питания и любые другие компоненты, связанные с генерацией, управлением и распределением электропитания в устройстве 500.
[00204] Мультимедийный компонент 508 содержит экран, обеспечивающий выходной интерфейс между устройством 500 и пользователем. В некоторых вариантах осуществления настоящего изобретения экран может представлять собой жидкокристаллический дисплей (LCD, Liquid Crystal Display) и сенсорную панель (TP, Touch Panel). Экран, реализованный в виде сенсорной панели, позволяет принимать входные сигналы от пользователя. На сенсорной панели расположены один или более тактильных датчиков, предназначенных для прикосновения, нажатия и выполнения иных жестикуляций. Тактильные датчики могут не только определять область прикосновения или нажатия, но также реагировать на период времени и давление, связанное с прикосновениями и нажатиями. В некоторых вариантах осуществления настоящего изобретения мультимедийный компонент 508 содержит фронтальную видеокамеру и/или тыльную видеокамеру. Фронтальная видеокамера и тыльная видеокамера могут принимать внешние мультимедийные данные при нахождении устройства 500 в рабочем режиме, например в режиме выполнения фотосъемки или видеосъемки. Как фронтальная, так и тыльная видеокамера может оснащаться оптической системой линз или средствами фокусного и оптического масштабирования.
[00205] Компонент 510 обработки звукового сигнала сконфигурирован для передачи и/или приема звуковых сигналов. Например, компонент 510 обработки звукового сигнала содержит микрофон ("MIC"), позволяющий принимать внешний звуковой сигнал, когда устройство 500 находится в рабочем режиме, например в режиме выполнения вызова, записи и распознавания голоса. Принятый звуковой сигнал далее может сохраняться в памяти 504 или передаваться через компонент 516 связи. В некоторых вариантах осуществления настоящего изобретения компонент 510 также содержит громкоговоритель, предназначенный для вывода звуковых сигналов.
[00206] Интерфейс 512 ввода/вывода поддерживает интерфейс между компонентом 502 обработки и модулями периферийного интерфейса, такими как клавиатура, колесо мыши, кнопки и т.п.Кнопки, помимо прочего, могут представлять собой кнопку возврата, кнопку настройки уровня звука, кнопку запуска и кнопку блокировки.
[00207] Компонент 514 датчиков содержит один или более датчиков, служащих для оценки различных аспектов работы устройства 500. Например, компонент 514 датчиков может обнаруживать открытие/закрытие устройства 500, относительное позиционирование компонентов, например дисплея и клавиатуры, устройства 500, изменение позиции устройства 500 или компонента устройства 500, наличие или отсутствие контакта пользователя с устройством 500, ориентацию или ускоренное/замедленное перемещение устройства 500 и изменение температуры устройства 500. Компонент 514 датчиков может содержать бесконтактный датчик, сконфигурированный для обнаружения расположенных вблизи объектов без физического контакта с ними. Компонент 514 датчиков также может включать в свой состав светочувствительный элемент, такой как датчик изображения CMOS или CCD, предназначенный для использования в приложениях формирования изображений. В некоторых вариантах осуществления настоящего изобретения компонент 514 датчиков также может содержать акселерометр, гироскоп, магнитный датчик, датчик давления или температуры.
[00208] Компонент 516 связи сконфигурирован для облегчения процесса проводной или беспроводной связи между устройством 500 и другими устройствами. Устройство 500 может получать доступ к беспроводной сети с использованием таких стандартов связи, как WiFi, 2G или 3G, или комбинации этих стандартов. Согласно одному из примеров осуществления настоящего изобретения компонент 516 связи принимает широковещательный сигнал или передает соответствующую информацию в широковещательном режиме из внешней системы управления широковещательной передачей через широковещательный канал. В одном из примеров осуществления настоящего изобретения компонент 516 связи также содержит модуль ближней связи (NFC, Near Field Communication), позволяющий передавать сигналы на небольшие расстояния. Например, модуль NFC может быть реализован на основе технологии идентификации по радиочастотному коду (RFID, Radio Frequency Identification), технологии ассоциации по средствам передачи данных в инфракрасном диапазоне (IrDA, infrared data association), технологии сверхширокополосной сети (UWB, Ultra-Wideband), технологии Bluetooth (BT) и других технологий.
[00209] Согласно примерам осуществления настоящего изобретения устройство 500 может быть реализовано с использованием одного или более таких компонентов как специализированные интегральные схемы (ASIC, Application Specific Integrated Circuit), цифровые сигнальные процессоры (DSP, Digital Signal Processor), устройства цифровой обработки сигналов (DSPD, Digital Signal Processing Device), программируемые логические устройства (PLD, Programmable Logic Device), программируемые пользователем вентильные матрицы (FPGA, Field Programmable Gate Array), контроллеры, микроконтроллеры, микропроцессоры, или посредством других электронных компонентов, разработанных для выполнения описанного выше способа.
[00210] Согласно примерам осуществления настоящего изобретения также предлагается машиночитаемый носитель информации, на котором хранятся инструкции, такие как инструкции, записанные в памяти 504, выполняемые процессором 520 устройства 500 для реализации описанных выше способов. Например, машиночитаемый носитель информации может представлять собой ROM, RAM, CD-ROM, магнитную ленту, дискету, оптическое запоминающее устройство и т.п.
[00211] При исполнении процессором устройства 500 инструкций, записанных на машиночитаемом носителе информации, устройство 500 активизируется для выполнения способа обновления микропрограммного обеспечения, применимого в электронном устройстве, поддерживающем функцию обновления микропрограммного обеспечения.
[00212] Специалисту в этой области техники должны быть очевидны другие варианты осуществления настоящего изобретения, основанные на соображениях, изложенных в данном описании, и на практическом применении раскрытого изобретения. Эта заявка предназначена для охвата любых изменений, способов использования или адаптации настоящего изобретения, соответствующих основным его принципам, включая такие отступления от раскрытия настоящего изобретения, которые относятся к известной или обычной практике в этой области техники. Это описание и иллюстрации следует рассматривать только в качестве примеров с учетом того, что сущность и объем настоящего изобретения представлены в приведенной ниже формуле изобретения.
[00213] Следует принимать во внимание, что настоящее изобретение не ограничено в точности теми формулировками, которые были приведены выше и проиллюстрированы на прилагающихся чертежах, и различные модификации и изменения могут выполняться без нарушения объема настоящего изобретения. Подразумевается, что объем изобретения ограничен только прилагаемой формулой изобретения.