Метценгерштейн 0 28 сентября, 2005 Опубликовано 28 сентября, 2005 · Жалоба У меня есть кусочек проги, вот например и первый вопрос C_task void main(void) { это начало программы какой- то, что тут делает C_task ? Где про это можно прочесть? Где в хелпах? второй вопрос- хочу начать писать пока что на асме в ИАРе, какие то префиксы ставить перед началом кода типа #asm #endasm? И непонятно, не будут ли бодаться регистры моего кода на асме с откомпелёнными из Си? Или компилятор учитывает те регистры которые я использовал сам? Всем спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
visht 0 28 сентября, 2005 Опубликовано 28 сентября, 2005 · Жалоба У меня есть кусочек проги, вот например и первый вопрос C_task void main(void) { это начало программы какой- то, что тут делает C_task ? Где про это можно прочесть? Где в хелпах? второй вопрос- хочу начать писать пока что на асме в ИАРе, какие то префиксы ставить перед началом кода типа #asm #endasm? И непонятно, не будут ли бодаться регистры моего кода на асме с откомпелёнными из Си? Или компилятор учитывает те регистры которые я использовал сам? Всем спасибо. <{POST_SNAPBACK}> Сам только начинаю переходить на С... по поводу 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Old1 0 28 сентября, 2005 Опубликовано 28 сентября, 2005 · Жалоба 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*/ { } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
visht 0 28 сентября, 2005 Опубликовано 28 сентября, 2005 · Жалоба Что с сылкой на 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Метценгерштейн 0 28 сентября, 2005 Опубликовано 28 сентября, 2005 · Жалоба т.е. C_task при написании проги мне принять как за правило и всегда практически его вставлять? вот нашёл тоже- C_task - это указание компилятору не сохранять регистры при вызове функции main().. См. описание на компилятор. Это дает возможность немного уменьшить код программы. Получается, его всегда писать и всё тут? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Метценгерштейн 0 28 сентября, 2005 Опубликовано 28 сентября, 2005 · Жалоба The main function can therefore be declared as C_task. Не понятна фраза эта, что значит гл. ф-я может быть следовательно декларирована как C_task??? Как это понять? Она же объявлена как майн и всё тут? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 28 сентября, 2005 Опубликовано 28 сентября, 2005 (изменено) · Жалоба Да, диспут как говориться - удался!!! Уважаемый Метценгерштейн по всей видимости Вам для обучения и дальнейшей практической работы сперва необходимо определиться с выбором литературы по языку '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'. Изменено 28 сентября, 2005 пользователем BVU Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
delta1968 0 28 сентября, 2005 Опубликовано 28 сентября, 2005 · Жалоба Спасибо за советы, avr123 я уже изучил, прошёлся по примерам многим, там уклон на CV. Хорошо, начнём с простого, есть работающий кусок на АСМе под ЛСД. Как мне его запустить и откомпелить в ИАРе? Потом, как смешивать Си, если я захочу его добавить к проекту на асме? Тоже самое пытался проделать с CV- не хочет компилиться. Да и говорят, CV- слаб для профессиональной работы. Си я прочитал, но нужна уже практика в каком- то компиляторе, почему бы не в ИАРе? <{POST_SNAPBACK}> Насколько я пользовался Си и Асмом, Асм добавляется к Си, а не на оборот. Есть такая книга, классика Си Керринган и Ричи "Введение в Си", самое то для начала. А потом все остальное. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Метценгерштейн 0 28 сентября, 2005 Опубликовано 28 сентября, 2005 · Жалоба Согласен про эту книгу, просто не найти её в инете, может кто ссылку даст? В магазин зашё вчера- ниту книг ни этой ни по ИАРу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Виктория 0 28 сентября, 2005 Опубликовано 28 сентября, 2005 · Жалоба Сочувствую Вам, Метценгерштейн. Много Вам информации в эту ветку накидали. У меня есть кусочек проги, вот например и первый вопрос C_task void main(void) { это начало программы какой- то, что тут делает C_task ? Где про это можно прочесть? Где в хелпах? т.е. C_task при написании проги мне принять как за правило и всегда практически его вставлять? вот нашёл тоже- C_task - это указание компилятору не сохранять регистры при вызове функции main().. См. описание на компилятор. Это дает возможность немного уменьшить код программы. Получается, его всегда писать и всё тут? Похоже, хорошее ключевое слово C_task. Позволяет экономить стек при длинной цепочке вызовов подпрограмм, оставляя груз за сохранением или контролем информации на плечах программиста. Т.е. по другому можете использовать не только для main(), но и для других подпрограмм (когда станете опытным программером). второй вопрос- хочу начать писать пока что на асме в ИАРе, какие то префиксы ставить перед началом кода типа #asm #endasm? И непонятно, не будут ли бодаться регистры моего кода на асме с откомпелёнными из Си? Или компилятор учитывает те регистры которые я использовал сам? Вот как раз - будут ли бодаться и посмотрите в листинге на ассемблере :) С префиксами сами уж help посмотрите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Виктория 0 28 сентября, 2005 Опубликовано 28 сентября, 2005 · Жалоба Кернигана и e.t.c. можно здесь взять тут есть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Виктория 0 28 сентября, 2005 Опубликовано 28 сентября, 2005 · Жалоба Кстати, посмотрела примеры BVU. Встроенный asm (если он есть в IAR;)), то похоже Вам и не очень нужен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Метценгерштейн 0 28 сентября, 2005 Опубликовано 28 сентября, 2005 · Жалоба Пойдём немного другим путём- буду читать эту книгу, скачал компилятор Dev-C++, в нём прорабатывать, потом вернёмся к ИАРу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 28 сентября, 2005 Опубликовано 28 сентября, 2005 · Жалоба Sorry конечно, а что это за зверь? Dev-C++ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Виктория 0 28 сентября, 2005 Опубликовано 28 сентября, 2005 · Жалоба Графическая среда на базе Gnu C под Windows. Метценгерштейн, может Вам самый простой Turbo C выложить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться