Метценгерштейн
Sep 27 2005, 12:02
Сам из Питера, асм знаю неплохо, хотелось бы перейти на Си и ИАР, самому- туго идёт развитие. Надо может пару занятий, чтобы мысль развилась в нужном напрвлении. Какие предложения будут?
Виктория
Sep 27 2005, 12:42
Цитата(Метценгерштейн @ Sep 27 2005, 18:02)
Сам из Питера, асм знаю неплохо, хотелось бы перейти на Си и ИАР, самому- туго идёт развитие. Надо может пару занятий, чтобы мысль развилась в нужном напрвлении. Какие предложения будут?
Совет: не путайте IAR с С. С - язык, IAR - среда/компилятор. Учите их отдельно. Уверен, что трудности у Вас именно с языком (за пару дней такие вещи не изучаются), со средой проблем быть не должно - она очень простая и интуитивно понятная. Тем более, что все там хорошо документировано.
По языку. Возьмите для начала "Язык программирования С" Д. Ричи и Б. Кернигана. И попробуйте какие-нить простенькие программки пописАть. Не обязательно на IAR'е. Появятся вопросы - позадавайте их на формуе (на этом или на других). Когда с языком, его концепциями станет понятнее, тогда и с IAR'ом вопросов серьезных не возникнет.
А за два дня никто Вас этому ни за какие деньги не обучит. Как грицца: "Научить нельзя, можно научиться" (с).
Метценгерштейн
Sep 27 2005, 13:26
Спасибо за советы, avr123 я уже изучил, прошёлся по примерам многим, там уклон на CV. Хорошо, начнём с простого, есть работающий кусок на АСМе под ЛСД. Как мне его запустить и откомпелить в ИАРе? Потом, как смешивать Си, если я захочу его добавить к проекту на асме? Тоже самое пытался проделать с CV- не хочет компилиться. Да и говорят, CV- слаб для профессиональной работы. Си я прочитал, но нужна уже практика в каком- то компиляторе, почему бы не в ИАРе?
iosifk
Sep 27 2005, 13:33
Цитата(Метценгерштейн @ Sep 27 2005, 15:02)
Сам из Питера, асм знаю неплохо, хотелось бы перейти на Си и ИАР, самому- туго идёт развитие. Надо может пару занятий, чтобы мысль развилась в нужном напрвлении. Какие предложения будут?
Напишите мне, рад буду помочь документацией.
Удачи, Иосиф.
Виктория
Sep 27 2005, 13:42
Могу через конференцию.
Но у меня нету IAR
Метценгерштейн
Sep 27 2005, 13:53
Да вот, мне только ИАР интересен, как самый самый рульный.
Виктория
Sep 27 2005, 14:11
Мне бы только руку помощи протянуть.

