Термин: Программирование низкоуровневое

Программирование низкоуровневое

Низкоуровневым программированием обычно называют программирование процессора или контроллера, который непосредственно связан своими периферийными устройствами со специфической внешней аппаратурой (прибором). При этом сама задача программирования тесно связана с уровнем взаимодействия с аппаратурой, с устройством интерфейсов ввода-вывода, временными диаграммами этих интерфейсов и с физической задачей, которая должна решаться данной аппаратурой. Как следствие, низкоуровневый программист должен не только владеть языками, средами и методами программирования, не только владеть основами ЦОС, но также должен иметь определённый технический (инженерный) кругозор, чтобы уметь (или быть расположенным, чтобы) разобраться в физической задаче, стоящей перед аппаратурой.

Языком низкоуровневого программирования традиционно считался язык ассемблера (специфический для каждой архитектуры). В наши дни для низкоуровневых задач широко применяется язык высокого уровня Си, который поддерживается большинством сред разработок современных процессоров (контроллеров).

Важными источниками информации для низкоуровневого программиста являются: User's Мanual, Programming ManualData Sheet на процессор (контроллер), а также Руководство и Низкоуровневое описание на аппаратуру (прибор).

Для низкоуровневого программиста важными вспомогательными возможностями при отладке ПО являются: внутрисхемные отладчики (например, подключаемые через интерфейс JTAG), свободные порты и интерфейсы ввода-вывода процессора (контроллера), индикаторы и органы управления прибора. Навык обращения с осциллографом, безусловно, пригодится такому программисту.

Дискуссионным вопросом (вопросом о терминах) является вопрос: включать ли процесс проектирования на основе CPLD или FPGA (FPGA design) в понятие низкоуровневое программирование? С одной стороны, FPGA design требует языков параллельного программирования для описания параллельных физических процессов (а фактически – описания цифровой электрической схемы), требует большого количества физических привязок проекта FPGA к возможностям FPGA, к её временны́м физическим характеристикам, требует описания средствами языка физических процессов на линиях и интерфейсах при верификации проекта. С другой стороны, языки параллельного программирования активно впитывают, например, наработки на языке Си. Проекты FPGA могут включать в себя процессоры и контроллеры, которые требуют классических  инструментов низкоуровневого программирования.

Важно отметить, что в современных системах низкоуровневое программирование разделяется ещё на целый ряд подуровней, как это описано в статье Уровни программных и аппаратных средств.

 

 

Перейти к другим терминам       Cтатья создана:08.07.2014
О разделе "Терминология"      Последняя редакция:25.08.2019

Пример использования термина

Системы сбора данных, представленные ниже, предоставляют возможность пользовательского низкоуровневого программирования сигнального процессора или контроллера. 

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25
Факс: +7 (495) 785-95-14

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск