Поскольку я решил заняться микропроцессором, я решил использовать Atmel AVR из-за огромных ресурсов. И у Arduino, похоже, тоже много, не говоря уже о том, что их стартовые наборы кажутся более "на моем уровне"
Проблема в том, что я хочу сначала изучить его на ассемблере, а затем перейти на C / C ++ или использовать Arduino, но я слышал, что Arduino не будет брать сборку AVR? Это правда? их как-то обойти?
Благодарность
редактировать: я бы пошел с ATMEL STK500, но .. для первого таймера это выглядит очень сложно? Есть ли причина, по которой я не могу просто взять 8-битный AVR, положить его на макет и экспериментировать таким образом? (Думаю, мне нужно было бы выяснить, как их соединить ...)
edit2: это то, что я думал
http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=193
Ответы:
Платы Arduino можно программировать в сборке. Все, что вам нужно, это кабель ICSP (In Circuit Serial Programmer) и набор инструментов AVR (свободный от ATMEL) для записи на плату. Затем вы получаете преимущество отладки на борту.
Как вы предложили, вы можете просто положить чип ATMEL на макетную плату и отправиться в город.
Набор, на который вы ссылаетесь, выглядит как отличная отправная точка. Вы можете снять чип прямо с доски и приклеить его на свой макет (при условии, что он правильно регулирует мощность и учитывает часы).
источник
Arduino IDE может быть «фиксированным» для размещения кода сборки. Вот вики: http://www.cs.nmsu.edu/~jcook/arduino/index.php?n=Notes.AssemblyMods
источник
Насколько я знаю, в загрузчике Arduino не должно быть ничего конкретного, что могло бы помешать вам использовать сборку вместо C. В среде IDE Arduino могут возникнуть трудности с загрузкой собственных файлов .hex, но похоже, что загрузчик Arduino совместим с STK500, поэтому Вы должны быть в состоянии использовать его с avrdude.
источник
Платы Arduino (в любом случае Uno и Duemilanove) имеют стандартный разъем программирования AVR, который поддерживается программистами и отладчиками Atmel через AVR Studio. Studio поддерживает ассемблер и C. Подходящим программистом является AVRISP MkII, а AVR Dragon предлагает как программирование, так и отладку. Я бы получил последнее, оно дороже на 50 долларов, но средства отладки бесценны. Вы также можете использовать эти инструменты со стандартным чипом AVR (не Arduino), подключенным к макету или печатной плате.
источник
Arduino состоит из двух частей: аппаратного обеспечения и IDE. IDE в основном (если не полностью) ограничивает вас C и C ++ (с некоторыми синтаксическими особенностями, которые разработчики добавили, чтобы сделать его немного более похожим на Processing / Java). Существует вероятность того, что среда IDE распознает файлы .s или .S в том же каталоге, что и стандартный эскиз (.pde), но я бы на этом не повесил шляпу.
В оборудовании нет ничего особенного. Это хорошая, дружелюбная доска с множеством изящных функций, которые оценят неофиты µC, но если вы хотите просто запрограммировать AVR через заголовок ISP, вы тоже можете это сделать. Вам понадобится что-то вроде Atmel AVRISP mkII или любого другого программиста, который работает с разъемом строки 2x3 на плате Arduino. Ищите те, которые совместимы с программой avrdude, которую вы будете использовать для загрузки своих приложений. Держитесь подальше от USBtinyISP Адафрута; Мне повезло с этим, и в итоге я купил Atmel, который я связал, менее чем за 40 долларов у Mouser.
источник
Совсем не сложно.
http://www.dwelch.com/arduino/
Вам нужно посмотреть на ser.c на моей странице, чтобы выбрать какую карту. некоторые используют разные скорости последовательного порта по умолчанию и разные схемы сброса, чтобы войти в режим программирования. Если вы посмотрите на прошивку arduino, то обнаружите, что вряд ли какая-либо из команд программирования avr действительно поддерживается. Во всяком случае, они действительно не нужны.
источник
Aruduino может быть абсолютно запрограммирован в сборке. И вам даже не нужен кабель ICSP, чтобы сделать это!
Хорошо, честно говоря, это не то же самое, что программирование в чистом виде с нуля.
Но вы можете встроить сборку в C. Это означает, что вы можете загрузить код на Arduino, который имеет встроенную сборку, которая затем будет выполняться. Рассмотрим библиотеку TVOut , которая позволяет Arduino выводить NTSC / PAL на телевизор.
Эта библиотека очень чувствительна ко времени (поскольку она выводится на телевизор, каждая строка развертки должна быть записана в нужное время). Поэтому для ускорения процесса используется встроенная сборка. Глядя на строку 89 этого файла из библиотеки, автор использует некоторые из написанных им макросов сборки .
Сейчас. Я подозреваю, что он не написал их, используя Arduino IDE по умолчанию. Но эта библиотека вызывает его встроенный ассемблерный код, который любой может импортировать, компилировать и выполнять через свой интерфейс.
Удачи!
источник
Arduino может быть запрограммирован на сборку с использованием GCC-AVR Inline Assembler. Проверьте эту ссылку на GCC-AVR Inline Assembler Cookbook
http://web.stanford.edu/class/ee281/projects/aut2002/yingzong-mouse/media/GCCAVRInlAsmCB.pdf
источник