AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM asosidagi kompyuterlarni modul ko'rsatmalari asosida
AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM asosidagi kompyuterlar moduli

Muqaddima

Mualliflik huquqi to'g'risida eslatma

Mualliflik huquqi © 2023 Avnet Embedded GmbH. Barcha huquqlar himoyalangan. Avnet Embedded /MSC Technologies kompaniyasining ruxsatisiz ushbu hujjatni nusxalash, boshqalarga taqdim etish va uning mazmunidan foydalanish yoki uzatish taqiqlanadi.

GmbH. Huquqbuzarlar zararni to'lash uchun javobgardirlar. Patent berilgan yoki foydali model yoki dizayn ro'yxatga olingan taqdirda barcha huquqlar himoyalangan.

Muhim ma'lumot

Ushbu hujjat faqat malakali auditoriya uchun mo'ljallangan. Bu yerda tasvirlangan mahsulot oxirgi foydalanuvchi mahsuloti emas. U o'qitilgan xodimlar tomonidan keyingi qayta ishlash uchun ishlab chiqilgan va ishlab chiqarilgan.

Rad etish

Garchi ushbu hujjat juda ehtiyotkorlik bilan yaratilgan bo'lsa-da, to'g'riligi yoki biron bir maqsad uchun muvofiqligi uchun hech qanday kafolat yoki javobgarlik nazarda tutilmagan. Ushbu hujjatdagi ma'lumotlar "xuddi shunday" taqdim etilgan va ogohlantirishsiz o'zgartirilishi mumkin.

Savdo belgilari

Barcha foydalanilgan mahsulot nomlari, logotiplari yoki savdo belgilari ularning tegishli egalarining mulki hisoblanadi.

Umumiy ma'lumot

Qo'llash doirasi

Ushbu hujjat NXP i.MX8- va i.MX9-seriyali protsessorlarga asoslangan barcha Avnet oʻrnatilgan kompyuter-modullari uchun amal qiladi, masalan,

  • SM2S-IMX8PLUS
  • SM2S-IMX8M
  • SM2S-IMX8MINI
  • SM2S-IMX8NANO
  • SM2S-IMX8 (QuadPlus/QuadMax)
  • SM2S-IMX93
  • OSM-SF-IMX91
  • OSM-SF-IMX93
  • OSM-MF-IMX8NANO
  • OSM-MF-IMX8MINI

Ushbu ro'yxat to'liq deb da'vo qilmaydi, ayniqsa, bir xil tartiblar qo'llanilishi mumkin bo'lgan yangi kengashlar chiqarilishi mumkin, ammo bu hujjat har doim ham darhol yangilanmasligi mumkin.

Tahrir va o'zgartirishlar

Qayta ko'rib chiqish Sana Izoh
1.0 25.05.2023 M. Koch Dastlabki versiya

Nosozliklarni tuzatish UART portini qanday o'zgartirish mumkin

Kirish

Ko'pgina ARM-ga asoslangan tizimlar disk raskadrovka va tizimni ko'tarish uchun kirishning asosiy vositasi sifatida Serial Console bilan birga keladi. Mijozlarning talablariga qarab, bunday tizimlarda tez-tez yuzaga keladigan zarurat bo'lib, standart disk raskadrovka UART portini boshqa ketma-ket portga o'tkazish kerak. UART portini disk raskadrovka qilish deganda biz barcha U-Boot kiritish/chiqishini, yadro yuklash jurnali chiqishini va yadro qobig'ini ta'minlaydigan UART portini nazarda tutamiz, asosan barcha UART aloqasi minimal Yocto tasvirida ko'riladi. Standart UART porti faqat bitta dasturiy ta'minot komponenti tomonidan emas, balki u-boot, atf-proshivka, optee-os va yadroning o'zi kabi ko'plab komponentlar tomonidan ishlatilganligi sababli standart UART portini o'rnatish qiyin bo'lishi mumkin.view tezda yo'qolishi mumkin. Ushbu hujjat ushbu vazifani bajarish uchun barcha amallarni bajarish kerakligini tushuntiradi. Tushuntirishni osonlashtirish uchun ushbu hujjat NXP i.MX8 MINI protsessori va mscldk uchun yozilgan, biroq barcha i.MX8- va i.MX9-seriyali protsessorlar va boshqa qurilish tizimlariga juda oz kuch sarflagan holda qoʻllanilishi mumkin.

Atrof-muhitni tayyorlash

