Этот забавный Texas Instruments

Я давно хотел написать статью о том, что меня волнует в деятельности этой знаменитой фирмы, но все мои возмущения были ниже уровня срыва лавины эмоций. А пару дней назад в чашу моего терпения упала последняя капля и сейчас мы будем вместе негодовать и посылать лучи поноса в направлении

Самое первое, с чем я столкнулся и опрокинуло мой мозг, это было то, как инженеры TI воспринимают адресное пространство.

Вообще адресное пространство во многих источниках рисуют по разному: кто-то исходит из того, начальные адреса должны быть вверху, а конечные внизу:

IMG_0998

кто-то предпочитает видеть мир перевёрнутым:

IMG_0997

Мне больше нравится первый вариант. Критерий правильности изображения адресного пространства был заложен в моё сознание на этапе, когда я еще ничего не понимал и только-только начинал знакомится с миром вычислительной техники. Это были далёкие 80-е годы, и это был КР580ВМ80.

Согласно моим представлениям «стек растёт снизу вверх» — то есть от старших адресов к младшим. Это было так же незыблемо, как «Отче наш». Однако, в мире много людей с противоположным мышлением.

Ну ладно. Пусть!

Пусть адресное пространство рисуется снизу вверх. Пусть!

Пусть верх станет низом, а низ верхом. Пусть!

Хорошо, будем говорить — «стек растёт от старших адресов к младшим«, а не более краткое «стек растёт снизу вверх«. Важно понимать суть того, что происходит.

Конечно, все эти разговоры о том, как правильно рисовать адресное пространство напоминают избитый сюжет из детской книжки про Гулливера — о том, с какой стороны следует есть яйцо — с тупого или с острого конца.

Поэтому на то, как правильно отображать адресное пространство, можно было бы «забить и забыть», если бы не было продолжения.

Вопрос постепенно переходит в плоскость как правило писать программы. Как правильно писать машинный код. Писать код всё-таки как-то удобнее сверху вниз, а не наоборот. Все ассемблеры так отображают коды! Код пишется от младших адресов к старшим, но не наоборот! Я думаю, все так делают.

Все. Ну, разве что кроме инженеров TI. Последним удобнее писать код согласно их перевёрнутому представлению:

IMG_0999

Я не берусь судить, можно ли это уже считать перебором, или можно ещё немого продвинуться в сторону альтернативного видения мира. Я только про себя могу сказать, мне воспринимать и изображать адресное пространство так — неудобно.

Собственно, есть ещё одна «тоска» по формату ассемблера. Я осваивал компьютерную технику на основе Интеловских решений. Поэтому они для меня являются неким эталоном.

Например, команда передачи значения из регистра R5 в регистр R3 в моем представлении выглядит более естественно в таком формате:

mov R3, R5

, чем в таком:

mov R5, R3

Почему? Да потому, что есть продолжение этого формата на другие команды.

Как более естественно будет выглядеть команда вычитания из регистра R3 значения регистра R5? Обычно результат сохраняется в том регистре, из которого производили вычитание.

Ну, выражаясь Си-шным кодом:

R3 = R3 - R5;

Соответственно, ассемблерный текст хотелось бы видеть таким же:

sub R3, R5

, но не таким:

sub R5, R3

Если ты всю жизнь писал в интелловском формате, то пойди сходу сообрази что в этой команде из чего вычитается и куда записывается результат.

(Не помню точно как эти форматы называются. Вроде бы «интелловский» и «моторолловский».)

Всё это мое личное понятие — каким должен быть правильный мир. Работая в последнее время с MSP430, я, конечно, уже привык писать задом-наперёд ассемблерные команды. Но всё рано, иной раз так кольнёт перевёрнутый формат, что аж прямо ой!

Следующий прикол от инженеров TI, который меня тоже задел — это выпендрёжное (Не, а какое ещё!) наименование сигналов интерфейса SPI. Весь мир называет сигналы MOSI и MISO, и только Texas Instruments называет их SIMO и SOMI.

Ну, что тут можно сказать… оригинально! Молодцы.

Есть у TI и другие оригинальные вещи, которые я сейчас не могу резко вспомнить. Может быть потом, когда вспомню, допишу.

И вот она — последняя капля. Держитесь за табуретки. Но для начала задам вам два вопроса.

Вопрос первый — в каких единицах измеряется сдвиг фаз двух электрических сигналов?

Ну, вроде бы всё просто, сдвиг фаз — это угловая величина. Соответственно, сдвиг фаз выражаться должен в долях угловых величин — в радианах или градусах. Ну, иногда, можно встретить сдвиг фаз, выраженный в единицах времени, например, в микросекундах. Тоже вполне нормально, особенно, если смотрим на экран осциллографа.

Вопрос второй — насколько серьезным является документация на ту или иную выпускаемую микросхему? На сколько серьезным является PDF-документация на… , например, на микросхему АЦП ADS1292?

Я считаю, что PDF-ки на коммерческую продукцию должны быть написаны — как минимум — технически грамотно. PDF-ка — это лицо фирмы, это уровень знаний…

IMG_1000

Так, в чём-в чём измеряют сдвиг фаз инженеры Texas Instruments?

IMG_1001

Всё, что я написал, отнюдь не означает, что Texas Instruments плохая фирма, и делает непотребные вещи. Нет! Фирма не плохая. Просто оригинальная. Другое дело, что её оригинальность иногда переходит границы и вызывает недоумения.

А кто из нас безгрешен!

2 responses to “Этот забавный Texas Instruments

  1. Про pdfки не соглашусь. По моему мнению у техассцев в целом хорошо развита система документации, сугубо моё личное мнение.

    • Не-не! Документация на уровне!

      Просто встретилась довольно-таки весёлая описка. Ну какая-нибудь девочка-практикантка набивала текст, а инженер — её руководитель, не заметил ляп. Бывает.

      К стати там же — на рисунке 19 почему-то везде указаны биты MUX1хх. И даже там, где должны быть MUX2хх. Не-е, конечно я догадаюсь! Но, ребята, ну что уж так-то наплевательски! И у меня такое чувство, что это не последний ляп в этой документашке.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s