Ви сказали, що "невеликий мікроконтролер і не мав взаємозв'язку, ані комп'ютера, ані налагоджувача, компілятора чи асемблера". Ну ви можете обійтись без комп’ютера, налагоджувача, компілятора чи асемблера, але для того, щоб завантажити програму, ви повинні мати якийсь інтерфейс для підключення до мікроконтролера.
Перш за все, забудьте про будь-які мови високого рівня, такі як C. Тоді найпростіший спосіб - написати програму мовою складання, але не використовуйте асемблер для перекладу її на машинний код. Замість цього шукайте кожну інструкцію по збірці в посібнику з програмування, знайдіть їх еквівалентне шістнадцяткове кодування та запишіть це.
Вам доведеться виділити власні змінні, щоб ви могли заповнити відповідні адреси в частині операнду інструкцій. Також забудьте про використання стека і купи, занадто багато роботи. Після закінчення роботи у вас з’явиться машинна програма, яку можна завантажувати безпосередньо у флеш-пам’ять мікроконтролера - також не потрібен жоден лінкер.
Через відсутність зовнішньої адреси та шини даних майже на всіх мікроконтролерах (оскільки вони займуть занадто багато контактів, необхідних портам вводу / виводу та периферійних пристроїв), практично всі мікроконтролери програмуються через спеціальний інтерфейс, як це:
Зазвичай "програміст" зліва підключається до ПК, який завантажує машинний файл, сформований компілятором / лінкером.
Однак якщо у програміста є клавіатура, як наведена нижче:
тоді ви можете ввести шістнадцяткові коди програми, створеної вручну, прямо в програміст, і запрограмувати пристрій, не потребуючи компілятора, лінкера чи ПК, про що ви питали. (Клавіатура також використовується для редагування шістнадцяткових файлів та генерації контрольних сум.)
Зазначимо, що дуже мало програмістів мають такі клавіатури. Цей не підходить для любителів, оскільки, ймовірно, коштує пару тисяч доларів.
Цей конкретний програміст програмує деталі перед тим, як їх поставити на дошку; Інтерфейси та розетки доступні для декількох PIC, а також Atmel AVR серед інших.