Это зависит от того, как вы определяете «компьютер» ..
На меньшем конце шкалы, которую вы могли бы назвать традиционными микроконтроллерами, вы не получаете управление памятью и редко видите больше ОЗУ, чем крошечный объем, встроенный в чип. Я признаю, что очень мало знаю об архитектуре более функциональных микроконтроллеров, доступных в настоящее время, но наличие (или их отсутствие) этих функций, вероятно, является ключом к различию между устройством, наиболее подходящим для встроенных приложений или для вычислений общего назначения. ,
Под «управлением памятью» я подразумеваю возможность запускать программы в виртуальных адресных пространствах и отображать их в физическом ОЗУ, доступном в системе, функцию, выполняемую так называемым модулем управления памятью (MMU).
Без MMU, если вы попытаетесь запустить несколько процессов, все они будут вынуждены совместно использовать одно адресное пространство, и это означает, что если все вовлеченные процессы не придерживаются вашей схемы выделения памяти, один процесс может очень легко привести к аварийному завершению другого. Так что, если вы полностью контролируете разработку всех процессов, как и в случае встроенной системы, это не так важно. Однако, если вы пытаетесь поддерживать вычисления общего назначения, вы не можете гарантировать, что весь код, который будет выполняться, будет соответствовать схеме распределения памяти, и система будет довольно хрупкой.
Нехватка оперативной памяти также не является большой проблемой для встраиваемых систем, (1) потому что обычно много флэш-памяти, и (2) отсутствие компьютера общего назначения означает, что вам не нужно беспокоиться о запуске непредвиденных программ на воля пользователя. Вы заранее знаете общую сумму всего программного обеспечения, которое будет работать в системе, и вам потребуется только ОЗУ для переменных для этого программного обеспечения. Однако, когда вы попытаетесь превратить вашу систему в компьютер общего назначения, пользователи будут ожидать, что смогут запускать то, что им подходит, а для этого потребуется оперативная память.
Теперь совершенно нормально выполнять вычисления общего назначения на устройствах без MMU и не так много памяти. Оригинальный 128 КБ ОЗУ, основанный на 8088 (16-битном) IBM PC справился с этим, если вам нужно было запускать только одну программу за раз.
Так что, если вы хотите определить «компьютер» как что-то вроде технологии 1982 года, ответ определенно да. Или, если у вас есть закрытая система, в которой вы можете решить проблему отсутствия MMU и / или большого количества оперативной памяти (например, сотовых телефонов), тщательно контролируя структуру программного обеспечения, также да. Или, если ваш микроконтроллер имеет встроенный MMU и объем оперативной памяти (или может вместить их внешне), вы сможете создать систему, которая больше напоминает современные компьютеры.