Окончательный контрольный список миграции HiSilicon для 2025
Ваша успешная миграция HiSilicon начинается со структурированного плана. Этот контрольный список миграции предоставляет дорожную карту высокого уровня.
Ваша успешная миграция HiSilicon начинается со структурированного плана. Этот контрольный список миграции предоставляет дорожную карту высокого уровня для всего вашего проекта, обеспечивая плавный переход и превосходную производительность.
Ваш полный миграционный путь разбит на четыре ключевых этапа. Следуйте этому контрольному списку, чтобы достичь максимальной производительности с новым оборудованием HiSilicon.
- Этап 1: Предварительный миграционный анализ
- Цель: Сопоставьте аппаратные различия и подготовьте HiSilicon SDK и инструментальную цепочку.
- Этап 2: Портирование системы низкого уровня
- Цель: Адаптировать загрузчик и ядро для целевого устройства.
- Этап 3: миграция драйверов и промежуточного программного обеспечения
- Цель: Порт периферийных драйверов и переход на платформу обработки мультимедиа HiSilicon (MPP).
- Этап 4: Проверка и оптимизация
- Цель: Перекомпияция приложений и проведение общесистемного тестирования для проверки миграции.
Ключевые выходы
- Планируйте миграцию HiSilicon в четыре шага: анализ, перенос низкоуровневых систем, перемещение драйверов и тестирование всего.
- Прежде чем начать, проверьте аппаратные различия и настройте свои инструменты. Это поможет избежать проблем позже.
- Убедитесь, что загрузчик и ядро работают на новом оборудовании HiSilicon. Это позволяет правильно запускать ваше устройство.
- Обновите драйверы для вашего оборудования и используйтеСпециальное программное обеспечение от HiSiliconДля СМИ. Это позволяет функциям вашего устройства работать хорошо.
- Проверьте свои приложения и сделайте их быстрее. Это гарантирует вашНовое устройство HiSiliconРаботает плавно и надежно.
ЭТАП 1: PRE-MIGRATION ПРОВЕРКА
Этот начальный этап является основой всего вашего проекта миграции. Тщательный предварительный анализ миграции предотвращает будущие препятствия и обеспечивает плавный переход. Вы сможете отобразить аппаратные возможности и подготовить среду разработки для новой платформы HiSilicon.
КАРТА ОСОБЕННОСТИ ОБОРУДОВАНИЯ
Ваш первый шаг-понять архитектурные различия между вашей исходной платформой и целевой HiSilicon SoC. Этот анализ поможет вам предвидеть проблемы с переносом. Создайте подробную таблицу сравнения для сопоставления ресурсов. Этот элемент контрольного списка имеет решающее значение для успешной миграции.
Для перехода от обычного одноядерного ARM Cortex-A7 к двухъядерному HiSilicon ARM Cortex-A7 ваша карта может выглядеть так:
| Особенность | Исходная платформа (пример) | Целевая платформа HiSilicon | Миграционные заметки |
|---|---|---|---|
| ЦПУ | Одноъядерный ARM Cortex-A7 | Двухъядерный ARM Cortex-A7 | Обновление конфигурации ядра для SMP. |
| Графический процессор | Мали-400 MP1 | Мали-450 MP4 | Требуются новые графические драйверы и интеграция MPP. |
| Память | DDR3 @ 533 МГц | DDR4 @ 800 МГц | Отрегулируйте тайминги контроллера памяти в U-Boot. |
| Периферийные устройства | 2x UART, 1x I2C, 1x SPI | 4x UART, 2x I2C, 2x SPI | Сопоставьте узлы дерева устройств с новыми периферийными адресами. |
НАСТРОЙКА ИНСТРУМЕНТОВ И SDK
Далее необходимо настроить официальную цепочку инструментов для кросс-компиляции HiSilicon и комплект разработки программного обеспечения (SDK). Эта среда необходима для создания загрузчика, ядра и приложений для вашего нового оборудования ARM.
-
Установите кросс-компилятор:
# Распаковать инструментарий ARM Tar-XZF arm-himix200-linux.tgz # Добавьте компилятор в PATH вашей системы Экспортировать ПУТЬ = $(pwd)/arm-himix200-linux/bin:$ ПУТЬ -
Распакуйте HiSilicon SDK:
# Распаковать основной пакет SDK Tar-XZF Hi35XX_SDK_V2.0.X.X.tgz
НАСТРОЙКА ОКРУЖАЮЩЕЙ СРЕДЫ СЕТЕВОЙ загрузки
Настройка загрузки сети с использованием TFTP и NFS ускоряет разработку, позволяя тестировать изменения без перепрошивки устройства каждый раз. Это ключевая часть контрольного списка миграции для повышения эффективности.
Настройте свой компьютер разработки в качестве сервера:
- Установка серверов:В Ubuntu установите необходимые пакеты.
Sudo apt-получить установку nfs-ядро-сервер tftpd-hpa - Настройка NFS:Создайте общий каталог и предоставьте разрешения.
Sudo mkdir/для дома/${USER}/nfs Sudo chmod 777/для дома/${USER}/nfs - Экспорт каталога:Редактировать
/Etc/экспортИ добавьте эту строку, затем перезапустите службу./Home/<user>/nfs *(rw, синхронизация, no_rot_squash)Sudo service nfs-kernel-server restart
Pro Совет: Устранение неполадок TFTP тайм-аутов Если вы столкнулись с тайм-аутами TFTP, не просто увеличьте значение тайм-аута. Вместо этого используйте сетевой анализатор, такой как Wireshark, чтобы проверить, отправляет ли плата HiSilicon ACK. Кроме того, убедитесь, что правила брандмауэра вашего ПК не блокируют трафик. Неправильная реализация таймера ARM также может привести к сбою сетевых транзакций, влияя на общую производительность.Этот этап анализа перед миграцией гарантирует совместную работу вашего оборудования и программного обеспечения для обеспечения оптимальной производительности. Миграция на новую платформу ARM Cortex-A7 требует такого уровня детализации.
ЭТАП 2: ПОРТИРОВКА СИСТЕМЫ НИЗКОГО УРОВНЯ
Сейчас вы входите в основную техническую фазу миграции. Цель низкоуровневой портации системы состоит в том, чтобы заставить основное программное обеспечение-загрузчик и ядро-работать на вашем новом оборудовании HiSilicon. Успех на этом этапе гарантирует, что ваше устройство может загружаться и распознавать свои основные компоненты. Это важный шаг в вашем контрольном списке миграции.
КОНФИГУРАЦИЯ ЗАГРУЗЧИКА (U-BOOT)
Ваша первая задача при переносе системы на низком уровне-настроить загрузчик Das U-Boot. Вы должны адаптировать U-Boot к конкретной схеме памяти и хранилища вашей новой платы HiSilicon. Это включает в себя настройку таймингов контроллера памяти для нового типа DDR и определение карты разделов флэш-памяти.
Например, вы определите, как хранилище eMMC разделено на загрузчик, ядро и корневую файловую систему. Управление этим макетом осуществляется непосредственно в переменных среды U-Boot.
Вы определяете расположение разделов флэш-памяти с помощью
BlkdevartsПараметр внутриБутаргиПеременная. Это говорит ядру, как организовано хранилище.Bootargs = консоль = ttyAMA0,115200 root =/dev/mmcblk0p4 rootfstype = ext4 rootWait blk0:1M(fastboot),1M (ядро),128M(rootfs),-(система)В этом примере для устройства ARM вы создаете отдельные разделы для
FastBoot,Ядро, ИRotfs. Вы должны убедиться, что эти определения соответствуют вашей фактической схеме разделов, чтобы избежать сбоев загрузки.
ПОРТИНГ ЯДРОВ И АДАПТАЦИЯ DTS
Далее, вы будете адаптировать ядро Linux к HiSilicon System-on-Chip (SoC). Наиболее важной частью этого процесса является изменение файла источника дерева устройств (DTS). DTS-это структура данных, которая описывает аппаратное обеспечение ядра, сообщая ему, какие драйверы загружать и какие ресурсы (например, адреса памяти и прерывания) они используют.
Необходимо правильно настроить часы и сбросить узлы контроллера в DTS. Это гарантирует, что все периферийные устройства получают правильные тактовые сигналы для правильной работы. Для HiSilicon SoC вы можете установить определенные тактовые частоты для разных частей периферийного устройства. К примеру, вы можетеНазначить тактовую частоту 24 МГц интерфейсу SPI NOR, назначив тактовую частоту 30 МГц интерфейсу SPI NAND, все в одном контроллере флэш-памяти. Этот мелкозернистая система управления является ключом к достижению оптимальной производительности.
Чтобы обеспечить правильную инициализацию периферийных устройств, конфигурация DTS для платформы HiSilicon должна включать:
- Поддержка драйвера часов: Вам необходимо включить правильные драйверы часов для вашего конкретного SoC, которые регистрируют все необходимые часы из модуля Clock and Reset Generator (CRG).
- DT привязки: Ваша структура DTS должна соответствовать официальному
Dt-привязки. Эти привязки определяют требуемые свойства какРегИ# Reset-ячейкиДля работы оборудования. - Сбросить контроллер:Вы всегда должны использовать контроллер сброса для управления сбросами периферийных устройств. Запись непосредственно в регистры не является надежной практикой для стабильной системы ARM.
СООБРАЖЕНИЯ АРХИТЕКТУРЫ РУКА
Последним шагом на этом этапе является учет различий в архитектуре ARM. Переход от простого одноядерного ARM Cortex-A7 к многоядерному или большому. LITTLE HiSilicon SoC открывает новые возможности для оптимизации производительности, но также требует тщательной настройки программного обеспечения. Успех вашей миграции зависит от того, насколько хорошо вы справитесь с этими новыми сложностями.
Если ваш новый HiSilicon SoC использует архитектуру big.LITTLE (сочетающую мощные «большие» ядра ARM с эффективными «маленькими» ядрами ARM),Необходимо настроить планировщик ядра. Этот планировщик решает, какие задачи выполняются на каких ядрах, чтобы сбалансировать производительность и энергопотребление.
- Режим IKS (переключатель в ядере): Этот режим представляет набор виртуальных ядер для ядра. Он динамически перемещает задачи между большими и маленькими ядрами в зависимости от нагрузки системы.
- Режим HMP (гетерогенной многопроцессорности): В этом режиме большие и маленькие кластеры ядра обрабатываются отдельно. Планировщик назначает легкие задачи маленьким ядрам и требовательные задачи большим ядрам для максимальной эффективности.
Помимо планировщика, миграция на более новую архитектуру ARM, например с ARMv7 (используемой во многих SoC) на ARMv8, создает другие проблемы. Этот список поможет вам подготовиться к ним.
- Обновление библиотек и инструментов: Возможно, вам потребуется обновить библиотеки программного обеспечения до более новых версий, которые поддерживают 64-битную архитектуру ARM.
- Обрабатывать ограниченную поддержку третьих сторон: Некоторые из ваших существующих инструментов могут не иметь ARM-совместимой версии. Возможно, вам придется найти альтернативы или работать с поставщиками.
- Перенос контейнерных услуг: Если вы используете Docker, вы должны создать многоархитектурные образы контейнеров, которые могут работать как на старых, так и на новых платформах ARM.
ЭТАП 3: МИГРАЦИЯ ВОДИТЕЛЯ И БЛИЖНЕГО ОБОРУДОВАНИЯ
С загрузкой вашего устройства теперь вы можете сосредоточиться на том, чтобы сделать его функции функциональными. Этот этап миграции включает в себя перенос программного обеспечения, которое контролирует вашАппаратные периферийные устройстваИ интеграция мощного промежуточного программного обеспечения HiSilicon. Ваша цель-воплотить уникальные функции вашего продукта в жизнь на новой платформе ARM.
ПЕРИФЕРИЧЕСКАЯ МИГРАЦИЯ ВОДИТЕЛЯ
Периферийные драйверы-это программные мосты между ядром Linux и физическим оборудованием, таким как I2C.Датчики, SPI flash и порты UART. Ваша миграция требует адаптации этих драйверов для новой HiSilicon SoC. Многие общие драйверы ARM могут работать с незначительными изменениями, но другие нуждаются в значительных обновлениях.
Ваш первый шаг-просмотреть драйверы с вашей старой платформы ARM. Вы должны определить, какие драйверы являются пользовательскими, а какие стандартными. HiSilicon SDK часто предоставляет готовые к использованию драйверы для своих внутренних периферийных устройств. Вы должны уделять приоритетное внимание использованию этих официальных драйверов для лучшей стабильности и производительности.
Для пользовательских драйверов вам нужно будет изменить исходный код. Обычно это включает обновление отображенных в памяти адресов ввода/вывода и номеров прерываний для соответствия новому оборудованию HiSilicon. Вы найдете эти новые значения в таблице данных SoC.
Совет Pro: используйте
RegmapДля чистящих драйверов ЛинуксRegmapAPI помогает создавать более чистые и портативные драйверы ARM. Он абстрагируется от прямого регистра читает и пишет. Это упрощает обслуживание и адаптацию вашего кода драйвера для будущего оборудования ARM. ИспользованиеRegmapУпрощает миграцию драйверов.
Например, можно обновить строку совместимости дерева устройств драйвера и определения регистров.
// Таблица соответствия дерева устройств старого драйвера
Статическая конст структура идентификатора_устройства my_sensor_of_match[] = {
{. Совместимость = "vendor,old-soc-i2c" },
{}
};
// Новая таблица соответствия дерева устройств драйвера для HiSilicon
Статическая конст структура идентификатора_устройства my_sensor_of_match[] = {
{. Совместимость = "hisilicon,hi35xx-i2c" }, // Соответствует контроллеру HiSilicon I2C
{}
};
Это изменение указывает ядру загрузить драйвер, когда оно находит соответствующий узел HiSilicon I2C в дереве устройств. Эта тщательная работа драйвера имеет важное значение для успешной системы ARM.
ПЕРЕХОД НА HISILICON MPP
Основным преимуществом использования HiSilicon SoC является его специализированныйПлатформа обработки мультимедиа(MPP). MPP-это высокопроизводительная библиотека программного обеспечения, которая использует аппаратные ускорители для кодирования видео, декодирования и обработки изображений. Это важная часть миграции для любого мультимедийного продукта. Переход от универсальной библиотеки, такой как FFmbeg, к HiSilicon MPP открывает огромный прирост производительности.
MPP API дает вашему приложению прямой контроль над мощным видео движком в ARM SoC. Этот переход позволяет выгрузить тяжелую обработку из основных ядер ARM CPU, освободив их для других задач. Результатом является более низкое энергопотребление и более высокая общая производительность системы.
Преимущества производительности являются значительными. Например, HiSilicon Hi3559A ARM SoC обеспечивает впечатляющие результаты кодирования H.265, используя аппаратный ускоритель MPP.
- Он обеспечивает кодирование 8K (7680x4320) в реальном времени со скоростью 30 кадров в секунду (fps).
- Он может одновременно кодировать отдельный поток 1080p со скоростью 30 fps.
- Он также поддерживает снимки высокого разрешения со скоростью 2 кадра в секунду даже при кодировании видео.
Эти возможности практически невозможно достичь с помощью программного кодирования на аналогичном процессоре ARM. Интеграция HiSilicon MPP является ключом к созданию конкурентоспособного продукта.
НАСТРОЙКА ФИЛЕСИСТЕМЫ И ХРАНЕНИЯ
Последним шагом на этом этапе является подготовка корневой файловой системы. Корневая файловая система содержит все библиотеки, приложения и файлы конфигурации, необходимые вашему продукту для запуска. Вы создадите эту файловую систему на своем компьютере разработки, а затем прошите ее в хранилище устройства, например, на eMMC или флеш-чип NAND.
Во-первых, вы должны выбрать тип файловой системы. Для карт eMMC или SD,Ext4Это надежный выбор. Для необработанной флэш-памяти NAND файловая система, такая как флэш-памятьУбифЛучше, потому что справляется с выравниванием износа и плохими блоками, продлевая срок службы хранилища.
Далее, вы будете заполнять файловую систему. Это предполагает:
- Создание структуры корневого каталога (
/Корзина,/Lib,/И т. д.И т. д.). - Копирование кросс-скомпилированной библиотеки C инструментальной цепочки ARM (
Libc. So) И динамический компоновщик (Ld-linux.so) В/LibКаталог. - Установка ваших кросс-скомпилированных приложений и любых необходимых сторонних библиотек.
- Копирование библиотек HiSilicon MPP (
Libmpi. SoИ т. д.), чтобы ваше приложение могло получить доступ к аппаратным ускорителям.
Завершение этого контрольного списка подготавливает ваше устройство к полностью функциональной программной среде. Эта комплексная миграция драйверов и промежуточного программного обеспечения создает основу для окончательного тестирования и оптимизации приложений, приближая вас к завершению контрольного списка миграции.
ЭТАП 4: ВАЛИДАЦИЯ И ОПТИМИЗАЦИЯ
Вы уже достигли заключительного этапа своей миграции. Этот этап фокусируется на проверке вашей работы и раскрытии полного потенциала производительности вашего нового оборудования HiSilicon. Вы будете перекомпилировать свое программное обеспечение, оптимизировать критические пути кода и проводить тщательное общесистемное тестирование. Успех здесь гарантирует, что ваш продукт будет стабильным, надежным и быстрым.
ПРИМЕНЕНИЕ ПРИМЕНЕНИЯ
Ваша первая задача-перекомпилировать все ваши пользовательские приложения и библиотеки. Вы должны использовать кросс-компилятор HiSilicon, который вы установили на этапе 1. Этот шаг гарантирует, что ваше программное обеспечение построено специально для новой архитектуры процессора ARM. Эта первоначальная перекомпиляция заставляет ваши приложения работать на целевом устройстве, настраивая основу для настройки производительности.
ИСПОЛЬЗОВАНИЕ ИНСТРУКЦИИ НЕОНА
Чтобы достичь максимальной производительности, вы должны использовать двигатель ARM NEON. NEON-это расширение архитектуры SIMD (Single Instruction, Multiple Data) для процессоров ARM. Это позволяет одной инструкции выполнять операцию с несколькими частями данных одновременно. Это чрезвычайно эффективно для задач мультимедиа и обработки сигналов, что приводит к значительному повышению производительности.
Вы можете рефакторировать критически важные для производительности функции C для использования характеристик ARM NEON. Эта миграция вашего кода раскрывает истинную мощь HiSilicon ARM SoC.
- Стандартная функция C:Эта версия обрабатывает один пиксель за раз.
Void AddImage8( uint8 _ t * dst, uint8 _ t const * src1, uint8 _ t const * src2, int ширина, int высота) { Индекс int = 0; Для (int y = 0; y <высота; y) { Для (int x = 0; x <ширина; x) { Int t = src1 [индекс] src2 [индекс]; Dst [index] = t> 255? 255: т; Индекс; } } } - ARM NEON Оптимизированная функция: Эта версия ARM обрабатывает 16 пикселей (байт) одновременно, Значительно улучшая производительность.
Void AddImage8AlignedNEON( uint8 _ t * dst, uint8 _ t const * src1, uint8 _ t const * src2, int ширина, int высота) { Int const vectorNumberPerRow = ширина/16; Для (int y = 0; y <высота; y) { Для (int i = 0; i <векторNumberPerRow; i) { Uint8x16 _ t a = vld1q _ u8( src1 ); Uint8x16 _ t b = vld1q _ u8( src2 ); Uint8x16 _ t r = vqaddq _ u8( a, b ); // Выполняем насыщенное добавление на 16 байт Vst1q _ u8( dst, r ); Src1 = 16; Src2 = 16; Dst = 16; } } }
ИСПЫТАНИЕ И ДЕБАГГИРОВАНИЕ СИСТЕМ
Наконец, вы должны выполнить комплексное тестирование системы. Это выходит за рамки проверки, работают ли приложения. Вам необходимо проверить стабильность и производительность всей системы под нагрузкой. Выполните стресс-тесты для мониторинга использования ЦП, потребления памяти иТепловые характеристики. Этот последний элемент контрольного списка в контрольном списке миграции проверяет, соответствует ли устройство ARM всем функциональным требованиям и требованиям к производительности, завершая успешную миграцию.
Вы успешно заполнили контрольный список миграции HiSilicon. Такая структурированная миграция минимизирует риски и обеспечивает плавный переход. Вы должны рассматривать этот контрольный список как живой документ для ваших проектов. Ваша успешная миграция HiSilicon открывает превосходную производительность. Вы получаете доступ к специализированного оборудования HiSilicon для непревзойденной производительности, обеспечивая отличную производительность системы и приложений. Это приводит к долгосрочным преимуществам производительности.
Часто задаваемые вопросы
Могу ли я повторно использовать свои старые драйверы ARM?
Иногда вы можете повторно использовать общие драйверы. Тем не менее, вы должны уделять приоритетное внимание официальным драйверам HiSilicon для основных периферийных устройств. Это обеспечивает наилучшую стабильность и производительность вашего нового оборудования для рук. Пользовательские драйверы потребуют обновлений, чтобы соответствовать новой карте памяти SoC и назначениям прерываний.
Почему же необходим переход на HiSilicon MPP?
Вы должны перейти на платформу обработки мультимедиа (MPP), чтобы разблокировать аппаратное ускорение. MPP выгружает задачи видео и изображений из основного процессора. Это обеспечивает значительный прирост производительности и снижает энергопотребление, что имеет решающее значение для конкурентных мультимедийных продуктов.
Каковы основные проблемы при переходе на 64-битную архитектуру ARM?
Вы должны перекомпилировать все программное обеспечение с помощью 64-битной цепочки инструментов. Вам также может потребоваться найти 64-разрядные совместимые версии сторонних библиотек. Перенос контейнерных сервисов требует создания многоархитектурных образов для поддержки новой платформы ARM во время перехода.
Насколько важен файл дерева устройств (DTS)?
Дерево устройств имеет важное значение для успешной миграции. Вы используете его для описания вашего аппаратного макета ядру Linux. Правильная настройка DTS гарантирует, что система загружает правильные драйверы и назначает необходимые ресурсы для вашего нового устройства.







