|
|
  |
кто поможет ИАР освоить небесплатно? |
|
|
|
Sep 28 2005, 07:03
|
Местный
  
Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064

|
Цитата(Метценгерштейн @ Sep 28 2005, 09:44) У меня есть кусочек проги, вот например и первый вопрос C_task void main(void) { это начало программы какой- то, что тут делает C_task ? Где про это можно прочесть? Где в хелпах? второй вопрос- хочу начать писать пока что на асме в ИАРе, какие то префиксы ставить перед началом кода типа #asm #endasm? И непонятно, не будут ли бодаться регистры моего кода на асме с откомпелёнными из Си? Или компилятор учитывает те регистры которые я использовал сам? Всем спасибо. Сам только начинаю переходить на С... по поводу C_task это как-бы обьявление главного цикла main где-то писалось вроде бы в AVR035 http://www.efind.ru/ad/adframe.php?n=a40f2...3&target=_blankпо поводу совмещения с ASM пока нашел только это www.prochild.com/eng/data/avr/appnotes/pdf/AVR034.pdf
|
|
|
|
|
Sep 28 2005, 07:11
|

Знающий
   
Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095

|
Цитата(&-rey @ Sep 28 2005, 10:03) C_task void main(void) { это начало программы какой- то, что тут делает C_task ? Где про это можно прочесть? Где в хелпах? Цитата из перевода AVR035.pdf (http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR035.htm) Функция main обычно содержит основной цикл программы. В большинстве случаев функция main не вызывается из других функций и нет необходимости предварительно сохранять содержимое какого-либо регистра перед входом в нее. Таким образом, функция main может быть объявлена как C_task. Это сэкономит пространство стека и размер кода: __C_task void main(void) /* Объявление main() как C_task*/ { }
|
|
|
|
|
Sep 28 2005, 07:14
|
Местный
  
Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064

|
Что с сылкой на AVR035 не то http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR035.htmвот чего там пишут: The main function usually contains the main loop of the program.In most cases no functions are calling the main function,and there are no need to preserve any registers when entering it.The main function can therefore be declared as C_task.
|
|
|
|
|
Sep 28 2005, 07:26
|

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

|
Да, диспут как говориться - удался!!! Уважаемый Метценгерштейн по всей видимости Вам для обучения и дальнейшей практической работы сперва необходимо определиться с выбором литературы по языку 'C' (как и другие учасники данной дискуссии я бы рекомендовал авторов Керниган, Ричи) и выбор версии среды разработки IAR (не ниже EWAVR-EV-310A, а лучше всего брать самую 'свежую' на сайте разработчика. По поводу превращения ее в нормально работающую - читайте темы местного форума). Да прочитайте для начала статью (это на русском): http://chipinfo.ru/literature/chipnews/200010/15.htmlнемного, но все равно какая то информация. Не 'зацикливайтесь' там на конкретных версиях компилятора, сейчас это уже далеко в прошлом. Делайте поиск по форуму на существование ответа по возникающему вопросу, если ничего не находите, задавайте его инициируя новую тему. Смотрите форум по интересующей Вас тематике. Информации много, но естественно она не систематизирована. Форум - есть - Форум. Удачи! P.S. Посмотрите так же тему: http://forum.electronix.ru/index.php?showt...443entry45443там мной прикреплен файл Programm_Example.rar это тоже примеры IAR проектов на 'C'.
Сообщение отредактировал BVU - Sep 28 2005, 08:42
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Sep 28 2005, 07:38
|
Участник

Группа: Новичок (без почты)
Сообщений: 28
Регистрация: 28-07-05
Пользователь №: 7 163

|
Цитата(Метценгерштейн @ Sep 27 2005, 16:26) Спасибо за советы, avr123 я уже изучил, прошёлся по примерам многим, там уклон на CV. Хорошо, начнём с простого, есть работающий кусок на АСМе под ЛСД. Как мне его запустить и откомпелить в ИАРе? Потом, как смешивать Си, если я захочу его добавить к проекту на асме? Тоже самое пытался проделать с CV- не хочет компилиться. Да и говорят, CV- слаб для профессиональной работы. Си я прочитал, но нужна уже практика в каком- то компиляторе, почему бы не в ИАРе? Насколько я пользовался Си и Асмом, Асм добавляется к Си, а не на оборот. Есть такая книга, классика Си Керринган и Ричи "Введение в Си", самое то для начала. А потом все остальное.
|
|
|
|
|
Sep 28 2005, 08:28
|

инженер
   
Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701

|
Сочувствую Вам, Метценгерштейн. Много Вам информации в эту ветку накидали. Цитата У меня есть кусочек проги, вот например и первый вопрос
C_task void main(void) { это начало программы какой- то, что тут делает C_task ? Где про это можно прочесть? Где в хелпах? Цитата т.е. C_task при написании проги мне принять как за правило и всегда практически его вставлять? вот нашёл тоже- C_task - это указание компилятору не сохранять регистры при вызове функции main().. См. описание на компилятор. Это дает возможность немного уменьшить код программы. Получается, его всегда писать и всё тут? Похоже, хорошее ключевое слово C_task. Позволяет экономить стек при длинной цепочке вызовов подпрограмм, оставляя груз за сохранением или контролем информации на плечах программиста. Т.е. по другому можете использовать не только для main(), но и для других подпрограмм (когда станете опытным программером). Цитата второй вопрос- хочу начать писать пока что на асме в ИАРе, какие то префиксы ставить перед началом кода типа #asm #endasm? И непонятно, не будут ли бодаться регистры моего кода на асме с откомпелёнными из Си? Или компилятор учитывает те регистры которые я использовал сам? Вот как раз - будут ли бодаться и посмотрите в листинге на ассемблере С префиксами сами уж help посмотрите.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|