Arduino с сборкой?

12

Поскольку я решил заняться микропроцессором, я решил использовать 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 Uo и ищу способ развиваться и на ассемблере
sll

Ответы:

5

Платы Arduino можно программировать в сборке. Все, что вам нужно, это кабель ICSP (In Circuit Serial Programmer) и набор инструментов AVR (свободный от ATMEL) для записи на плату. Затем вы получаете преимущество отладки на борту.

Как вы предложили, вы можете просто положить чип ATMEL на макетную плату и отправиться в город.

Набор, на который вы ссылаетесь, выглядит как отличная отправная точка. Вы можете снять чип прямо с доски и приклеить его на свой макет (при условии, что он правильно регулирует мощность и учитывает часы).

RQDQ
источник
Я бы очень хотел придерживаться Не помещать это на свой макет прямо сейчас, лол, я не так хорош в схемах.
@ Саурон - ха - в любом случае это хорошо. Что бы тебя не зацепило! Хорошо то, что отдельные фишки довольно дешевые (пару баксов или около того).
RQDQ
2

Насколько я знаю, в загрузчике Arduino не должно быть ничего конкретного, что могло бы помешать вам использовать сборку вместо C. В среде IDE Arduino могут возникнуть трудности с загрузкой собственных файлов .hex, но похоже, что загрузчик Arduino совместим с STK500, поэтому Вы должны быть в состоянии использовать его с avrdude.

JPC
источник
Да, на самом деле сама среда Arduino использует avrdude для выполнения загрузки.
Крис Страттон
1

Платы Arduino (в любом случае Uno и Duemilanove) имеют стандартный разъем программирования AVR, который поддерживается программистами и отладчиками Atmel через AVR Studio. Studio поддерживает ассемблер и C. Подходящим программистом является AVRISP MkII, а AVR Dragon предлагает как программирование, так и отладку. Я бы получил последнее, оно дороже на 50 долларов, но средства отладки бесценны. Вы также можете использовать эти инструменты со стандартным чипом AVR (не Arduino), подключенным к макету или печатной плате.

Леон Хеллер
источник
1

Arduino состоит из двух частей: аппаратного обеспечения и IDE. IDE в основном (если не полностью) ограничивает вас C и C ++ (с некоторыми синтаксическими особенностями, которые разработчики добавили, чтобы сделать его немного более похожим на Processing / Java). Существует вероятность того, что среда IDE распознает файлы .s или .S в том же каталоге, что и стандартный эскиз (.pde), но я бы на этом не повесил шляпу.

В оборудовании нет ничего особенного. Это хорошая, дружелюбная доска с множеством изящных функций, которые оценят неофиты µC, но если вы хотите просто запрограммировать AVR через заголовок ISP, вы тоже можете это сделать. Вам понадобится что-то вроде Atmel AVRISP mkII или любого другого программиста, который работает с разъемом строки 2x3 на плате Arduino. Ищите те, которые совместимы с программой avrdude, которую вы будете использовать для загрузки своих приложений. Держитесь подальше от USBtinyISP Адафрута; Мне повезло с этим, и в итоге я купил Atmel, который я связал, менее чем за 40 долларов у Mouser.

blalor
источник
1
Странно, но у меня не было ничего, кроме хорошего опыта работы с Atmel IDE и usbtiny. Кроме того, buspirate будет использоваться в качестве isp для многих различных платформ, отличный маленький инструмент
сбой
1

Совсем не сложно.

http://www.dwelch.com/arduino/

Вам нужно посмотреть на ser.c на моей странице, чтобы выбрать какую карту. некоторые используют разные скорости последовательного порта по умолчанию и разные схемы сброса, чтобы войти в режим программирования. Если вы посмотрите на прошивку arduino, то обнаружите, что вряд ли какая-либо из команд программирования avr действительно поддерживается. Во всяком случае, они действительно не нужны.

Старожил
источник
1

Aruduino может быть абсолютно запрограммирован в сборке. И вам даже не нужен кабель ICSP, чтобы сделать это!

Хорошо, честно говоря, это не то же самое, что программирование в чистом виде с нуля.

Но вы можете встроить сборку в C. Это означает, что вы можете загрузить код на Arduino, который имеет встроенную сборку, которая затем будет выполняться. Рассмотрим библиотеку TVOut , которая позволяет Arduino выводить NTSC / PAL на телевизор.

Эта библиотека очень чувствительна ко времени (поскольку она выводится на телевизор, каждая строка развертки должна быть записана в нужное время). Поэтому для ускорения процесса используется встроенная сборка. Глядя на строку 89 этого файла из библиотеки, автор использует некоторые из написанных им макросов сборки .

Сейчас. Я подозреваю, что он не написал их, используя Arduino IDE по умолчанию. Но эта библиотека вызывает его встроенный ассемблерный код, который любой может импортировать, компилировать и выполнять через свой интерфейс.

Удачи!

Рашер
источник
2
На самом деле, вы также можете создавать исходные файлы на ассемблере, вам просто нужно пропустить IDE Arduino и взаимодействовать с инструментами бэкэнда, такими как avr-gcc (или что-то, что вы используете в качестве ассемблера) и напрямую avrdude.
Крис Страттон