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

1. Способ обновления микропрограммного обеспечения, включающий:
когда электронное устройство находится на стадии запуска, определение, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска;
если обнаружено, что подключенному устройству управляющая программа не требуется, запись обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство; и
если электронное устройство находится в нормальном режиме функционирования после перезапуска, запуск обновляющего микропрограммного обеспечения, записанного в электронное устройство.
2. Способ по п. 1, отличающийся тем, что процедура определения, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, включает:
получение информации дескриптора интерфейса устройства, подключенного к электронному устройству перед стадией запуска;
если информация дескриптора интерфейса указывает на то, что подключенное устройство представляет собой запоминающее устройство большой емкости, получение информации о типе подключенного устройства; и
если информация о типе устройства указывает на то, что подключенному устройству не требуется управляющая программа, определение того, что подключенное устройство применяется без управляющей программы.
3. Способ по п. 1, отличающийся тем, что процедура записи обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство включает:
получение из подключенного устройства адреса памяти обновляющего микропрограммного обеспечения;
определение области памяти микропрограммного обеспечения в электронном устройстве и
запись обновляющего микропрограммного обеспечения, размещенного по адресу памяти, в область памяти микропрограммного обеспечения.
4. Способ по п. 3, отличающийся тем, что процедура получения из подключенного устройства адреса памяти обновляющего микропрограммного обеспечения включает:
чтение информации в конкретном секторе подключенного устройства;
принятие решения о том, использует ли подключенное устройство конкретную файловую систему, в соответствии с информацией, хранимой в конкретном секторе;
если принимается решение о том, что подключенное устройство использует конкретную файловую систему, определение заранее заданного адреса памяти в качестве адреса памяти обновляющего микропрограммного обеспечения;
если принимается решение о том, что подключенное устройство не использует конкретную файловую систему, определение адреса памяти обновляющего микропрограммного обеспечения в соответствии с метаинформацией, входящей в состав информации, содержащейся в конкретном секторе, при этом метаинформация содержит данные о начальном адресе и размере данных обновляющего микропрограммного обеспечения.
5. Способ по п. 3, отличающийся тем, что процедура записи обновляющего микропрограммного обеспечения, хранящегося по адресу памяти, в область памяти микропрограммного обеспечения включает:
если в электронном устройстве существует одна область памяти микропрограммного обеспечения, замену исходного микропрограммного обеспечения, хранящегося в области памяти микропрограммного обеспечения, на обновляющее микропрограммное обеспечение; и
если в электронном устройстве существуют по меньшей мере две области памяти обновляющего микропрограммного обеспечения, запись обновляющего микропрограммного обеспечения в область памяти обновляющего микропрограммного обеспечения, установленную в качестве неактивной области, которая сконфигурирована для хранения микропрограммного обеспечения, не выполняющегося в электронном устройстве.
6. Способ по п. 5, также включающий:
определение, корректно ли записано обновляющее микропрограммное обеспечение в область памяти микропрограммного обеспечения, установленную в качестве неактивной области;
если обнаруживается, что обновляющее микропрограммное обеспечение корректно записано в область памяти микропрограммного обеспечения, установленную в качестве неактивной области, установку области памяти микропрограммного обеспечения, которая ранее являлась активной, в качестве неактивной области и установку области памяти микропрограммного обеспечения, в которую корректно записано обновляющее микропрограммное обеспечение, в качестве активной области, которая конфигурируется для хранения микропрограммного обеспечения, выполняемого электронным устройством в нормальном режиме функционирования.
7. Устройство для обновления микропрограммного обеспечения, содержащее:
модуль обнаружения устройства, сконфигурированный для определения, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, если электронное устройство находится на стадии запуска;
модуль записи микропрограммного обеспечения, сконфигурированный для записи обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство, если модуль обнаружения устройства определяет, что подключенному устройству управляющая программа не требуется; и
модуль запуска микропрограммного обеспечения, сконфигурированный для запуска обновляющего микропрограммного обеспечения, записанного в электронное устройство модулем записи микропрограммного обеспечения, если электронное устройство находится в режиме нормального функционирования после перезапуска.
8. Устройство по п. 7, отличающееся тем, что модуль обнаружения устройства содержит:
первый подмодуль получения информации, сконфигурированный для получения информации дескриптора интерфейса устройства, подключенного к электронному устройству перед стадией запуска;
второй подмодуль получения информации, сконфигурированный для получения информации о типе подключенного устройства, если информация дескриптора интерфейса, полученная первым подмодулем получения информации, указывает на то, что подключенное устройство представляет собой запоминающее устройство большой емкости; и
подмодуль определения устройства, сконфигурированный для определения того, что подключенному устройству не требуется управляющая программа, если информация о типе устройства, полученная вторым подмодулем получения информации, указывает на то, что подключенному устройству не требуется управляющая программа.
9. Устройство по п. 7, отличающееся тем, что модуль записи микропрограммного обеспечения содержит:
подмодуль получения адреса, сконфигурированный для получения из подключенного устройства адреса памяти обновляющего микропрограммного обеспечения;
подмодуль определения области, сконфигурированный для определения области памяти микропрограммного обеспечения в электронном устройстве; и
подмодуль записи микропрограммного обеспечения, сконфигурированный для записи обновляющего микропрограммного обеспечения, хранимого по адресу памяти, полученному подмодулем получения адреса, в область памяти микропрограммного обеспечения, которая определена подмодулем определения области.
10. Устройство по п. 9, отличающееся тем, что подмодуль получения адреса содержит:
подмодуль чтения информации сектора, сконфигурированный для чтения информации в конкретном секторе подключенного устройства;
подмодуль оценки системы, сконфигурированный для определения, использует ли подключенное устройство конкретную файловую систему, в соответствии с информацией в конкретном секторе, полученной подмодулем чтения информации сектора;
первый подмодуль определения, сконфигурированный для определения заранее заданного адреса памяти в качестве адреса памяти обновляющего микропрограммного обеспечения, если подмодуль оценки системы принимает решение о том, что подключенное устройство использует конкретную файловую систему; и
второй подмодуль определения, сконфигурированный для определения адреса памяти обновляющего микропрограммного обеспечения в соответствии с метаинформацией, входящей в состав информации, содержащейся в конкретном секторе, если подмодуль оценки системы принимает решение о том, что подключенное устройство не использует конкретную файловую систему; при этом метаинформация содержит данные о начальном адресе и размере данных обновляющего микропрограммного обеспечения.
11. Устройство по п. 9, отличающееся тем, что подмодуль записи микропрограммного обеспечения содержит:
первый подмодуль записи, сконфигурированный для замены исходного микропрограммного обеспечения, хранящегося в области памяти микропрограммного обеспечения, на обновляющее микропрограммное обеспечение, если в электронном устройстве существует одна область памяти микропрограммного обеспечения; и
второй подмодуль записи, сконфигурированный для записи обновляющего микропрограммного обеспечения в область памяти микропрограммного обеспечения, установленную в качестве неактивной области, если в электронном устройстве существуют по меньшей мере две области памяти микропрограммного обеспечения, при этом область памяти микропрограммного обеспечения, установленная в качестве неактивной, конфигурируется для хранения микропрограммного обеспечения, не выполняющегося в электронном устройстве.
12. Устройство по п. 11, также содержащее:
модуль обнаружения микропрограммного обеспечения, сконфигурированный для определения, корректно ли записано обновляющее микропрограммное обеспечение в область памяти микропрограммного обеспечения, установленную в качестве неактивной области; и
модуль установки области, сконфигурированный таким образом, чтобы при обнаружении модулем микропрограммного обеспечения корректности записи обновляющего микропрограммного обеспечения в область памяти микропрограммного обеспечения, установленную в качестве неактивной области, область памяти микропрограммного обеспечения, которая ранее являлась активной, устанавливалась в качестве неактивной области, а область памяти микропрограммного обеспечения, в которую корректно записано обновляющее микропрограммное обеспечение, устанавливалась в качестве активной области, которая конфигурируется для хранения микропрограммного обеспечения, выполняемого электронным устройством в нормальном режиме функционирования.
13. Устройство для обновления микропрограммного обеспечения, содержащее:
процессор и
память, в которой хранятся инструкции, выполняемые процессором;
при этом процессор сконфигурирован для выполнения следующих операций:
определение, требуется ли управляющая программа устройству, подключенному к электронному устройству перед стадией запуска, если электронное устройство находится на стадии запуска;
если обнаружено, что подключенному устройству управляющая программа не требуется, запись обновляющего микропрограммного обеспечения, содержащегося в подключенном устройстве, в электронное устройство; и
если электронное устройство находится в нормальном режиме функционирования после перезапуска, запуск обновляющего микропрограммного обеспечения, записанного в электронное устройство.