三星公司uboot模式下更改分區(EMMC)大小fdisk命令

來源:互聯網
上載者:User

三星公司uboot模式下更改分區(EMMC)大小fdisk命令

一、分區

三星平台一般把它分為四個區:

(1)、fat分區,作為sd卡用;

(2)、系統磁碟分割,相當為電腦c 盤,用來安裝android系統;

(3)、userdata分區;

(4)、cache分區。

二、分區更改操作過程

1,  更改uboot中代碼/common/cmd_mmc_fdisk.c

在這個檔案中我們可以看到對四個分區大小的定義:

#defineBLOCK_SIZE512#defineBLOCK_END0xFFFFFFFF#define_10MB(10*1024*1024)#define_100MB(100*1024*1024)#define_300MB(300*1024*1024)#define_8_4GB(1023*254*63)#define_1GB(1024*1024*1024)#defineDISK_STARTRAW_AREA_SIZE//mj (16*1024*1024) //same as raw area size#defineSYSTEM_PART_SIZE_1GB //_300MB#defineUSER_DATA_PART_SIZE_1GB //_300MB //_1GB#defineCACHE_PART_SIZE_300MB#defineCHS_MODE0#defineLBA_MODE!(CHS_MODE)
2、重新分區 fdisk -c 0 命令

3、分區格式法

3.1、輸入如下命令 fatformat mmc 0:1


3.2、輸入如下命令fatformat mmc 0:2


3.3、輸入如下命令fatformat mmc 0:3


3.4、輸入如下命令fatformat mmc 0:4


3.5在超級終端中輸入“fastboot”


4、把整個系統重新燒錄

在PC機上運行“USB_fastboot_tool”-->“platform-tools”檔案夾中的檔案
“cmd.exe”(cmd.exe可執行檔是Windows內建的命令列工具,光碟片裡面的是Win7下
的,如果提示版本不相容,請使用你自己系統裡面的cmd.exe工具)
[html]  view plain  copy fastboot.exe flash bootloader u-boot-iTOP-4412.bin fastboot.exe flash kernel zImage fastboot.exe flash ramdisk ramdisk-uboot.img  fastboot.exe flash system system.img  
三、fdisk 命令分析

int do_fdisk(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])   {       if ( argc == 3 || argc ==6 )       {           if ( strcmp(argv[1], "-c") == 0 )               return create_mmc_fdisk(argc, argv);  //格式化分區          else if ( strcmp(argv[1], "-p") == 0 )               return print_mmc_part_info(argc, argv); //列印出分區的資訊       }       else //如果不滿足argc條件,列印出協助資訊       {          printf("Usage:\nfdisk <-p> <device_num>\n");           printf("fdisk <-c> <device_num> [<sys. part size(MB)> <user data part size> <cache part size>]\n");       }       return 0;   } 

2、do_fdisk的實現函數

   我們平時用的fdisk -c 0 格式化inand ,fdisk -p 0 查看分區資訊,在這裡可以看到對這兩條命令的解析: [cpp]  view plain  copy int do_fdisk(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])   {       if ( argc == 3 || argc ==6 )       {           if ( strcmp(argv[1], "-c") == 0 )               return create_mmc_fdisk(argc, argv);  //格式化分區           else if ( strcmp(argv[1], "-p") == 0 )               return print_mmc_part_info(argc, argv); //列印出分區的資訊       }       else //如果不滿足argc條件,列印出協助資訊       {           printf("Usage:\nfdisk <-p> <device_num>\n");           printf("fdisk <-c> <device_num> [<sys. part size(MB)> <user data part size> <cache part size>]\n");       }       return 0;   } 

3、如果為fdisk -c 0進,進入 create_mmc_fdisk,我們再分析這個函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.