国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當前位置:IT培訓 > 華清遠見教育科技集團 > 嵌入式學習 > 講師博文 > 基于ARM開發(fā)板的SD卡掛載及后臺程序自啟動
基于ARM開發(fā)板的SD卡掛載及后臺程序自啟動
時間:2018-03-14作者:華清遠見

1.SD卡驅(qū)動的移植

【實驗步驟】

①修改設(shè)備樹文件

$ vim arch/arm/boot/dts/exynos4412-fs4412.dts

修改
sdhci@12530000 {
       bus-width = <4>;
       pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
       pinctrl-names = "default";
       vmmc-supply = <&mmc_reg>;
       status = "okay";
       };

為:
sdhci@12530000 {
       bus-width = <4>;
       pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
       cd-gpios = <&gpx0 7 0>;
       cd-inverted =  <0>;
       pinctrl-names = "default";
       /*vmmc-supply = <&mmc_reg>;*/
       status = "okay";
       };

②配置內(nèi)核
$ make menuconfig
Device Drivers  --->
       <*> MMC/SD/SDIO card support  --->
              <*>   Secure Digital Host Controller Interface support
              <*>   SDHCI support on Samsung S3C SoC
File systems  --->
       DOS/FAT/NT Filesystems  --->
              <*> MSDOS fs support
              <*> VFAT (Windows-95) fs support
              (437) Default codepage for FAT
              (iso8859-1) Default iocharset for FAT
       -*- Native language support  --->
              <*>   Codepage 437 (United States, Canada)
              <*>   Simplified Chinese charset (CP936, GB2312)
              <*>   ASCII (United States)
              <*>   NLS ISO 8859-1  (Latin 1; Western European Languages)
                     <*>   NLS UTF-8

③編譯內(nèi)核和設(shè)備樹

$ make uImage

$ make dtbs

④測試:

拷貝內(nèi)核和設(shè)備樹文件到/tftpboot目錄下

$ cp arch/arm/boot/uImage /tftpboot

$ cp arch/arm/boot/dts/exynos4412-fs4412.dtb /tftpboot/

啟動開發(fā)板會有如下內(nèi)容顯示:

[ 1.620000] mmc0: new high speed SDHC card at address cd6d

[ 1.625000] mmcblk1: mmc0:cd6d SE08G 7.28 GiB

[ 1.630000] mmcblk1: p1(mmcblk1 為設(shè)備名 p1 為分區(qū)名)

掛載,注意不要掛在EMMC的分區(qū)

$ mount /dev/mmcblk1p1 /mnt

查看/mnt/目錄即可看到sd卡中內(nèi)容

2.拷貝我們的應(yīng)用程序及所需庫的到SD卡

基于ARM開發(fā)板的SD卡掛載及后臺程序自啟動

3.在/source/rootfs下添加start.sh腳本文件,首先配置我們QT的移植的相關(guān)參數(shù)配置,再mount /dev/mmcblk1p1 /mnt,然后加載我們QT程序所需要的LCD驅(qū)動和gt818的觸摸屏的驅(qū)動,然后執(zhí)行我們所需要執(zhí)行的程序

基于ARM開發(fā)板的SD卡掛載及后臺程序自啟動

基于ARM開發(fā)板的SD卡掛載及后臺程序自啟動

4.在/source/rootfs/etc/profile下添加source start.sh讓我們的start.sh生效

基于ARM開發(fā)板的SD卡掛載及后臺程序自啟動

3. ramdisk.img的制作

①制作一個大小為8M的鏡像文件(du -sh 查看文件系統(tǒng)的大小)

$ cd ~

$ dd if=/dev/zero of=ramdisk bs=1k count=8192 (ramdsik為8M)

②格式化這個鏡像文件為ext2

$ mkfs.ext2 -F ramdisk

③在mount下面創(chuàng)建initrd目錄作為掛載點

$ sudo mkdir /mnt/initrd

④將這個磁盤鏡像文件掛載到/mnt/initrd下

注意這里的ramdisk不能存放在rootfs目錄中

$ sudo mount -t ext2 ramdisk /mnt/initrd

⑤將測試好的文件系統(tǒng)里的內(nèi)容全部拷貝到 /mnt/initrd目錄下面

$ sudo cp /source/rootfs/* /mnt/initrd –a

cp /* /mnt/initrd –a

⑥卸載/mnt/initrd

$ sudo umount /mnt/initrd

⑦壓縮ramdisk為ramdisk.gz

$ gzip --best -c ramdisk > ramdisk.gz

⑧格式化為uboot識別的格式并拷貝到/tftpboot下

$ mkimage -n "ramdisk" -A arm -O linux -T ramdisk -C gzip -d ramdisk.gz ramdisk.img

$ cp ramdisk.img /tftpboot

⑨配置內(nèi)核支持RAMDISK

制作完 initrd.img.gz后,需要配置內(nèi)核支持RAMDISK作為啟動文件系統(tǒng)
make menuconfig
File systems  --->
       <*> Second extended fs support
Device Drivers
       SCSI device support  --->
              <*> SCSI disk support
       Block devices  --->
              <*>RAM  block  device  support  
              (16)Default number of RAM disks 
              (8192) Default RAM disk size (kbytes)   (修改為8M)
General setup  --->
              [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

重新編譯內(nèi)核,復(fù)制到/tftpboot

⑩在U-BOOT命令行重新設(shè)置啟動參數(shù):

# setenv bootcmd tftp 41000000 uImage\;tftp 42000000 exynos4412-fs4412.dtb\;tftp 43000000 ramdisk.img\;bootm 41000000 43000000 42000000

# saveenv

重新啟動開發(fā)板查看能否正常啟動


發(fā)表評論

全國咨詢電話:400-611-6270,雙休日及節(jié)假日請致電值班手機:15010390966

在線咨詢: 曹老師QQ(3337544669), 徐老師QQ(1462495461), 劉老師 QQ(3108687497)

企業(yè)培訓洽談專線:010-82600901,院校合作洽談專線:010-82600350,在線咨詢:QQ(248856300)

Copyright 2004-2018 華清遠見教育科技集團 版權(quán)所有 ,京ICP備16055225號,京公海網(wǎng)安備11010802025203號

有位老師想和您聊一聊