在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM嵌入式設(shè)備Linux系統(tǒng)啟動步驟和方式

            ARM嵌入式設(shè)備Linux系統(tǒng)啟動步驟和方式

            作者: 時間:2016-07-19 來源:網(wǎng)絡(luò) 收藏

              1). 簡介

            本文引用地址:http://www.biyoush.com/article/201607/294237.htm

              本文簡單介紹嵌入式設(shè)備基于嵌入式操作系統(tǒng)時候的啟動步驟和啟動方式, 區(qū)別與X86平臺,平臺下并沒有一個標(biāo)準(zhǔn)的啟動步驟,不同 SoC都會使用各自定義的boot ROM來實(shí)現(xiàn)啟動過程,不過大體上面都包含有一些基本步驟。本文就基于Toradex ARM計算機(jī)模塊和配套載板來介紹基于Freescale i.MX6 ARM嵌入式設(shè)備的啟動步驟和方式。

              2). 啟動步驟

              a). 電源上電,系統(tǒng)Reset。

              b). CPU內(nèi)部boot ROM讀取, strapping GPIO數(shù)值鎖定。

              c). 根據(jù)strapping GPIO值和SoC 內(nèi)部fuse設(shè)置確定用于啟動的設(shè)備。

              d). 從啟動設(shè)備起始位置讀取用于配置DDR RAM和定位boot loader的配置信息。對于i.MX6平臺,則使用'image vector table (IVT)' 和 'device configuration data (DCD)' ,如果從NAND設(shè)備啟動,則還包括 'boot control blocks (BCB)'。

              e). DDR RAM被boot ROM初始化。

              f). boot loader從啟動設(shè)備復(fù)制到RAM執(zhí)行,至此系統(tǒng)控制交由boot loader.也是從這里,一些定制代碼才可以在boot loader里面開始執(zhí)行。當(dāng)然也有一些SoC是先將boot loader復(fù)制到SDRAM執(zhí)行后再由boot loader來初始化DDR RAM。

              Toradex ARM核心板使用定制化的U-boot作為boot loader,下面就基于此來繼續(xù)boot loader加載后的啟動過程。

              g). U-Boot從啟動設(shè)備上面讀取環(huán)境變量,如果變量數(shù)據(jù)損壞或者不存在,則會提示'*** Warning - bad CRC, using default environment' ,然后加載默認(rèn)初始設(shè)置.

              h). U-Boot通過分析環(huán)境變量獲得kernel和rootfs存儲位置,以及所需的kernel command line

              i). U-Boot 自動檢測系統(tǒng)RAM和eMMC/Nand Flash容量和參數(shù)

              j). U-Boot 設(shè)置以太網(wǎng)口MAC地址,并配置好硬件準(zhǔn)備加載 kernel

              k). U-Boot 加載 kernel到RAM,至此系統(tǒng)控制權(quán)則轉(zhuǎn)移到kernel來處理

              l). 系統(tǒng)Kernel初始化Linux,加載rootfs,最后啟動'init'來初始化Linux user space

              3). 啟動方式

              a). 默認(rèn)方式, U-Boot, kernel和rootfs都位與模塊自帶的eMMC上,全部從eMMC啟動。通常情況下的基本模式

              b). U-Boot位于eMMC,從eMMC啟動;而kernel和rootfs位于SD卡,從SD卡啟動。常用于切換不同的kernel和rootfs版本

              c). U-Boot位于eMMC,從eMMC啟動;而kernel從TFTP加載,rootfs從NFS加載。常用于kernel和application開發(fā)調(diào)試階段

              4). 不同啟動方式演示

              這里使用Toradex Apalis i.MX6Q 計算機(jī)模塊配合Apalis Eva 開發(fā)載板來進(jìn)行測試,平臺基本的操作上手指南請見這里。

              軟件使用Toradex官方發(fā)布的Linux V2.5beta3版本,請從這里下載。

              a). 全部從eMMC啟動

              模塊默認(rèn)的U-Boot設(shè)置即為全部從eMMC啟動,開機(jī)上電即可

              b). Kernel和rootfs從SD卡啟動

              ./ 準(zhǔn)備SD卡:將SD卡(幾百M(fèi)B容量以上,這里使用8GB)分為2個分區(qū),第一個分區(qū)為FAT32格式,一般幾十MB即可,這里演示操作為1GB;另外一個分區(qū)為ext3格式,分配為剩下SD卡容量。

              ----------------------------------

              $ sudo fdisk /dev/sdc

              ...

              命令(輸入 m 獲取幫助): p

              Disk /dev/sdc: 7744 MB, 7744782336 bytes

              255 heads, 63 sectors/track, 941 cylinders, total 15126528 sectors

              Units = 扇區(qū) of 1 * 512 = 512 bytes

              Sector size (logical/physical): 512 bytes / 512 bytes

              I/O size (minimum/optimal): 512 bytes / 512 bytes

              Disk identifier: 0x00000000

              設(shè)備 啟動 起點(diǎn) 終點(diǎn) 塊數(shù) Id 系統(tǒng)

              /dev/sdc1 2048 2099199 1048576 c W95 FAT32 (LBA)

              /dev/sdc2 2099200 15126527 6513664 83 Linux

              $ sudo mkfs.vfat -F 32 -n boot /dev/sdc1

              $ sudo mkfs.ext3 -L fs /dev/sdc2

              ----------------------------------

              ./ 制作啟動SD卡

              // 復(fù)制Linux image 壓縮包里面的kernel和device tree文件到FAT32分區(qū)

              ----------------------------------

              $ cd .../Apalis_iMX6_LinuxImageV2.5/apalis-imx6_bin

              $ cp uImage--3.14.28+gitr0632def1c9981e3974f724025f39b2c1588d8ee6-V2.5b3-apalis-imx6-20151215145612.bin /media/username/boot/uImage

              $ cp uImage--3.14.28+gitr0632def1c9981e3974f724025f39b2c1588d8ee6-V2.5b3-imx6q-apalis-eval-20151215145612.dtb /media/simon/boot/imx6q-apalis-eval.dtb

              ----------------------------------

              // 復(fù)制Linux image 壓縮包里面的rootfs文件夾內(nèi)容到ext3分區(qū)

              ----------------------------------

              $ cd .../Apalis_iMX6_LinuxImageV2.5

              $ sudo cp -Ppr rootfs/* /media/simon/fs/

              ----------------------------------

              ./ 將SD卡插入Apalis Eva載板8-bit SD卡插槽, 開機(jī)上電進(jìn)入uboot

              ----------------------------------

              Apalis iMX6 # printenv

              ...

              fdt_file=imx6q-apalis-eval.dtb //確保device tree文件和上面FAT32分區(qū)里面的命名一致

              ...

              Apalis iMX6 # run sdboot

              ----------------------------------

              ./ 啟動后就可以進(jìn)行正常的應(yīng)用開發(fā)測試了.

              c). TFTP/NFS加載kernel/file system啟動

              ./ 默認(rèn)目標(biāo)版系統(tǒng)和開發(fā)主機(jī)已經(jīng)在同一局域網(wǎng)內(nèi)并通過網(wǎng)內(nèi)DHCP服務(wù)器自動取得IP地址,如果需要手動搭建DHCP服務(wù)器,請參考這里。

              ./ 配置TFTP Server

              // 在Ubuntu 開發(fā)主機(jī)通過下面命令建立TFTP Server

              ----------------------------------

              $ sudo apt-get install tftpd-hpa

              $ sudo vi /etc/default/tftpd-hpa

              //默認(rèn)tftp server配置,也可以更換目錄,不過需要修改目錄group為”nogroup”

              $ sudo vi /etc/default/tftpd-hpa

              TFTP_USERNAME="tftp"

              TFTP_DIRECTORY="/var/lib/tftpboot"

              TFTP_ADDRESS="[::]:69"

              TFTP_OPTIONS="--secure"

              $ sudo service tftpd-hpa start

              //如已經(jīng)啟動,重新加載配置,則可運(yùn)行

              $ sudo service tftpd-hpa force-reload

              ----------------------------------

              // 復(fù)制kernel和device tree文件到TFTP Server文件夾

              ----------------------------------

              $ cd .../Apalis_iMX6_LinuxImageV2.5/apalis-imx6_bin

              $ sudo cp uImage--3.14.28+gitr0632def1c9981e3974f724025f39b2c1588d8ee6-V2.5b3-apalis-imx6-20151215145612.bin /var/lib/tftpboot/uImage

              $ sudo cp uImage--3.14.28+gitr0632def1c9981e3974f724025f39b2c1588d8ee6-V2.5b3-imx6q-apalis-eval-20151215145612.dtb /var/lib/tftpboot/imx6q-apalis-eval.dtb

              ----------------------------------

              ./ 配置NFS Server

              // 在Ubuntu 開發(fā)主機(jī)通過下面命令建立NFS Server

              ----------------------------------

              $ sudo apt-get install nfs-kernel-server

              $ sudo vi /etc/exports

              //增加下面NFS配置, ‘10.20.1.111/24’為開發(fā)主機(jī)IP/Mask配置

              /srv/nfs 10.20.1.111/24(no_root_squash,no_subtree_check,rw,fsid=root)

              $ sudo service nfs-kernel-server restart

              ----------------------------------

              // 復(fù)制rootfs文件到NFS Server文件夾

              ----------------------------------

              $ cd .../Apalis_iMX6_LinuxImageV2.5

              $ sudo cp -Ppr rootfs/* /srv/nfs/

              ----------------------------------

              ./ 配置Apalis i.MX6目標(biāo)系統(tǒng)

              //開機(jī)上電進(jìn)入Uboot,修改如下參數(shù)

              ----------------------------------

              # setenv serverip ‘10.20.1.111’ //TFTP Server IP

              # setenv nfsargs ‘ip=10.20.1.115:10.20.1.111:10.20.1.1:255.255.255.0::eth0:on root=/dev/nfs nfsroot=10.20.1.111:/srv/nfs rw netdevwait’

              // ip = 目標(biāo)板IP:NFS Server IP:網(wǎng)關(guān):Mask

              // 啟動NFS boot

              # run nfsboot

              ----------------------------------

              5). 總結(jié)

              由上可見,在ARM平臺使用和開發(fā)的時候可以靈活利用各種啟動方式,提供更為方便和高效的開發(fā)或使用過程。



            關(guān)鍵詞: ARM Linux

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