2

В школе я написал много программ для 8051-совместимого процессора. Но я никогда не знал, как работают наши "отладочные" наборы. Я имею в виду, что мы тестируем наши программы в специальных наборах, которые на самом деле позволяют очень просто загрузить программу в CPU через последовательный порт ПК. Но я думаю, вы знаете это намного лучше, чем я.

Но как это работает? Я имею в виду, я знаю, что есть чип, который регулирует уровень сигнала от последовательного порта ПК к логике TTL, а затем подключается к последовательной линии 8051. Но это все, что я знаю. На самом деле, даже мой учитель не знает, как это работает, поскольку школа все это купила.

Итак, я подозреваю, что в 8051 уже запущена какая-то программа, которая обрабатывает связь и сохраняет вашу программу в памяти, я прав? Но как сделать инструкции процесса 8051 не из ПЗУ? Потому что, если я прав, вы не можете записывать в память ПЗУ никакие инструкции, а 8051 может только читать инструкции из ПЗУ?

2 ответа2

1

Современный MCU с гарвардской архитектурой использует встроенную флэш-память для хранения встроенного программного обеспечения, поэтому, несмотря на то, что он называется ROM, он не предназначен только для чтения. В соответствии со статьей 8051 в Википедии, современный микроконтроллер на базе 8051 часто включает в себя:

встроенные таймеры сброса с обнаружением отключения, встроенные в кристалл генераторы, самопрограммируемая память программ Flash ROM, код загрузчика в ROM, энергонезависимое хранилище данных EEPROM, хост-интерфейсы I²C, SPI и USB, шина CAN или LIN, ШИМ-генераторы, аналоговые компараторы, аналого-цифровые и цифро-аналоговые преобразователи, RTC, дополнительные счетчики и таймеры, встроенные средства отладки, больше источников прерываний и дополнительные режимы энергосбережения.

8051 также имеет встроенный UART, обеспечивающий последовательный порт. Прошло много времени с тех пор, как я работал со встроенными устройствами, но вот что я помню - я работал с микропроцессорами PIC, так что это может быть не совсем так, как ваш 8051:

  • При загрузке MCU загружает код загрузчика из определенного места в ПЗУ.
  • Многие распространенные загрузчики будут ждать несколько секунд, проверяя последовательный порт на наличие определенного сигнала.
    • Если вы подключили отладочную плату к последовательному порту вашего компьютера, вы можете отправить этот сигнал (с помощью терминальной программы, такой как Hyperterm или Minicom, или с помощью специальной программы загрузки встроенного программного обеспечения).
    • Получив этот сигнал, код загрузчика MCU переводит плату в режим программирования, и вы можете отправить новую прошивку.
  • Если MCU не получает сигнал, он продолжает нормально загружаться в любую прошивку, уже загруженную в память программы.

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

Для получения более подробной информации, вы должны обратиться к таблице данных MCU (обычно доступны на веб-сайте производителя). Сайт ChipHacker , посвященный Stack Exchange, посвящен встроенной электронике и является хорошим местом для дальнейших вопросов.

0

Да, ROM на самом деле EEPROM или флэш-память. Так что это чтение-запись. Кроме того, ваша демонстрационная плата может иметь внешние банки памяти для хранения программ и загрузчик для запуска хранимых программ и управления связью с ПК, что позволяет загружать новые программы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .