Без описания |
Поиск в теме | Версия для печати |
mogikanin |
Отправлено: 13 Февраля, 2011 - 15:24:15
|
Рядовой
Сообщений всего: 10
Дата рег-ции: Февр. 2011
|
Белый Волк пишет:С каким уровнем оптимизации Вы компилируете код?
Для меня этот вопрос непонятен. Я даже не знаю, как это сделать в AVRStudio4.
Белый Волк пишет:В моём опыте с ATmega16, в режиме без оптимизации код был сгенерирован некорректно. При просмотре полученного кода ассемблера, я так и не смог установить, почему код не работает. Однако проблема была решена включением максимальной оптимизации компиляции.
О каком программном модуле идёт речь(интерфейс. EEPROM или ещё что-то, с чем я ещё не имел дела)? |
|
|
mogikanin |
Отправлено: 14 Февраля, 2011 - 07:20:48
|
Рядовой
Сообщений всего: 10
Дата рег-ции: Февр. 2011
|
nest пишет:Project -> Configuration Options -> во вкладке General -> Optimization
Обалдеть!!!! При уровне оптимизации 01 тестовая программа сразу пошла! Даже не знаю, как выразить благодарность! Сейчас буду пробовать основную программу и железо. Но почему в Ассемблере всё работало по умолчаниям, а для СИ потребовалась такая операция? Что-то на Atmel не похоже. В "Хелпе" пока ничего не смог найти по этим вопросам.
Белый Волк пишет:Приложите, пожалуйста, исходный код.
Может теперь это не имеет смысла? Если настаиваете, я вышлю свою тестовую программку.
nest пишет:А как вас угораздило к СИ обратиться?
Для дисплеев с сенсорным экраном идут библиотеки на СИ. Пришлось все свои программы переводить с Ассемблера на СИ и осваивать новую для "железячника" систему программирования. |
|
|
mogikanin |
Отправлено: 14 Февраля, 2011 - 08:54:47
|
Рядовой
Сообщений всего: 10
Дата рег-ции: Февр. 2011
|
Белый Волк пишет:Что касается оптимизации: компилятор допускает какую-то ошибку при трансляции в код ассемблера, причём ошибка, похоже, не в последовательности действий а в содержимом одного из регистров. Когда Вы пишете программу на ассемблере, компилятор собирает её "как есть", поэтому проблемы не возникали.
А-а-а... Ну, это очень похоже на правду. Точно могут утверждать только разработчики компилятора, я полагаю?
Спасибо за помощь!
(Добавление)
Железо тоже заработало, как в Ассемблере! Ещё раз спасибо!
Вот только непонятно: в предыдущих обсуждениях (до меня) этот приёмчик даже не обсуждался, почему-то у них и так заработало, а у меня только через "оптимизацию". Или я что-то упустил?
Есть ещё просьба: пока не было необходимости встроить код Ассемблера в программу (функцию) СИ, но, похоже это надо уметь. Нет ли простого примера, как это сделать? (Что надо сделать предварительно в СИ, что в Ассемблере и как потом вызвать). Или где эти примеры для чайников? Извините за назойливость. |
|
|
mogikanin |
Отправлено: 14 Февраля, 2011 - 10:52:23
|
Рядовой
Сообщений всего: 10
Дата рег-ции: Февр. 2011
|
nest пишет:что то типа такого:
asm("sbi PORTB,1""\n" ;
но есть страшные подводные камни .
Мне попадались и (asm) и (_asm), но никак не пойму, что правильно и где тут Ассемблерный код, и зачем кавычки, ну и т.д. Чайник, что тут ещё про меня скажешь.
nest пишет:Так с чего вы вдруг к СИ обратились? Просто интересно, на чём споткнулся носитель исходного языка ?
Может я вопрос не понял. Носитель исходного языка (Ассемблер) нигде не спотыкался, всё работало отлично. Просто возникла необходимость использовать дисплеи с сенсорной панелью (TouchScreen). А для дисплеев с сенсорным экраном идут библиотеки на СИ, которые просто встраиваются в программы, но СИ. Иначе эти программы пришлось бы "рожать" самому в Ассемблерном варианте, что затягивает сроки разаработок. Вот и пришлось все свои программы переводить с Ассемблера на СИ и осваивать новый для "железячника" язык программирования СИ. До этого я использовал цифровые и графическо-цифровые примитивные монохромные дисплеи. |
|
|
|
Поиск в теме | Версия для печати |
Страниц (3): « 1 [2] 3 » |
« Делимся опытом » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|
|
|