(Помощь от программиста, использующего в свое время ряд кросс-компиляторов для различных процессоров и знающего все подводные камни).
Хоть бесплатно, хоть платно...
К сожалению научить - нельзя! Можно лишь только - научиться!
Многие ребята правильно Вам посоветовали - изучайте сами и не стесняясь задавайте как можно больше вопросов, пока данный вопрос на неясный предмет не будет Вами уяснен.
prottoss
Sep 27 2005, 14:21
Цитата(Метценгерштейн @ Sep 27 2005, 21:26)
... Да и говорят, CV- слаб для профессиональной работы...
О какой проффессиональной работе идет речь в ИАРе, если Вы Си толком не знаете?
За один день общения в форуме Си не узнаешь. Вы ж с Питера- большой город где все можно достать. Купите учебники на русском, диски. Установите на своем компьютере Турбо Си от Борланда или аналог какой нибудь от Мелкософта. Там куча примеров и исходников. Попишите для Пи-Си, поучитесь. Если Вы знаете Асм для АВР, то, приобретя какой-то опыт не сложно будет прейти и на любую платформу и любой компилятор
Виктория
Sep 27 2005, 14:27
Цитата
К сожалению научить - нельзя! Можно лишь только - научиться!
При всем уважении к
BVU не согласна!
А как же тогда мы студентов учим (

). Это же технология, есть общие принципы. Правда всякие тонкости ключей компилятора, специфики языка (ключевые слова, типы данных, ...) - конечно лучше опытным путем (и своим личным экспериментом. Типа закрепление пройденного с помощью лабораторной работы).
To
Метценгерштейн Я своим студентам постоянно зужу, что программист микроконтроллеров, как и всякий прочий программист, должен уметь переходить с одного семейства на другое примерно за неделю.
А для Вас возможно это только психологически сложно. На самом деле практика решает все. Удачи!
Виктория
Sep 27 2005, 14:35
prottoss Цитата
Установите на своем компьютере Турбо Си от Борланда или аналог какой нибудь от Мелкософта. Там куча примеров и исходников. Попишите для Пи-Си, поучитесь.
Еще в тему. По личному опыту и опыту моих друзей - хорошо помогает в обучении просмотр выходных файлов компилятора в формате asm для конкретной Вашей программы. Это можно сделать и в IARe, необязательно Турбо Си!
По поводу Ваших вопросов с asm - опции компилятора посмотрите.
prottoss
Sep 27 2005, 14:36
Цитата(Vic1 @ Sep 27 2005, 22:27)
...Я своим студентам постоянно зужу, что программист микроконтроллеров, как и всякий прочий программист, должен уметь переходить с одного семейства на другое примерно за неделю...
Вообще то сдесь речь идет не о переходе с семейства на семейство, а с языка на язык, а это разные вещи. И за неделю, я думаю перейти сложно, потому как хотя опытный программист и обладает навыками составления алгоритмов, незнакомый язык имеет массу неведомых програмисту ньюансов. А перейти с платформы на платформу можно и меньше чем за неделю, опять же если опытный инженер-программист
Цитата(Vic1 @ Sep 27 2005, 18:27)
Цитата
К сожалению научить - нельзя! Можно лишь только - научиться!
При всем уважении к
BVU не согласна!
А как же тогда мы студентов учим (

). Это же технология, есть общие принципы. Правда всякие тонкости ключей компилятора, специфики языка (ключевые слова, типы данных, ...) - конечно лучше опытным путем (и своим личным экспериментом. Типа закрепление пройденного с помощью лабораторной работы).
To
Метценгерштейн Я своим студентам постоянно зужу, что программист микроконтроллеров, как и всякий прочий программист, должен уметь переходить с одного семейства на другое примерно за неделю.
А для Вас возможно это только психологически сложно. На самом деле практика решает все. Удачи!
Нисколько не принижаю квалификацию и методы обучения преподавательского состава, который должен в первую очередь учить, как учиться (эта тема не раз поднимается на многих форумах и заканчивается единогласно одним резюме), а методические занятия лишь укрепляют полученный материал.
По поводу психологического фактора. Здесь преподаватели ВУЗов практически бессильны, ибо психология закладывается у человека в раннем детстве, а потом только слегка корректируется (так что Вы здесь опоздали...).
Спец. службами применяются некоторые методики способствующие изменению некоторых ингибиторов в поведении человека, но это всегда наносит личности в той или в другой степени серьезные психические травмы.
Хочу Вам просто обьяснить, что микроконтроллеры и программирование здесь совершенно не причем, я вкладывал смысл в более широкое понятие обучаемости человека (сегодня ты - программируешь один микроконтроллер, а через неделю проектируешь летательный аппарат). Человек без индивидуальной подготовки к обучаемости никогда не будет даже средним инженером, я уже не говорю о том что бы 'двигать науку'.
С уважением,
BVU
Цитата(BVU @ Sep 27 2005, 17:15)
Хоть бесплатно, хоть платно...
К сожалению научить - нельзя! Можно лишь только - научиться!
Многие ребята правильно Вам посоветовали - изучайте сами и не стесняясь задавайте как можно больше вопросов, пока данный вопрос на неясный предмет не будет Вами уяснен.
полностью согласен.
не начинайте с толcтых книг, начните например с:
http://cpp.r2.ru/если вы умеете составлять алгоритмы
в качестве примеров, может и не совсем применительно к контроллерам:
http://lib.chistopol.ru/read.php?id=2489&page=all из свода законов Мэрфи (это я про себя

)
Закон Х.Л.Менкена
Кто может - делает. Кто не может - учит.
**************
Дополнение студентов МГПИ им.Ленина
Кто не может учить - учит как учить.]
**************
Дополнение Мартина
Кто не может учить - управляет.
--------------------------------------------------
PS. IAR -это ИАР(среда) , С -это СИ, зачем все в кучу смешивать?
eXeC001er
Sep 27 2005, 19:42
А я что то не совсем понял, девушка хочет выучить Си с целью обучения студентов?!
Думаю что для Вас для начала необходимо выучить (понять), научиться самой писать что либо, потом можно переходить на МК, т.е. изучать архитектуру, а уж потом приниматься совмещать Си и МК.
И после всего этого необходимо поучаствовать в создании какого либо мало мальски большого проекта для закрепления знаний получения опыта, а уж потом учить студентов, иначе ни Вы ни студенты нифига не поймут.
ИМХО.
Еще один вариант, это делают многие преподы на сегодняшний день, учить вместе со студентами, вы прочитываете какую либо доку, составляете небольшой план на 5-10 занятий, и потом перед занятием за день-два сами прорабатываете занятие, чтобы потом стедентам обяснить, что как, иначе Вы будете в их глазах "ламером" и это гарантированно и проверено. А если будете прорабатывать занятие заранее а не на самой паре то вам гарантирован успех, по крайней мере в глазах таких же как и вы, ваш главный плюс будет то что вы будете знать на шаг вперед.
eXeC001er
Sep 27 2005, 19:48
ну про студентов и девушку эт я недочитал ошибся с обращение т.к. обратил внимание на мессадж от Vic1.
Но от слов не отказываюсь.
А хазану поста, попишите что нить для компутера, разберитесь в структуре языка, а потом переходите на CV, там можно конкретно позырить как настраивается контролер (эт я про генератор кода), поиграйтесь посмотрите отличия от того что было при написании прорамм для ПК, а потом можно перейти на ИАР.
А по поводу толстых книг не соггласен,
http://cpp.r2.ru в печатном варианте будет не менее Страуступовской книги по С++. А печатный вариант лучше.
Мое мнение Страуступ и какой нить самоучитель самое то.
Метценгерштейн
Sep 27 2005, 20:47
Спасибо всем за живой топик! По поводу советов мне насчёт Си- читал я эту книгу, я представляю что такое Си, есть и прочитана книга Стефан Р Дэвис, могу ошибиться немного в авторе, не суть. АВР знаю практически идеально, его архитектуру, опишу его спокойно на асме, но надо расти. По поводу пописать на Си под ПК- ??? Почему бы мне сразу не пописать под АВР? Его я знаю лучше чем ПК? Один хрен разбираться с программой того же борланда, плюс синтаксис компилятора у каждого свой. Тогда хорошо, буду задавать вопросы здесь и много, возможно где- то глупых, но для меня не понятных. Начнём?
Цитата(Метценгерштейн @ Sep 27 2005, 23:47)
Почему бы мне сразу не пописать под АВР? Его я знаю лучше чем ПК? Один хрен разбираться с программой того же борланда, плюс синтаксис
Как сам недавно начавший осваивать С - скажу следующее. Если вы знаете МК достаточно глубоко - пишите для него и смотрите листинг. Свои ошибки сразу же заметите. Правда, есть и свои тонкости - например, вы пишете какой-то фрагмент, а в листинге - фрагмент есть, а кода нету :-) Он его соптимизировал... например, присваиваете значение переменной, а ее нигде не используете (ошибочно, или просто для просмотра завели - выбросит все, если с оптипизацией).
Но стоит отметить - некоторые вещи IAR делает просто великолепно. Например, если вы в конце процедуры обращаетесь к другой процедуре - он сделает на нее RJMP. С другой стороны - кривовато работает в переменными, объявленными в регистрах (а версия 3.20 вообще ошибалась).
В общем, как в той песне - " когда рисовать начнете, вы это поймете cами "...
haker_fox
Sep 28 2005, 01:27
Позвольте и мне высказаться. Сейчас у меня задача направить двух человек на путь правильного изучения языка Си. Один из них тоже хочет программировать АВР на Си, другой будет заниматься только ПК. И тому и другому я советую изучать язык на борландовском компиляторе Borland C++ 3.0. Он работает под DOS, ключи ему как таковые не нужны (вернее можно и не указывать, все настраивается через среду IDE). Почему? Я это обосновываю тем, что программу на компьютере легче отлаживать и понимать синтаксис языка обучающемуся человеку. Осваивание же НОВОГО НЕЗНАКОМОГО языка на достаточно закрытом АВР (с точки зрения контроля работы программы) я считаю трудным и путсым занятия (но это лишь моя точка зрения). Изучение ассемблерного листинга с целью изучения НОВОГО НЕЗНАКОМОГО языка (специально повторяюсь) не всегда возможно: если листинг 10-30 строк, то еще можно, а если 40 и больше (опять же мое мнение)??? Из этого вытекает решение: писать учебные программы, размер листинга который не превышает 30 строк (условно), но что это будут за программы??? И потом - отладка??? На микроконтроллере??? Не очень-то и удобно!!! Даже когда знаешь язык, иногда бывает трудно найти траблы. На симуляторе AVR Studio? Да тогда уж на нем, но... все равно чувствуется какой-то изврат... да и лучше уж тогда в Borland IDE... примерно одинаково и получится, но в последнем случае во много раз лучше.
В общем мое мнение (только мое и я ни кому ни чего не навязываю): изучайте Си на IBM PC, как Вам правильно советовали выше.
ICQ 339085018
2 haker fox, а как на Борланде периферию симулировать?, да и изучать его тоже нужно, а к тому времени Атмель новую линейку МК запустит, архитектуру учить придется,- все по Владимиру Ильичу получается...