Standart disk raskadrovka UART portini o'zgartirish Yocto-da kodni o'zgartirishni talab qiladi va buni amalga oshirishning eng oson yo'li biz uchun manbalarni tayyorlash uchun Yocto devtool-dan foydalanishdir. Quyidagi Yocto paketlarini o'zgartirish kerak bo'ladi:

  • u-boot-imx (virtual/bootloader)
  • linux-imx (virtual/yadro)
  • atf-imx
  • optee-os (faqat optee ishlatilsa)

Manbalar devtool bilan tayyorlanishi kerak: 

$ ./devtool o'zgartirish u-boot-imx
$ ./devtool linux-imx-ni o'zgartiring
$ ./devtool o'zgartirish atf-imx
$ ./devtool o'zgartirish optee-os

Barcha manbalarni "ish maydoni" katalogida topish mumkin.

Kod o'zgartirilmoqda

Bootloaderni o'zgartirish

Bootloaderda ba'zi asosiy UART ishga tushirilishi sodir bo'ladi, shuning uchun muxingni va UART portining asosiy manzilini o'zgartirish kerak bo'ladi. U-bootning ikkinchi vazifasi yuklash argumentlarini yadroga o'tkazishdir va bu erda konsol tty argumentini o'zgartirish kerak bo'ladi. UARTni ishga tushirish va muxinglash eng erta s da sodir bo'laditagSPLda yuklash jarayonining e. Manba kodini kengashning maxsus spl.c da topish mumkin file.

Maqsad file: workpace/sources/u-boot-imx/board/msc/sm2s_imx8mm/spl.c

ni oching file va init_ser0() funktsiyasiga o'ting:

statik void init_ser0 (void)
{
imx_iomux_v3_setup_multiple_pads(ser0_pads, ARRAY_SIZE(ser0_pads)); init_uart_clk(1);
}

Funktsiya soatni faollashtiradi UART2(indeks Jismoniy UART 1 uchun 2).

Endi, agar biz UART1 o'rniga foydalanmoqchi bo'lsak, biz o'z init_ser1 funksiyamizni belgilashimiz mumkin:

statik void init_ser1 (void)
{
imx_iomux_v3_setup_multiple_pads(ser1_pads, ARRAY_SIZE(ser1_pads)); init_uart_clk(0);
}

board_early_init_f() funksiyasidagi init_ser0 funksiya chaqiruvini init_ser1() bilan almashtiring. Bundan tashqari, ser1_pads tuzilishi aniqlanmaganligini ko'ramiz. Bu erda siz UART1 simlarini bilishingiz kerak bo'ladi. imx8mm da UART1 ni uart1 prokladkalariga yoki sai2 prokladkalariga ulash mumkin. Shunga ko'ra, ser1_pads quyidagicha ta'riflanishi mumkin:

statik iomux_v3_cfg_t const ser1_pads[] = {
IMX8MM_PAD_UART1_RXD_UART1_RX | DEFAULT_UART_PAD_CTRL, IMX8MM_PAD_UART1_TXD_UART1_TX | DEFAULT_UART_PAD_CTRL, NULL
};

Yoki sai2 dan foydalanib:

statik iomux_v3_cfg_t const ser1_pads[] = {
IMX8MM_PAD_SAI2_RXFS_UART1_TX | DEFAULT_UART_PAD_CTRL, IMX8MM_PAD_SAI2_RXC_UART1_RX | DEFAULT_UART_PAD_CTRL NULL };

Endi UART asosiy manzili o'zgartirilishi kerak, manzil sarlavhalar konfiguratsiyasida aniqlangan file.

Maqsad file: workspace/sources/u-boot-imx/include/configs/msc_sm2s_imx8mm.h

CONFIG_MXC_UART_BASE taʼrifini oʻzgartiring. UART1 uchun bu: 

  • // #CONFIG_MXC_UART_BASE ni aniqlang
  • UART2_BASE_ADDR
  • #CONFIG_MXC_UART_BASE ni aniqlang
  • UART1_BASE_ADDR

Nihoyat, konsol yadrosi argumenti o'zgartirilishi kerak. Qiymatni bir xil sarlavhada topish mumkin file. Ni qidirish “console=ttymxc1…” va “ttymxc1” ni “ttymxc0” ga o‘zgartiring. Indeks raqami UART indeksiga mos keladi va har doim UART indeksi minus 1 bo'ladi. Shunday qilib, UART 2 uchun biz ttymxc1 dan, UART3 uchun ttymxc2 dan foydalanamiz va hokazo.

ARM ishonchli mikrodasturini o'zgartirish

