реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Начало на IAR
Rash
сообщение Oct 13 2005, 12:43
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



Всем здрасте. Перехожу от асеблера на С (IAR для AVR). Как начать новую программу и чё необходимо подключать. Т.е. как проинизиализировать стек, вектора прерываний и всё такое. Какие нибудь примеры, ссылки.
Go to the top of the page
 
+Quote Post
G}{OST
сообщение Oct 13 2005, 13:11
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 6-05-05
Пользователь №: 4 784



AVR030: Getting Started with IAR Embedded Workbench for Atmel AVR (10 pages, revision D, updated 10/04)
The purpose of this application note is to guide new users through the initial settings of IAR Embedded Workbench, and compile a simple C-program.

http://www.atmel.com/dyn/resources/prod_do...nts/doc1483.pdf
http://www.atmel.com/dyn/resources/prod_documents/avr030.zip


--------------------
cul8r!
* #ru_embedded - эмбеддерский чат
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 13 2005, 13:14
Сообщение #3


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата
Как начать новую программу и чё необходимо подключать. Т.е. как проинизиализировать стек, вектора прерываний и всё такое. Какие нибудь примеры, ссылки.


Насчет примеров... В общем стандартный Си он и в Африке Си. В общем любые сишные примеры для авр для любого компилятора (Code Vision, ICC & so on), в основном исходник можно оставить без изменений, а такие мелочи как заголовочные файлы, директивы и т.д. очень даже не плохо описаны в хелпе к компилятору. Кстати хелп там очень солидный: несколько pdf'ников + chm и все это где-то на 1,5 Мб (если не ошибаюсь).

Стек пока можно не трогать, его компилятор инициализирует сам.

На всякий случай ссылки на две популярные конфы, где можно немало почерпнуть (работает поиск по конференции):
http://www.telesys.ru/wwwboards/mcontrol/index.shtml
http://www.caxapa.ru/mcu/wwwboard.html


З.Ы. Я сам недавно начал работать с IAR, до этого юзал WinAVR (бесплатный компилятор), так-то если что может чем еще смогу помочь, хотя вряд ли, опыта у меня мало.


Удачи!!!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
BVU
сообщение Oct 13 2005, 13:20
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(Rash @ Oct 13 2005, 16:43)
Всем здрасте. Перехожу от асеблера на С (IAR для AVR). Как начать новую программу и чё необходимо подключать. Т.е. как проинизиализировать стек, вектора прерываний и всё такое. Какие нибудь примеры, ссылки.
*

К сожалению на русском языке ничего про это найти нельзя (вот Вам и здрасте...). Тем неменее для начала всем начинающим советуют почитать Help для IAR или *.pdf файлы, что в общем-то одно и то же. Разберитесь как создать новый проект, как настроить под него Options, а так же просматривайте темы форума, там про это тоже можно найти много полезного!


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
Rash
сообщение Oct 13 2005, 13:28
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



Всё я уже скачал, проект вроде создал, как привычное для ассемблера
ldi rTemp, high(RAMEND) ; Инициализация стека...
out SPH, rTemp ; ...
ldi rTemp, low(RAMEND) ; ...
out SPL, rTemp ; ...
сделать, да и прерывания заодно, кто нибудь тестовый пример для себя делал, а из доки какие разделы нужны сразу а какие уже после. А то что хелп читать надо то и ежу понятно, но я же не велосипед изобретаю, а иду дорогой которой уже не одна сотня людей прошла, хотябы на англиском коротко ясно и понятно, а из 500 стр. хелпа попробой вылови, что надо изначально.
Go to the top of the page
 
+Quote Post
BVU
сообщение Oct 13 2005, 13:41
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Обычно все основные настройки проекта содержаться в .xcl файле. Разберитесь с его содержимым и как настраивать проект используя лишь один .xcl. Далее, поскольку Вы работали с asm, сделайте возможность генерации листинга на C-asm, где будете сравнивать и контролировать результат построения вашего билда.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
G}{OST
сообщение Oct 13 2005, 13:48
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 6-05-05
Пользователь №: 4 784



Цитата(BVU @ Oct 13 2005, 17:41)
Обычно все основные настройки проекта содержаться в .xcl файле.  Разберитесь с его содержимым и как настраивать проект используя лишь один .xcl. 
*
Это уже в прошлом. Теперь все настройки можно сделать в свойствах проекта.

Цитата(BVU @ Oct 13 2005, 17:41)
Далее, поскольку Вы работали с asm, сделайте возможность генерации листинга на C-asm, где будете сравнивать и контролировать результат построения вашего билда.
*
А еще можно почитать вот этот док:
Mixing C and Assembly Code with IAR Embedded Workbench for AVR


--------------------
cul8r!
* #ru_embedded - эмбеддерский чат
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 13 2005, 13:51
Сообщение #8


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата
Всё я уже скачал, проект вроде создал, как привычное для ассемблера
ldi rTemp, high(RAMEND) ; Инициализация стека...
out SPH, rTemp ; ...
ldi rTemp, low(RAMEND) ; ...
out SPL, rTemp ; ...


Этого не надо делать, компилятор сам инициализирует стек.
Дальше: когда я начал с ИАРом разбираться, то мне помог документ UserGuide.pdf, там есть глава, посвященная созданию проекта, его настройке и компиляции. К сожалению ни чего не могу точно сказать, т.к. все это на работе, а я сейчас дома.

Насчет создания прерываний: это просто функция, типа
void my_interrupt(void)
{
//your code
}
, но перед ней стоит директива #pragma _что_то_там_не_помню
по директивам есть отличный файл справки, название файла не помню, откройте его из IDE (меню Help).


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
BVU
сообщение Oct 13 2005, 14:20
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(G}{OST @ Oct 13 2005, 17:48)
Это уже в прошлом. Теперь все настройки можно сделать в свойствах проекта.
*

Я про Options упоминал в ответе в самом начале этой темы (но суть не в этом). 'Тренировка' по использованию настройки *.xcl поможет лучше понять и 'внутренность IAR', и в нужный момент сделать свои коррекции, для проекта, чего порой невозможно добиться через настройки в Options.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
Runner
сообщение Oct 13 2005, 14:32
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 18-06-05
Пользователь №: 6 117



Описание ф-ции-обработчика прерывания (в header- файле):
#pragma vector = INT1_vect
__interrupt void INT1_handler(void);
//INT1_vect - вектор прерывания, константа из заголовочного файла библиотеки
//тип ф-ции и аргументы должны быть void

Определение (C файл):

__interrupt void INT1_handler(void)
{
...
return;
}

Надо хотя бы раз бегло просмотреть документашки к IAR - что бы знать его возможности. Си IAR все-таки отличается от ANSI, иногда очень сильно.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Oct 13 2005, 14:37
Сообщение #11


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Теперь я хочу задать ткпой вопрос:
Цитата
__interrupt void INT1_handler(void)
{
...
return;
}


А обязательно return ставить? Просто я не ставил в своей проге и она работает.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Runner
сообщение Oct 13 2005, 15:47
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 18-06-05
Пользователь №: 6 117



Цитата(haker_fox @ Oct 13 2005, 16:37)
Теперь я хочу задать ткпой вопрос:
Цитата
__interrupt void INT1_handler(void)
{
...
return;
}


А обязательно return ставить? Просто я не ставил в своей проге и она работает.
*


Раз работало, значит необязательно. smile.gif Обязательно только для не-void'ов. Просто компиляторы некоторые warning'и выдают, да и ВЫСОКИЙ стиль...
Кроме того можно в дизасемблере красиво посмотреть что делается при возвращении из функции
Go to the top of the page
 
+Quote Post
Rash
сообщение Oct 14 2005, 06:57
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



Дайте, пожалуйста путёвый, но не сложный пример для начинающего, с прерываниями их инициализацией,разбитые по рызным файлам. Например Main.c - основная прога, Int.h и Int.c - прерывания и т.д. Заранее спасибо.
Go to the top of the page
 
+Quote Post
Igor26
сообщение Oct 14 2005, 07:28
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата(Rash @ Oct 14 2005, 09:57)
Дайте, пожалуйста путёвый, но не сложный пример для начинающего, с прерываниями их инициализацией,разбитые по рызным файлам. Например Main.c - основная прога, Int.h и Int.c - прерывания и т.д. Заранее спасибо.
*

Давайте мэйл, закину.
Go to the top of the page
 
+Quote Post
Igor26
сообщение Oct 14 2005, 08:01
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата(Rash @ Oct 14 2005, 10:43)
Цитата(Igor26 @ Oct 14 2005, 10:28)
Цитата(Rash @ Oct 14 2005, 09:57)
Дайте, пожалуйста путёвый, но не сложный пример для начинающего, с прерываниями их инициализацией,разбитые по рызным файлам. Например Main.c - основная прога, Int.h и Int.c - прерывания и т.д. Заранее спасибо.
*

Давайте мэйл, закину.
*



raash@yandex.ru Спасибо
*


Смотрите почту.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 08:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01414 секунд с 7
ELECTRONIX ©2004-2016