, а программу надо было написать на вчера, иначе китайцы напишут.
haker_fox
Sep 28 2005, 03:39
To INT1: я что говорил??? Я говорил об изучении языка СИ, а на кой нам %%% симулировать периферию, если мы еще Си не знаем?????? И про AVR Studio я упоминал как об отладчике, на котором можно наблюдать ход программы, а периферия МК сейчас не важна, ведь человек просит помочь освоить IAR!!!!
ну так IAR же, а не Borland
вобщем,( имхо,) нужно идти от простого к сложному, взять готовый небольшой проект под ИАР и разобраться в нем. Кстати, в ж-лах "Радиоаматор" за прошлый/текущий годы был цикл статей по СИ для АВР, правда средА кажется там WinAVR.
Виктория
Sep 28 2005, 04:30
eXeC001er Цитата
А я что то не совсем понял, девушка хочет выучить Си с целью обучения студентов?! Думаю что для Вас для начала необходимо выучить (понять), научиться самой писать что либо, потом можно переходить на МК, т.е. изучать архитектуру, а уж потом приниматься совмещать Си и МК.
И после всего этого необходимо поучаствовать в создании какого либо мало мальски большого проекта для закрепления знаний получения опыта, а уж потом учить студентов, иначе ни Вы ни студенты нифига не поймут.
ИМХО.
Еще один вариант, это делают многие преподы на сегодняшний день, учить вместе со студентами, вы прочитываете какую либо доку, составляете небольшой план на 5-10 занятий, и потом перед занятием за день-два сами прорабатываете занятие, чтобы потом стедентам обяснить, что как, иначе Вы будете в их глазах "ламером" и это гарантированно и проверено. А если будете прорабатывать занятие заранее а не на самой паре то вам гарантирован успех, по крайней мере в глазах таких же как и вы, ваш главный плюс будет то что вы будете знать на шаг вперед.
Неаккуратно постинги читаете? С чего Вы это взяли? Только с того, что у меня нет IAR. Будьте, пожалуйста, внимательнее. (Может я Вам уже в бабушки гожусь

). Благо и воплощенные проекты за спиной есть, и вехи развития кросс-технологии программирования Embedded пройдены лично (можно и мемуары писать, хотя бы такие "От asm-a K580 к OS-9 на MC68302"). А насчет преподавания - так я же "играющий тренер".
Большого желания поддерживать этот постинг теперь нету. Метценгерштейн, обратите внимание NML повторил мой совет другими словами. Значит он все-таки дельный (в общем-то он служит просто для преодоления барьера перехода с ассемблера на Си и проверен историей).
haker_fox
Sep 28 2005, 04:39
Ну Вы тут и наговорили, интересно, а как же теперь все это поймет уважаемый Метценгерштейн??? Как ему теперь быть???
Виктория
Sep 28 2005, 04:42
Создать новую тему.
Цитата(Vic1 @ Sep 27 2005, 20:27)
Я своим студентам постоянно зужу, что программист микроконтроллеров, как и всякий прочий программист, должен уметь переходить с одного семейства на другое примерно за неделю.
И напрасно делаете! Поскольку это не так. Попробуйте, к примеру, за неделю перейти с AVR на Blackfin! Я не имею в виду: создать проект и скомпилить тестовую прогу (это у меня получилось в течение получаса с нуля), а именно перейти - т.е. изучить архитектуру целевого процессора, без чего эффективное программирование просто невозможно, освоить средсва разработки и т.д. Там одной документации на пяток тыщ страниц наберется (и все на мериканцком языке) - сколько времени ее читать будете?
Т.ч. процессор процессору рознь и все эти разговоры про неделю (аля "С++ за 21 день") - только разговоры. Любая серьезная работа требует усилий и времени, ничего просто так не дается. С нуля даже AVR за неделю не освоишь как следует - т.к. для этого надо хотя бы какой-то опыт реальный приобрести.
А язык - вещь несколько ортогональная по отношению к процессорам, его надо изучать вдумчиво и неторопясь. Совет заглядывать в листинг - совершенно правильный, только тут надо всегда помнить, что есть правила языка и есть конкретная реализация, которая может и не соответствовать правилам. Если задуманное работает не так, как хотелось, что видно и из листинга, то в подавляющем большинстве случаев на начальном этапе это из-за недостаточного знания языка. Столкнувшись с этим надо четко понимать, что тут надо разобраться КАК ОНО ДОЛЖНО работать, открыв документацию на язык. Вот при таком подходе листинг с реализацией очень кстати. Но на практике начинающие часто делают совсем не то - они начинают экспериментировать с исходным текстом, подгоняя результирующее поведение под желаемое. Что порождает глупые и неуправляемые хаки.
Главная же задача учителя - не столько научить программировать конкретный МК, сколько научить правильному подходу в освоении и МК, и средств разработки. А то, сколько времени требует освоение конкретного процессора - неделю, месяц или год - это уже другой вопрос, тут срок больше зависит от самого процессора (его сложности), глубины освоения (разница между пресловутой "Hello World" и полноценным (хоть и несложным) проектом весьма значительна) и опыта/квалицикации разработчика.
Виктория
Sep 28 2005, 05:13
Цитата
Главная же задача учителя - не столько научить программировать конкретный МК, сколько научить правильному подходу в освоении и МК, и средств разработки. А то, сколько времени требует освоение конкретного процессора - неделю, месяц или год - это уже другой вопрос, тут срок больше зависит от самого процессора (его сложности), глубины освоения (разница между пресловутой "Hello World" и полноценным (хоть и несложным) проектом весьма значительна) и опыта/квалицикации разработчика.
Полностью согласна