Arm Trusted Firmware(imx-atf) o'zining UART ishga tushirish tartibiga ega emas, lekin u qattiq kodlangan UART asosiy manziliga ega va u-yuklashdan to'g'ri UART ishga tushirilishiga tayanadi. U-boot va imx-atf-dagi boshqa asosiy manzil konfiguratsiyasi protsessorni istisno ishlovchida qoldirishi mumkin va UART-da hech narsa ko'rinmaydi (protsessor hech qanday sababsiz osib qo'yilganga o'xshaydi). UART porti o'zgartirilganda, bu o'zgarish imx-atf da sodir bo'lishi kerak! imx-atf-da UART portini o'zgartirish asosiy manzilni o'zgartirishni talab qiladi. Bu qiymat platform.mk da o'rnatiladi file protsessorning.

Maqsad file: ish maydoni/sources/imx-atf/plat/imx/imx8m/imx8mm/platform.mk 

To'g'ri UART asosiy manzilini imx8 ma'lumotnomasida topish mumkin. Bu example biz imx2mm da UART1 dan UART8 ga o'tamiz:

# IMX_BOOT_UART_BASE ?= 0x30890000
IMX_BOOT_UART_BASE ?= 0x30860000

Optee-OS o'zgartirilmoqda

Optee OS odatda tizimda CAAM modul kriptografiyasidan foydalanilganda yuklanadi. Optee bir xil ARM Cortex-A53 yadrolarida ishlaydi, ammo boshqa butunlay mustaqil nusxada yadro kabi. Optee shuningdek, UART kirishini talab qiladi va bu holda bu asosiy manzilni o'zgartirishni anglatadi.

Maqsad file: workpace/sources/optee-os/core/arch/arm/plat-imx/conf.mk

Bu sobiqampUART asosiy manzilini UART2 dan UART1 ga o'rnatamiz: 

#CFG_UART_BASE ?= UART2_BASE
CFG_UART_BASE ?= UART1_BASE

Yadroni o'zgartirish

Yadro faqat bir nechta qurilma daraxtini o'zgartirishni talab qiladi va faqat yadroda UART mavjud bo'lmasa. Ko'pgina hollarda, hech qanday o'zgartirish talab qilinmaydi. Biroq, siz foydalanmoqchi bo'lgan tty nusxasi mavjudligini tekshiring! Shell buyrug'i bilan tty mavjudligini tekshiring:

$ ls /dev/ttymxc*

Agar ttymxc allaqachon mavjud bo'lsa, hech qanday o'zgartirish kerak emas. Misol uchunample, UART2 uchun bu /dev/ttymxc1 bo'ladi. Bizga ma'lumki, tty indeksi har doim jismoniy UART minus 1 ko'rsatkichidir. Agar kerakli tty mavjud bo'lmasa, odatdagi UART integratsiyasi protsedurasiga amal qiling.

Qurilish va sinov

Xavfsiz qayta qurish uchun to'liq tozalashni qo'llash kerak:

$ ./bitbake –c cleanall u-boot-imx linux-imx imx-atf optee-os

Tasvirni standart qurish buyrug'i bilan qayta yarating, masalanampga:

$ ./bitbake msc-image-base

Sinov maqsadida eski UART ga UART adapteri ulanishi kerak. Eski UARTda boshqa chiqish bo'lmasligi kerak! Yangi UART to'liq ishlashi kerak, buning uchun u-boot UART qobig'i va Linux konsolidan foydalanib ulanishni tekshiring.

Mahsulotni qo'llab-quvvatlash

Avnet Embedded muhandislari va texniklari kerak bo'lganda mijozlarimizga yordam berishga intiladi. Avnet Embedded-ning Texnik qo'llab-quvvatlash xizmatiga murojaat qilishdan oldin, iltimos, bizning sahifamizdagi tegishli sahifalarga murojaat qiling websaytida
https://embedded.avnet.com/support/
so'nggi hujjatlar, drayverlar va dasturlarni yuklab olish uchun.

Agar u erda taqdim etilgan ma'lumotlar muammoingizni hal qilmasa, iltimos, Avnet Embedded Technical Support jamoamiz bilan quyidagi tarzda bog'laning:

Email: support.boards@avnet.eu
Telefon: +49 (0)8165 906-200

AVNET EMBEDDED logotipi

Hujjatlar / manbalar

AVNET EMBEDDED MSC SM2S-IMX8M Debug UART Port ARM asosidagi kompyuterlar moduli [pdf] Ko'rsatmalar
MSC SM2S-IMX8M, MSC SM2S-IMX8M moduldagi UART port ARM-ga asoslangan kompyuterlarni disk raskadrovka qilish Modul bo'yicha, Moduldagi kompyuterlar, Modul

Ma'lumotnomalar

Fikr qoldiring

Sizning elektron pochta manzilingiz nashr etilmaydi. Majburiy maydonlar belgilangan *