AVNET EMBEDDED MSC SM2S-IMX8M Li ser Talîmatên Modulê Komputerên Bingeha ARM-yê UART-Port Debug
Pêşgotin
Notice Copyright
Copyright © 2023 Avnet Embedded GmbH. Hemû maf parastî ne. Kopîkirina vê belgeyê, pêşkêşkirina ji kesên din re û bikar anîn an ragihandina naveroka wê, bêyî destûrnameyek eşkere ji Avnet Embedded / MSC Technologies qedexe ye.
GmbH. Sûcdar ji bo dayîna zirarê berpirsiyar in. Hemî maf parastî ne di bûyera dayîna patentek an tomarkirina modelek bikêr an sêwiranê de.
Agahiya Girîng
Ev belge tenê ji bo temaşevanên jêhatî ye. Hilbera ku li vir hatî destnîşan kirin ne hilberek bikarhênerek dawî ye. Ew ji bo pêvajoyek bêtir ji hêla personelên perwerdekirî ve hate pêşve xistin û çêkirin.
Disclaimer
Her çend ev belge bi hûrgulî hatî çêkirin jî, ji bo armancek taybetî garantî an berpirsiyarî ji bo rastbûn an guncandî nayê destnîşan kirin. Agahdariya di vê belgeyê de "wek ku heye" tête peyda kirin û bêyî agahdarî tête guhertin.
Trademarks
Hemî navên hilberên bikar anîn, logo an tîcarî milkên xwediyên wan ên têkildar in.
Agahiyên Giştî
Scope
Ev belge ji bo hemî Komputer-li-Modulên Avnet ên Embedded yên ku li ser bingeha CPU-yên NXP i.MX8- û i.MX9-serî ne, wek mînak
- 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
Ev navnîş îdîa nake ku bêkêmasî ye, nemaze ji ber ku dibe ku panelên nû werin berdan ku ji bo wan heman prosedur dikarin werin sepandin, di heman demê de dibe ku ev belge her gav tavilê neyê nûve kirin.
Guhertin û Guhertin
Nûxwestin | Rojek | Agahkişî | |
1.0 | 25.05.2023 | M. Koç | Guhertoya destpêkê |
Meriv çawa porta debug UART-ê biguhezîne
Pêşkêş
Gelek pergalên ARM-ê bi Konsola Serial wekî navgîniya bingehîn a gihîştina ji bo mebestên debugkirin û rakirina pergalê têne. Bi hewcedariyên xerîdar ve girêdayî, di pergalên weha de hewcedariyek pir caran çêdibe ku pêdivî ye ku porta debug UART-a xwerû li portek serialî ya cûda were guheztin. Bi debug porta UART mebesta me porta UART e ku dê hemî têketin/derketina U-Boot, derketina bootloga kernel û qalika kernelê peyda bike, di bingeh de hemî ragihandina UART ku meriv dê di wêneyek Yocto ya hindiktirîn de bibîne. Ji ber ku porta UART-ya xwerû ne tenê ji hêla yek hêmanek nermalavê ve, lê ji hêla gelek beşan ve, di nav de u-boot, atf-firmware, optee-os û kernel bixwe ve tê bikar anîn, danîna porta UART-ya xwerû dikare dijwar be, û ya din.view zû dikare winda bibe. Ev belge dê hemî gavên ku divê bişopînin, ji bo bidestxistina vî karî rave bike. Ji bo ravekirina hêsantir, ev belge ji bo pêvajoya NXP i.MX8 MINI û mscldk hate nivîsandin, lê dikare bi hewildanek pir hindik li ser hemî pêvajoyên rêzikên i.MX8- û i.MX9 û pergalên din ên çêkirinê were sepandin.
Amadekirina hawirdorê
Guhertina porta debug UART ya xwerû dê hewceyê guheztina kodê li Yocto bike, û riya herî hêsan a kirina wê ev e ku meriv devtoolê Yocto bikar bîne da ku çavkaniyan ji me re amade bike. Pêdivî ye ku pakêtên Yocto yên jêrîn biguherînin:
- u-boot-imx (virtual/bootloader)
- linux-imx (virtual/kernel)
- atf-imx
- optee-os (tenê heke optee tê bikaranîn)
Divê çavkanî bi devtool bêne amadekirin:
$ ./devtool u-boot-imx biguherîne
$ ./devtool linux-imx biguherîne
$ ./devtool atf-imx biguherîne
$ ./devtool optee-os biguherîne
Hemî çavkanî di pelrêça "qada xebatê" de têne dîtin.
Guhertina kodê
Guhertina Bootloader
Di bootloader de dê hin destpêkek bingehîn a UART çêbibe, ji ber vê yekê pêdivî ye ku muxing û navnîşana bingehîn a porta UART were guheztin. Karê duyemîn ê u-boot ev e ku argumanên bootê ji kernel re derbas bike û li vir hewce ye ku argumana tty konsolê biguhezîne. Destpêkirin û mûxalîfkirina UART di s-ya pêşîn de pêk têtage ya pêvajoya boot di SPL. Koda çavkaniyê dikare di panela taybetî ya spl.c de were dîtin file.
Armanc file: qada xebatê/sources/u-boot-imx/board/msc/sm2s_imx8mm/spl.c
Vekin file û li fonksiyona init_ser0 ():
valahiya statîk init_ser0(betal)
{
imx_iomux_v3_setup_multiple_pads(ser0_pads, ARRAY_SIZE(ser0_pads)); init_uart_clk(1);
}
Fonksîyon ji bo demjimêrê çalak dike UART2 (indeks 1 ji bo UART fîzîkî 2).
Naha, heke em dixwazin li şûna UART1 bikar bînin, em dikarin fonksiyona xweya init_ser1 diyar bikin:
valahiya statîk init_ser1(betal)
{
imx_iomux_v3_setup_multiple_pads(ser1_pads, ARRAY_SIZE(ser1_pads)); init_uart_clk(0);
}
Di fonksiyona board_early_init_f() de banga fonksiyonê ya init_ser0 bi init_ser1() veguherîne. Zêdetir em bala xwe didin ku avahiya ser1_pads ne diyar e. Li vir pêdivî ye ku meriv ji têlkirina UART1 haydar be. Li ser imx8mm, UART1 dikare bi padsên uart1, an jî bi padsên sai2 ve were girêdan. Li gorî vê yekê, ser1_pads dibe ku wekî:
static 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
};
An na, sai2 bikar bînin:
static 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 };
Naha divê navnîşana bingehîn a UART were guheztin, navnîş di mîhengê sernavê panelê de tête diyar kirin file.
Armanc file: qada xebatê/sources/u-boot-imx/include/configs/msc_sm2s_imx8mm.h
Pênaseya CONFIG_MXC_UART_BASE biguherîne. Ji bo UART1 ev ê bibe:
- // #define CONFIG_MXC_UART_BASE
- UART2_BASE_ADDR
- #define CONFIG_MXC_UART_BASE
- UART1_BASE_ADDR
Di dawiyê de, divê argumana kernelê ya konsolê were guheztin. Nirx dikare di heman sernavê de were dîtin file. Search for “console=ttymxc1…” and modify “ttymxc1” to “ttymxc0”. The index number correlates to UART index, and is always UART index minus 1. So for UART 2 we use ttymxc1, for UART3 use ttymxc2 etc..
Guhertina Firmwareya pêbawer a ARM
Firmware-ya Trusted Arm (imx-atf) xwedan rûtînek destpêkirina UART-ê tune, di heman demê de ew xwedan navnîşek bingehîn a UART-ê ya hişk e, û xwe dispêre destpêka UART-ya rast a ji u-boot. Veavakirina navnîşana bingehîn a cihêreng di u-boot û imx-atf de bi îhtîmalek mezin dê pêvajoyê di hilgirê îstîsnayê de bihêle, û dê li ser UART tiştek xuya nebe (CPU bêyî sedemek xuyayî dixuye ku disekine). Dema ku porta UART were guhertin, divê ev guhertin di imx-atf de jî çêbibe! Guhertina porta UART di imx-atf de guherînek navnîşana bingehîn hewce dike. Ev nirx di platform.mk de hatiye danîn file ya pêvajoyê.
Armanc file: qada xebatê/sources/imx-atf/plat/imx/imx8m/imx8mm/platform.mk
Navnîşana bingehîn a UART-ê ya rast dikare di manuala referansa imx8 de were dîtin. Di vê exampLe em ji UART2 biguherînin UART1 li ser imx8mm:
# IMX_BOOT_UART_BASE ?= 0x30890000
IMX_BOOT_UART_BASE ?= 0x30860000
Guhertina optee-os
Optee OS bi gelemperî dema ku şîfreya modula CAAM li ser pergalê tê bikar anîn tê barkirin. Optee li ser heman corên ARM Cortex-A53 dimeşîne, lê di mînakek din a bi tevahî serbixwe de wekî kernel. Optee di heman demê de gihîştina UART-ê jî hewce dike û di vê rewşê de ev tê wateya guhartinek navnîşana bingehîn.
Armanc file: qada xebatê/sources/optee-os/core/arch/arm/plat-imx/conf.mk
Ev example dê navnîşana bingehîn a UART ji UART2 ber UART1 saz bike:
#CFG_UART_BASE ?= UART2_BASE
CFG_UART_BASE ?= UART1_BASE
Guhertina Kernelê
Kernel dê tenê çend guheztinên dara cîhazê hewce bike, û tenê heke UART hîn di kernel de peyda nebe. Di gelek rewşan de, tu guhertin dê li her tiştî hewce nebe. Lêbelê, ji kerema xwe verast bikin ka tty mînaka ku hûn dixwazin bikar bînin heye! Bi fermanek şêlê hebûna tty kontrol bikin:
$ ls /dev/ttymxc*
Ger ttymxc jixwe berdest be, guheztinek ne hewce ye. Ji bo example, ji bo UART2 ev dê bibe /dev/ttymxc1. Wekî ku em jixwe dizanin, îndeksa tty her gav nîşaneya UART-ya laşî kêm 1 e. Ger ttyya pêwîst peyda nebe, ji kerema xwe prosedûra entegrasyona UART ya adetî bişopînin.
Avakirin & Test
Ji bo jinûveavakirinek bi ewle divê paqijiyek tam were sepandin:
$ ./bitbake –c cleanall u-boot-imx linux-imx imx-atf optee-os
Wêneyê dîsa bi fermana avakirina xwerû, ji bo nimûne, ava bikinample:
$ ./bitbake msc-image-base
Ji bo mebesta ceribandinê, pêdivî ye ku adapterek UART bi UART-a kevn ve were girêdan. Pêdivî ye ku li ser UART-a kevn êdî encamek tune be! Pêdivî ye ku UART-a nû bi tevahî bikêrhatî be, ji bo vê yekê ji kerema xwe pêwendiyê bi karanîna şêlê UART-ê û konsolê linux-ê verast bikin.
Piştgiriya hilberê
Endezyar û teknîsyenên Avnet Embedded pabend in ku kengê hewce bike piştgirî bidin xerîdarên me. Berî ku bi Piştgiriya Teknîkî ya Avnet Embedded re têkilî daynin, ji kerema xwe bi rûpelên têkildar ên li ser me re şêwir bikin website li
https://embedded.avnet.com/support/
ji bo belgeyên herî dawî, ajokar û dakêşanên nermalavê.
Ger agahdariya ku li wir hatî peyda kirin pirsgirêka we çareser nake, ji kerema xwe bi tîmê meya Piştgiriya Teknîkî ya Embedded Avnet re bi vî rengî têkilî daynin:
Email: support.boards@avnet.eu
Telefon: +49 (0)8165 906-200
Belge / Çavkanî
![]() |
AVNET EMBEDDED MSC SM2S-IMX8M Komputerên li ser Modulê Bingeha ARM UART Debug [pdf] Rênîşander MSC SM2S-IMX8M, MSC SM2S-IMX8M Debug UART Port ARM Komputerên li ser Modul, Debug UART Port ARM Komputerên li ser Modulê, UART Port ARM Komputerên li ser Modulê, Port ARM Komputerên li ser Modulê, Komputerên Bingeha ARM, Komputerên li ser Modulê li ser Modul, Komputer li ser Modulê, Module |