![]() |
|
Tài trợ cho PIC Vietnam |
Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 4 túi
Tham gia ngày: Mar 2009
Bài gửi: 64
: |
Sau khi đọc được MBR, em thấy trong 512 byte của nó có dòng "Invalid partition table , error loading operating system missing operating system" Dòng này bắt đầu từ địa chỉ 139 (hay 0x8B)
Đọc MBR chính là đọc sector 0 có phải không ạ ? Còn boot sector là của từng thằng partition ? Ý em muốn hỏi về 3 khái niệm MBR, boot sector và sector 0 của thằng SD card, hàm đọc sector em gán địa chỉ là 0 thì đọc đuợc cái gì trong 3 thằng đó Do cái em đọc được nó không có những thông tin dưới đây, nên nó ko nhảy vào được cái if này, mặc dù đã format thẻ là FAT16 Code:
#ifdef USE_16BIT if (ReadByte( dsk->buffer, BSI_FSTYPE ) == 'F' && \ ReadByte( dsk->buffer, BSI_FSTYPE + 1 ) == 'A' && \ ReadByte( dsk->buffer, BSI_FSTYPE + 2 ) == 'T' && \ ReadByte( dsk->buffer, BSI_FSTYPE + 3 ) == '1' && \ ReadByte( dsk->buffer, BSI_BOOTSIG) == 0x29) #else if (BSec->FAT.FAT_16.BootSec_FSType[0] == 'F' && \ BSec->FAT.FAT_16.BootSec_FSType[1] == 'A' && \ BSec->FAT.FAT_16.BootSec_FSType[2] == 'T' && \ BSec->FAT.FAT_16.BootSec_FSType[3] == '1' && \ BSec->FAT.FAT_16.BootSec_BootSig == 0x29) #endif { dsk->firsts = 0; dsk->type = FAT16; } |
![]() |
![]() |
![]() |
#2 | |
...Damned...
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
: |
Trích:
Nếu tìm thấy phân vùng active, nó sẽ load sector 0 của phân vùng đó, sector này gọi là Boot Sector hoặc Boot Record. Đoạn code trên BR sẽ làm nhiệm vụ load hệ điều hành trên phân vùng đó. Tùy thuộc vào chương trình dùng để format, thẻ của bạn có thể có hoặc ko có MBR, nhưng luôn luôn có ít nhất 1 BR. Nếu có MBR thì nó nằm ở sector 0 của thẻ, bạn phải tìm BR của các phân vùng primary dựa vào struct bắt đầu ở offset 446 Nếu ko có MBR thì sector 0 là BR của phân vùng duy nhất trên thẻ. Mình nghĩ thẻ của bạn có MBR, bạn chỉ mới đọc sector 0 là MBR, còn phải lọc và tìm BR nữa. |
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|