aaarrr 69 21 августа, 2009 Опубликовано 21 августа, 2009 · Жалоба До сих пор не понял. Просто BIOS я не использовал. тут size передаётся в "железных" USB-байтах, а buf - указатель на буфер, из которого будет извлечено 100% бит, то есть если это char[10], то оттуда передастся 20 "железных" USB-байт. Тады ой - с нечетным количеством данных получаются грабли :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 21 августа, 2009 Опубликовано 21 августа, 2009 · Жалоба тут size передаётся в "железных" USB-байтахА Вы говорите "октет", как в сетях принято :-) Именно потому, что байты - они всякие бывают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 21 августа, 2009 Опубликовано 21 августа, 2009 · Жалоба А Вы говорите "октет", как в сетях принято :-) Да-да, тоже почему-то это слово вспомнилось :) Но ведь сила привычки, от байтов отучиться трудно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 21 августа, 2009 Опубликовано 21 августа, 2009 (изменено) · Жалоба А Вы говорите "октет", как в сетях принято :-) Именно потому, что байты - они всякие бывают. The popularity of IBM's System/360 architecture starting in the 1960s and the explosion of microcomputers based on 8-bit microprocessors in the 1980s has made eight bits by far the most common size for a byte. The term octet is widely used as a more precise synonym where ambiguity is undesirable (for example, in protocol definitions). Ну да, исхитрились. Хотя в русской литературе везде байтом считается 8 бит без каких-либо оговорок. Даже в доке от TI Byte = An 8-bit value. A byte is the smallest unit of data transferred in a DMA channel. Изменено 21 августа, 2009 пользователем GetSmart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 68 21 августа, 2009 Опубликовано 21 августа, 2009 · Жалоба На этом TMS-е есть адресации "low_byte(addr)" и "high_byte(addr)" для команд load/store. Так что байт там как у всех. А по скорости/накладным они такие же, как и для словной адресации? Или это некое расширение, реализуемое за счет эмуляции (типа, слово считывается целиком, в АЛУ модифицируется нужный байт и потом складываются в память)? Тогда несостыковка получается, т.к. явно указывается, что sizeof(char)=1. То есть если у системы восьмибитный байт, то char тоже обязан быть восьмибитным. Да, насчет sizeof(char) был неправ (давно было, забывать начал :) ). В плюсах тоже так же: sizeof(char), sizeof(signed char) and sizeof(unsigned char) are 1; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 21 августа, 2009 Опубликовано 21 августа, 2009 · Жалоба А по скорости/накладным они такие же, как и для словной адресации? Или это некое расширение, реализуемое за счет эмуляции (типа, слово считывается целиком, в АЛУ модифицируется нужный байт и потом складываются в память)? Да, по скорости и накладным тоже самое, но только в том случае, если заранее известно, какой байт нужен - low или high. К АЛУ это отношения не имеет, так как при обращениях оно управляет сигналами "byte enable (BE[1:0])" шины, или DQM-ами, если это SDRAM. Но адрес-то при этом все равно словесный, а выбор байта осуществляется при помощи указания конкретной команды ассемблера. Т.е. если организовывать полностью произвольный доступ к любому байту - то нужно иметь словесный адрес, бит выбора байта и условное выполнение той или другой команды. Плюс ко всему, если слово памяти может быть аргументом любой арифметики и можно сказать любой операции вообще, то байт из памяти только или load, или store. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 21 августа, 2009 Опубликовано 21 августа, 2009 · Жалоба Т.е. если организовывать полностью произвольный доступ к любому байту - то нужно иметь словесный адрес, бит выбора байта и условное выполнение той или другой команды. Плюс ко всему, если слово памяти может быть аргументом любой арифметики и можно сказать любой операции вообще, то байт из памяти только или load, или store. Очередное дерьмецо от TI... Годное только для обработки звука. Непонятно только зачем там USB. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 21 августа, 2009 Опубликовано 21 августа, 2009 (изменено) · Жалоба В общем очередное дерьмецо от TI... Годное только для обработки звука. Щас SM Вас порвёт На самом деле, раз адресация в проце на 90% только пословная, то TI сделали правильно. Там только DMA имеет байтовый адрес. Асмописатели на TMS наверное очень довольны такой архитектурой, в отличие от сишников. SM как раз один из них. Изменено 21 августа, 2009 пользователем GetSmart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 21 августа, 2009 Опубликовано 21 августа, 2009 · Жалоба Щас SM Вас порвёт Ну от этого Вам будет не легче передать фрейм нечетной длины. :P А TI изделия (без учета приобретений на стороне - BB, Luminary и т.п.) всегда считал и продолжаю считать неадекватными, за редким исключением. Почти каждый их DSP / MK - это "шедевр" :) полученный в результате больной фантазии индусов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 21 августа, 2009 Опубликовано 21 августа, 2009 · Жалоба Ну от этого Вам будет не легче передать фрейм нечетной длины. :P Да легко. DMA-контроллером без участия проца вообще. Откуда угодно, куда угодно, по любым событиям, включая внешние. Это только С-шникам некоторые трудности, да и то, из-за писателей CSL и DSP/BIOS. Без них напрягов нет никаких. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 21 августа, 2009 Опубликовано 21 августа, 2009 · Жалоба Ну от этого Вам будет не легче передать фрейм нечетной длины. :P Проблема не в невозможности, а в неудобстве/некрасивости сишной реализации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andron_ 0 9 сентября, 2009 Опубликовано 9 сентября, 2009 · Жалоба Насколько помню, sizeof возвращает размер в минимально адресуемых единицах на данной платформе. И "байтом" обычно эту минимально адресуемую ячейку памяти и называют, другими словами, на этом TMS'е байт как раз 16 бит. Поэтому sizeof выдает правильный результат. в каком-то из TI'ных мануалов есть фраза что-то вроде "вообще-то байт конечно 8 бит, но если очень хочется, как у нас, то байт будет 16 бит. Именно в этих 16-ти битных байтах и выдает результат sizeof"... я еще над ней посмеялся)))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 9 сентября, 2009 Опубликовано 9 сентября, 2009 · Жалоба Ну а в C99 написано: 3.6 1 byte addressable unit of data storage large enough to hold any member of the basic character set of the execution environment 2 NOTE 1 It is possible to express the address of each individual byte of an object uniquely. 3 NOTE 2 A byte is composed of a contiguous sequence of bits, the number of which is implementationdefined. The least significant bit is called the low-order bit; the most significant bit is called the high-order bit. Так что техасцы в своем праве. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться