О главе

«Си для встраиваемых систем»

Это онлайн версия книги «Си для встраиваемых систем». В печатном формате её можно приобрести у нас в магазине, а в виде файла epub/mobi/pdf на площадке LeanPub.

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

Существуют разные стандарты, определяющие допустимые уровни напряжений логических сигналов. В зависимости от технологии исполнения (КМОП, ТТЛ) эти уровни могут быть различными. STM32 питается от напряжения 3,3 В (ядро ARM питается от 1,8 В), т.е. «высокий уровень» для нашего МК — 3,3 В. «Низкий уровень», соответственно, это 0 В.

В стандартах в качестве логических уровней приведены не одиночные значения напряжений, а диапазоны значений. Между низким и высоким уровнями вводится буферная зона. Она служит для избегания «дребезга состояний», который может возникнуть, если значение сигнала будет колебаться около граничного значения. Ниже приведены некоторые стандарты напряжений.

Квант информации называется битом (англ. bit), а группа из 8 таких битов — байтом (англ. byte). Один байт может хранить значение в пределах от 0 до 255 (28-1). Элементарная ячейка информации называется словом (англ. word), и ее размер зависит от разрядности шины. В приставке NES (в постсоветских странах известна как «Денди») размер слова — 8 бит. В приставке SEGA MEGA Drive 16-bit, как несложно догадаться, слово равняется 16 битам. До недавнего времени в компьютерной технике доминировали 32-разрядные процессоры x86 (название идет от старых процессоров компании Intel), однако сейчас с возросшими потребностями приобретают всё большую популярность 64-битные процессоры amd64 (компания AMD первая представила 64-битный процессор).

По определению один байт это группа бит, обычно восемь, но не обязательно. В некоторой документации можно встретить понятия октета (англ. octet), которое согласно определению включает восемь бит. Во Франции понятием байт и вовсе не оперируют, так как оно созвучно со словом «петух», что имеет определённые конотации.

От разрядности напрямую зависит адресное пространство. Чем больше разрядность, тем больше адресов. Возможно, вы сталкивались с проблемой, что Windows XP (либо другая) не видела больше 4 Гб оперативной памяти? Всё дело в том, что операционная система была 32-разрядная (и работала на 32-разрядном процессоре), а значит, адресовать больше 4 Гб она просто не могла. Вооружитесь калькулятором, рассчитайте количество байт и убедитесь в сделанном выше утверждении, ведь данное число нам еще пригодится.

Cortex-M являются 32-разрядными, т.е. способны адресовать 232-1 байт.


Изменено: