Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

int read_cd(__u32 lba)

{

    int i = 0, out_f, ret;

    __u8 cmd_buff[12];

    __u8 buff[SECT_SIZE];

    __u16 data_len = SECT_SIZE, a;

 

    memset((void *)buff, 0, sizeof(buff));

    memset((void *)cmd_buff, 0, 12);

 

/* Формируем командный пакет (рис. 8) */

    cmd_buff[0] = 0xBE; // код команды READ CD

    cmd_buff[1] = 0; // считываем сектор любого типа (Any Type)

    cmd_buff[9] = 0xF8; // считываем всю информацию,

                      // находящуюся в секторе

    cmd_buff[8] = 1; // читаем один сектор

 

/* Заполняем поле Starting Logical Block Address, при этом меняем порядок расположения байт */

    lba = __swab32(lba);

    memcpy((cmd_buff + 2), (void *)&lba, 4);

 

/* Посылаем устройству командный пакет */

    if(send_packet_data_command(data_len, cmd_buff) < 0) {

           request_sense(); return -1;

}

 

/* Считываем результат и сохраняем его в файле */

    for(i = 0; i < SECT_SIZE; i += 2) {

           IN_P_W(a, 0x170);

           memcpy((void *)(buff + i), (void *)&a, 2);

    }

 

    out_f = open("sector", O_CREAT|O_RDWR, 0600);

    write(out_f, buff, sizeof(buff));

    return 0;

}

Если при обращении к устройству произойдет ошибка, то никаких данных мы, соответственно, не получим. Однако у нас есть возможность узнать причину ошибки. Для этого достаточно послать устройству пакетную команду REQUEST SENSE. В ответ устройство выдаст информационный блок sense data (см. рис. 10).

Request Sense Standard Data

Bit

Byte

7

6

5

4

3

2

1

0

0

Valid

Error Code (70h or 71h)

1

Segment Number (Reserved)

2

Reserved

ILI

Reserved

Sense Key

3

Information

6

7

Additional Sense Length (n - 7)

8

Command Specific Information

11

 

12

Additional Sense Code

13

Additional Sense Code Qualifier (Optional)

14

Field Replaceable Unit Code (Optional)

......


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160]
[161]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100