Разница между программированием на встроенном устройстве с ОС и без ОС

Недавно я запрограммировал клиент-серверную программу на C, где сервер работал на встроенной плате с ОС Linux, а клиент работал на машине с Linux. Все, что мне нужно было сделать, это указать IP-адрес платы клиенту, работающему на машине, чтобы установить соединение.

Но теперь я делаю то же самое, но сервер работает на встроенной плате, на которой нет ОС. Я все еще устанавливаю соединение tcp/ip между сервером и клиентом, но использую стандартную библиотеку uIP (microIP).

Мне сказали, что код, который будет работать на встроенной плате (сервере), будет очень сложно написать, поскольку он должен быть специфичным для платформы, то есть мне лучше получить код, который уже предназначен для платформы. Однако мой вопрос: почему намного сложнее запрограммировать файл C на плате для установления соединения, когда на плате нет ОС, когда это было относительно «легко» сделать на плате с ОС. Все, что я сделал для последнего, это написал код на машине с Linux, затем перенес код на плату ОС с помощью scp, скомпилировал его и выполнил. Почему нельзя сделать то же самое для платы без ОС? Я знаю, что не смогу скомпилировать на плате, но могу ли я скомпилировать сервер на машине и загрузить его на плату, не беспокоясь ни о чем другом? Почему это обстоятельство намного сложнее, чем если бы я работал с платой ОС?


person Adam    schedule 29.04.2014    source источник


Ответы (1)


Библиотека uIP, скорее всего, реализует только стек TCP. Ему все еще нужен способ общения с оборудованием. Для этого и существует ОС. Настройка DMA, управление буферами, обслуживание прерываний (и взаимодействие основного кода с ISR).

Без ОС вам пришлось бы реализовывать все вручную.

person user58697    schedule 29.04.2014