Мастер Ломастер писал(а):это очень хороший компилятор, если на высоком уровне оптимизации код не работает
Сарказм не к месту... Иар позиционируется как один из лучших компиляторов. Т.к. коммерческий. И чтобы включать оптимизацию medium необходимо хорошо знать Си. А для high - знать возможности и механизмы компилятора. И мой пост выше был предназначен пользователю, а не высказыванию за иар
asteroid7 писал(а):На программу не хватает около 100 байт. Попробуйте включить оптимизатор по "size". Alt+F7 -> C/C++Compiler -> Optimizations. Выбрать Low или, в крайнем случае, Medium. При уровне High код может не заработать.
Оптимизация не помогает. Почему может не хватать, если массив во флеше, а программа не такая уж и большая
Так это-ж Ваш кусок кода! У Вас изначально был массив char заполненный 0xff. И Вы писали, что он 1 кило. Затем Вы переделали его на int и заполнили 1-ками. При этом размер массива стал 2 кило.
— Не говорите мне что делать и я не скажу куда Вам идти...
Lockdog писал(а):Оптимизация не помогает. Почему может не хватать, если массив во флеше, а программа не такая уж и большая
В настройках установите контроллер m32 или m64. В настройка линкера: Откомпилите. В папке проекта Output в конце файла <проект>.map покажите распределение сегментов SEGMENTS IN ADDRESS ORDER.
Друзья, подскажите, как избавиться от варнингов: Warning [752] conversion to shorter data type ? Компилятор PICC так ругается, когда я присваиваю переменной константое выражение содержащее операции сдвига, например:
lix, увы, не помогает. Хотя такая запись, пожалуй, правильнее. Да, и похоже что наличие логических операторов в выражении автоматом расширяет результат до 16 бит:
извиняюсь за оффтоп. Доброго времени суток, коты! Ввопрос немного не по теме, здесь приведу только ссылку на другую тему. Просмотров темы много, а ответов нет, может все боятся Си? А здесь в основном знатоки Си, да и подфорум про микроконтроллеры. В общем у кого есть время, просьба хотя бы прочесть первое сообщение в этой теме про алгоритм приема пакета по UART.
Последний раз редактировалось ibiza11 Чт июн 09, 2011 09:00:53, всего редактировалось 1 раз.
Господа, подскажите пожалуйста как из байтового хексового числа (например 0x37) сделать десятичное число (37), и обратно? Сколько уже бьюсь все никак не выходит... Или может существуют какие-то спец функции для этого (для CVAVR) ?
Опыт приходит сразу после того, как он был нужен...
Волосатый писал(а):Господа, подскажите пожалуйста как из байтового хексового числа (например 0x37) сделать десятичное число (37), и обратно?
Хитро... обычно переводят 37h <—> 55. Алгоритм-то перевода простой: берём первую тетраду (3), домножаем на 10 (3*10=30) и прибавляем вторую (30+7=37). По хорошему ещё проверяем, не больше ли 9 каждая цифра.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Волосатый писал(а):Господа, подскажите пожалуйста как из байтового хексового числа (например 0x37) сделать десятичное число (37), и обратно?
Хитро... обычно переводят 37h <—> 55. Алгоритм-то перевода простой: берём первую тетраду (3), домножаем на 10 (3*10=30) и прибавляем вторую (30+7=37). По хорошему ещё проверяем, не больше ли 9 каждая цифра.