Истина.
Наверно в чем-то слишком "горячее" утверждение (за неделю), порожденное стилем коротких ответов на форуме. Если к тому же речь идет не только о кардинальной смене архитектуры контроллера или процессора, но и об серьезном проекте системы на базе этого процессора, то безусловно я не права.
Но своим студентам я все-равно это буду утверждать (чтобы лучше учились

).
Метценгерштейн
Sep 28 2005, 05:42
С вашего позволения, я предпочёл бы всё- таки сразу к ИАРу приступить по ряду причин. Хеллоу Ворлд я уже писал под борландом, и слегка в нём поигрался, потом, как сказано у Термостата на AVR123.by.ru, мы используем всего 2-3% языка, это функции и процедуры. Да и просто мне не придумать себе задачу под борланд, а тут я могу и ЛСД подцепить и просто светодиодиками помигать. АВР я, ещё повторюсь, чувствую и понимаю его работу, думаю, мне лучше будет так. Ну так как, начинаю по совету всех осваивать самостоятельно и заваливать вас кучей вопросов?
имхо, все советы справедливы, каждый по-своему, все зависит только от Вас, остальные могут только помочь, вот ссылочка под руку попалась, может сгодится:
http://www.procyonengineering.com/avr/avrlib/index.html под другую средУ правда, но, всё-же
Метценгерштейн
Sep 28 2005, 06:44
У меня есть кусочек проги, вот например и первый вопрос
C_task void main(void)
{
это начало программы какой- то, что тут делает C_task ? Где про это можно прочесть? Где в хелпах?
второй вопрос- хочу начать писать пока что на асме в ИАРе, какие то префиксы ставить перед началом кода типа #asm #endasm?
И непонятно, не будут ли бодаться регистры моего кода на асме с откомпелёнными из Си? Или компилятор учитывает те регистры которые я использовал сам?
Всем спасибо.
andrvisht
Sep 28 2005, 07:03
Цитата(Метценгерштейн @ 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
Цитата(&-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*/
{
}
andrvisht
Sep 28 2005, 07:14
Что с сылкой на 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:17
т.е. C_task при написании проги мне принять как за правило и всегда практически его вставлять? вот нашёл тоже-
C_task - это указание компилятору не сохранять регистры при вызове
функции main()..
См. описание на компилятор. Это дает возможность немного уменьшить код
программы.
Получается, его всегда писать и всё тут?
Метценгерштейн
Sep 28 2005, 07:25
The main function can therefore be declared as C_task.
Не понятна фраза эта, что значит гл. ф-я может быть следовательно декларирована как C_task??? Как это понять? Она же объявлена как майн и всё тут?
Да, диспут как говориться - удался!!!
Уважаемый
Метценгерштейн по всей видимости Вам для обучения и дальнейшей практической работы сперва необходимо определиться с выбором литературы по языку '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'.
delta1968
Sep 28 2005, 07:38
Цитата(Метценгерштейн @ Sep 27 2005, 16:26)
Спасибо за советы, avr123 я уже изучил, прошёлся по примерам многим, там уклон на CV. Хорошо, начнём с простого, есть работающий кусок на АСМе под ЛСД. Как мне его запустить и откомпелить в ИАРе? Потом, как смешивать Си, если я захочу его добавить к проекту на асме? Тоже самое пытался проделать с CV- не хочет компилиться. Да и говорят, CV- слаб для профессиональной работы. Си я прочитал, но нужна уже практика в каком- то компиляторе, почему бы не в ИАРе?
Насколько я пользовался Си и Асмом, Асм добавляется к Си, а не на оборот. Есть такая книга, классика Си Керринган и Ричи "Введение в Си", самое то для начала. А потом все остальное.
Метценгерштейн
Sep 28 2005, 08:17
Согласен про эту книгу, просто не найти её в инете, может кто ссылку даст? В магазин зашё вчера- ниту книг ни этой ни по ИАРу.
Виктория
Sep 28 2005, 08:28
Сочувствую Вам, Метценгерштейн. Много Вам информации в эту ветку накидали.
Цитата
У меня есть кусочек проги, вот например и первый вопрос
C_task void main(void)
{
это начало программы какой- то, что тут делает C_task ? Где про это можно прочесть? Где в хелпах?
Цитата
т.е. C_task при написании проги мне принять как за правило и всегда практически его вставлять? вот нашёл тоже-
C_task - это указание компилятору не сохранять регистры при вызове
функции main()..
См. описание на компилятор. Это дает возможность немного уменьшить код
программы.
Получается, его всегда писать и всё тут?
Похоже, хорошее ключевое слово C_task. Позволяет экономить стек при длинной цепочке вызовов подпрограмм, оставляя груз за сохранением или контролем информации на плечах программиста. Т.е. по другому можете использовать не только для main(), но и для других подпрограмм (когда станете опытным программером).
Цитата
второй вопрос- хочу начать писать пока что на асме в ИАРе, какие то префиксы ставить перед началом кода типа #asm #endasm?
И непонятно, не будут ли бодаться регистры моего кода на асме с откомпелёнными из Си? Или компилятор учитывает те регистры которые я использовал сам?
Вот как раз - будут ли бодаться и посмотрите в листинге на ассемблере
С префиксами сами уж help посмотрите.
Виктория
Sep 28 2005, 08:32
Кернигана и e.t.c. можно здесь взять
тут есть
Виктория
Sep 28 2005, 08:40
Кстати, посмотрела примеры BVU. Встроенный asm (если он есть в IAR;)), то похоже Вам и не очень нужен.
Метценгерштейн
Sep 28 2005, 09:00
Пойдём немного другим путём- буду читать эту книгу, скачал компилятор Dev-C++, в нём прорабатывать, потом вернёмся к ИАРу.
haker_fox
Sep 28 2005, 13:24
Sorry конечно, а что это за зверь? Dev-C++
Виктория
Sep 28 2005, 13:30
Графическая среда на базе Gnu C под Windows.
Метценгерштейн, может Вам самый простой Turbo C выложить?
haker_fox
Sep 28 2005, 13:55
2 Метценгерштейн:
Я так правильно понял, что Dev-C++ генерит код для IA-32 платформы, а не для AVR? Если я не верно понял и Dev-C++ генерит код под AVR, то дальнейший текст не читать.
А если понял верно, то какой смысл заниматься Dev-C++? Может все-таки недельки две-три позаниматься с Borland C++ 3.0 или Turbo C (досовские компиляторы), понять сущность языка СИ??? А потом садится за IAR. Будет проще, тем более сам МК Вы знаете. Если Вы знаете любой другой ЯВУ, типа Паскаля или даже Бейсика, то особых (ОСОБЫХ) сложностей при освоении СИ быть не должно.
И еще: я тут где-то читал, что Вы хотите прикрутить асмовский код к сишному и компилировать, причем для якобы быстрого освоения (если я не верно понял, то sorry). Так вот - не стоит (не могу сказать почему, но не стоит).
VladislavS
Sep 28 2005, 14:10
Метценгерштейн
Не надо сразу лезть в дебри, возьмите простой проект на чистом С без всяких asm, подрыгайте ножками, поопределяйте прерывания. Как освоите - будете извращаться дальше. Вот у меня лет эдак за 8 так и не возникло желания что-то на ASM вставлять.
Метценгерштейн
Sep 28 2005, 19:28
Цитата(Vic1 @ Sep 28 2005, 16:30)
Метценгерштейн, может Вам самый простой Turbo C выложить?
да нет, спасибо, не надо, мне этот DEV с виду понравился.
Метценгерштейн
Sep 28 2005, 19:35
Цитата(haker_fox @ Sep 28 2005, 16:55)
2 Метценгерштейн:
Я так правильно понял, что Dev-C++ генерит код для IA-32 платформы, а не для AVR? Если я не верно понял и Dev-C++ генерит код под AVR, то дальнейший текст не читать.
И еще: я тут где-то читал, что Вы хотите прикрутить асмовский код к сишному и компилировать, причем для якобы быстрого освоения (если я не верно понял, то sorry). Так вот - не стоит (не могу сказать почему, но не стоит).
Это просто аналог борланда но под винду и красивей, здесь нельзя мышкой таскать элементы на панель как в вижуал борланде. Просто там опробовать Си, прочувствавать его, как и в досовсой версии- тоже самое.
Дело в том, что у меня есть уже проекты на асме, хотел бы, хотя бы их частично для начала на Си перевести.
haker_fox
Sep 28 2005, 23:10
Цитата
Дело в том, что у меня есть уже проекты на асме, хотел бы, хотя бы их частично для начала на Си перевести.
Но для этого надо знать Си
А вообще все гладко получилось, после длительных разговоров все-таки сошлись на том, что Си нужно изучать (как бы печально не звучало

) на PC.
Удачи Вам!!!
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.