国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

ARM嵌入式設備Linux系統啟動步驟和方式

發布時間:2016-7-25 10:56    發布者:designapp
關鍵詞: ARM , Linux
  1). 簡介
  本文簡單介紹ARM嵌入式設備基于嵌入式Linux操作系統時候的啟動步驟和啟動方式, 區別與X86平臺,ARM平臺下并沒有一個標準的啟動步驟,不同ARM SoC都會使用各自定義的boot ROM來實現啟動過程,不過大體上面都包含有一些基本步驟。本文就基于Toradex ARM計算機模塊和配套載板來介紹基于Freescale i.MX6 ARM嵌入式設備的啟動步驟和方式。
  2). 啟動步驟
  a). 電源上電,系統Reset。
  b). CPU內部boot ROM讀取, strapping GPIO數值鎖定。
  c). 根據strapping GPIO值和SoC 內部fuse設置確定用于啟動的設備。
  d). 從啟動設備起始位置讀取用于配置DDR RAM和定位boot loader的配置信息。對于i.MX6平臺,則使用'image vector table (IVT)' 和 'device configuration data (DCD)' ,如果從NAND設備啟動,則還包括 'boot control blocks (BCB)'。
  e). DDR RAM被boot ROM初始化。
  f). boot loader從啟動設備復制到RAM執行,至此系統控制交由boot loader.也是從這里,一些定制代碼才可以在boot loader里面開始執行。當然也有一些SoC是先將boot loader復制到SDRAM執行后再由boot loader來初始化DDR RAM。
  Toradex ARM核心板使用定制化的U-boot作為boot loader,下面就基于此來繼續boot loader加載后的啟動過程。
  g). U-Boot從啟動設備上面讀取環境變量,如果變量數據損壞或者不存在,則會提示'*** Warning - bad CRC, using default environment' ,然后加載默認初始設置.
  h). U-Boot通過分析環境變量獲得kernel和rootfs存儲位置,以及所需的kernel command line
  i). U-Boot 自動檢測系統RAM和eMMC/Nand Flash容量和參數
  j). U-Boot 設置以太網口MAC地址,并配置好硬件準備加載Linux kernel
  k). U-Boot 加載Linux kernel到RAM,至此系統控制權則轉移到kernel來處理
  l). 系統Kernel初始化Linux,加載rootfs,最后啟動'init'來初始化Linux user space
  3). 啟動方式
  a). 默認方式, 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開發調試階段
  4). 不同啟動方式演示
  這里使用Toradex Apalis i.MX6Q 計算機模塊配合Apalis Eva 開發載板來進行測試,平臺基本的操作上手指南請見這里。
  軟件使用Toradex官方發布的Linux V2.5beta3版本,請從這里下載。
  a). 全部從eMMC啟動
  模塊默認的U-Boot設置即為全部從eMMC啟動,開機上電即可
  b). Kernel和rootfs從SD卡啟動
  ./ 準備SD卡:將SD卡(幾百MB容量以上,這里使用8GB)分為2個分區,第一個分區為FAT32格式,一般幾十MB即可,這里演示操作為1GB;另外一個分區為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 = 扇區 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
  設備 啟動 起點 終點 塊數 Id 系統
  /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卡
  // 復制Linux image 壓縮包里面的kernel和device tree文件到FAT32分區
  ----------------------------------
  $ 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
  ----------------------------------
  // 復制Linux image 壓縮包里面的rootfs文件夾內容到ext3分區
  ----------------------------------
  $ cd .../Apalis_iMX6_LinuxImageV2.5
  $ sudo cp -Ppr rootfs/* /media/simon/fs/
  ----------------------------------
  ./ 將SD卡插入Apalis Eva載板8-bit SD卡插槽, 開機上電進入uboot
  ----------------------------------
  Apalis iMX6 # printenv
  ...
  fdt_file=imx6q-apalis-eval.dtb //確保device tree文件和上面FAT32分區里面的命名一致
  ...
  Apalis iMX6 # run sdboot
  ----------------------------------
  ./ 啟動后就可以進行正常的應用開發測試了.
  c). TFTP/NFS加載kernel/file system啟動
  ./ 默認目標版系統和開發主機已經在同一局域網內并通過網內DHCP服務器自動取得IP地址,如果需要手動搭建DHCP服務器,請參考這里。
  ./ 配置TFTP Server
  // 在Ubuntu 開發主機通過下面命令建立TFTP Server
  ----------------------------------
  $ sudo apt-get install tftpd-hpa
  $ sudo vi /etc/default/tftpd-hpa
  //默認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
  //如已經啟動,重新加載配置,則可運行
  $ sudo service tftpd-hpa force-reload
  ----------------------------------
  // 復制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 開發主機通過下面命令建立NFS Server
  ----------------------------------
  $ sudo apt-get install nfs-kernel-server
  $ sudo vi /etc/exports
  //增加下面NFS配置, ‘10.20.1.111/24’為開發主機IP/Mask配置
  /srv/nfs 10.20.1.111/24(no_root_squash,no_subtree_check,rw,fsid=root)
  $ sudo service nfs-kernel-server restart
  ----------------------------------
  // 復制rootfs文件到NFS Server文件夾
  ----------------------------------
  $ cd .../Apalis_iMX6_LinuxImageV2.5
  $ sudo cp -Ppr rootfs/* /srv/nfs/
  ----------------------------------
  ./ 配置Apalis i.MX6目標系統
  //開機上電進入Uboot,修改如下參數
  ----------------------------------
  # 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 = 目標板IP:NFS Server IP:網關:Mask
  // 啟動NFS boot
  # run nfsboot
  ----------------------------------
  5). 總結
  由上可見,在ARM平臺使用和開發的時候可以靈活利用各種啟動方式,提供更為方便和高效的開發或使用過程。
                                
                                                               
                                
               
本文地址:http://m.qingdxww.cn/thread-171096-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 四虎影视884aa·com | 亚洲aav| 免费岛国小视频在线观看 | 成人欧美视频在线看免费 | 欧美激情综合亚洲五月蜜桃 | 欧美三级视频在线观看 | 亚洲女同在线 | 国产成人三级视频在线观看播放 | 日韩精品一二三区 | 青青青国产手机在线播放 | 精品小视频在线观看 | 激情综合六月 | 久久九九有精品国产56 | 一级毛片免费在线 | 免费大片黄手机在线观看 | 无限免费观看下载在线 | 插菊花网 | 天堂在线www在线资源 | 毛片高清一区二区三区 | 国产高清在线精品一区 | 日本高清免费不卡视频 | 亚州一区二区 | 黄色毛片一级片 | 91福利国产在线观看一区二区 | 五月婷婷之综合激情 | 日本手机在线 | 午夜免费的国产片在线观看 | 在线免费黄 | 中文字幕成人免费视频 | 99爱视频免费高清在线观看 | 午夜成年免费观看视频 | 欧美亚洲香蕉 | 日韩经典在线观看 | 69视频免费 | 一级特黄aaaaaa大片 | 日韩精品视频网站 | 色偷偷www8888 | 国产真实乱人视频在线看 | 国产精品成人免费综合 | 高清精品一区二区三区一区 | 美女视频黄的免费看网站 |