Чудеса бывают, но очень редко, нужно посмотреть ваш код, и попытаться найти причину.
К сожалению я могу проверить ваш код только с gcc.
Извините если обидел.
Мой блог: http://ziblog.ru
clawham писал(а):наличие отладчика это большой плюс кейла...компактный код - это плюс иара....я пока остаюсь с кейлом...
используются или нет, но после таких ляпов дальше смотреть код и удивляться, на что ушло 20к флеша на моргание светодиода дело не благодарное.clawham писал(а):у меня эти задержки как-бы пока не используются!
Покажи хоть одну недокументированную возможность ?clawham писал(а):. а чтоб ещё и с компилером воевать и его недокументированными особенностями....эт для меня лично перебор...
ну, похоже, под "ни одной" вы понимаете "я где-то немножко читал - там нету". ибо на самом деле все определено стандартом Си.clawham писал(а):1)
ни в одной спецификации языка СИ нет упоминания про запрет использования пустых циклов!
2) ни в одной документации и спецификации языка не расписаны полезные и бесполезные действия которые не несут смысловой нагрузки и из результирующего файла будут выкинуты
3) нигде я не нашел в доках описалово того что именно будет выкинуто из программы и как этого избежать(кроме временного отключения оптимизации для кода прагмой)
4) я нигде не нашел описания механизма инициализации объявленных перемненых типа
int a=0;
точнее не нашел того что =0 может искоренняться а в переменной быть мусор из непроинициализированного регистра/памяти!!!
написал =0 значит ОНО ДОЛЖНО БЫТЬ РАВНО нулю ВВСЕГДА ... помоему это не подлежит сомнению вообще...
Так никто ж не запрещает - делай пустые циклы.clawham писал(а):1)
ни в одной спецификации языка СИ нет упоминания про запрет использования пустых циклов!
язык тут непричем. оптимизатор, как правило, с описанием на языке высокого уровня не работает. оптимизирует либо промежутчный код, либо уже после буквальной трансляции в машинный код.2) ни в одной документации и спецификации языка не расписаны полезные и бесполезные действия которые не несут смысловой нагрузки и из результирующего файла будут выкинуты
будет выкинуто все, что лишнее. прагмы это совсем крайнее средство которое ну ооочень редко когда нужно. все решается куда проще3) нигде я не нашел в доках описалово того что именно будет выкинуто из программы и как этого избежать(кроме временного отключения оптимизации для кода прагмой)
устал я писать общеизвестные истины.4) я нигде не нашел описания механизма инициализации объявленных перемненых типа
int a=0;
точнее не нашел того что =0 может искоренняться а в переменной быть мусор из непроинициализированного регистра/памяти!!!
написал =0 значит ОНО ДОЛЖНО БЫТЬ РАВНО нулю ВВСЕГДА ... помоему это не подлежит сомнению вообще...
не в тему, но микрософтовцы стандарта как раз не придерживаются. Если почитаешь документацию - там много "ms vc specific". есть отдельная опция включения строго следования ANSI C. по умолчанию выключена.в с++ в вижуал студии есть на это дело варнинги что код не имеет смысла НО он его не исключает на любой оптимизации
думается что максрософтовцы всётаки стандарта придерживаются...
Код: Выделить всё
void bufinit()
{
char x;
char y;
unsigned char z;
z=0;
for(y=0; y<MAX_Height;y++)
{
for(x=0;x<MAX_X;x++)
{
DispBuf[y][x] = 0;
}
}
}Код: Выделить всё
lcd_clear();
for(x = 0;x<20;x++)
{
lcd_gotoxy(x, 2);
lcd_putchar(x);
}
Сравнение не верное.clawham писал(а): п.с. я не спорю что иар можно заставить нормально работать....впрочем запорожец тоже может бехи обгонять(при правильном моторе) ... но...мож как-то бэха таки сразу будет лючче...?
Где какие тараканы ?clawham писал(а): помоему чем учить архитектуру я буду изучать компилер и его тараканы....вместо проца и написания прошивки....тогда уж на асм идти..но для арма эт не актуально помоему вообще ниразу...
я так понимаю, volatile для локальной переменной - это нонсенс, т.к. локальная переменная вне контекста функции не существует и не может быть изменена "непредвиденно". поэтому volatile надо ставить для глобальных переменных.clawham писал(а):а на волатилу он тож плюёть...
Несовсем так. Посмотри описание функции longjmp(), там есть намек.Мастер Ломастер писал(а):я так понимаю, volatile для локальной переменной - это нонсенс, т.к. локальная переменная вне контекста функции не существует и не может быть изменена "непредвиденно".clawham писал(а):а на волатилу он тож плюёть...
Для начала, пусть кто-нибудь покажет такой компилятор из более менее распространенных и не первый год существующих -))Мастер Ломастер писал(а): ну а если компилятор и глобальные volatile будет игнорировать - фтопку такой компилятор, имхо!
при 24мхз это будет, видимо, так. чуть чуть больше 1мксclawham писал(а):и всёже могу я попросить правильно написанную функцию задержки на 1 микросекунду не на таймерах!