реклама на сайте
подробности

 
 
> Компилятор компилит лишний код..., Кто может помогите..........
Potter
сообщение Jun 22 2006, 20:22
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 151
Регистрация: 27-05-06
Из: Харьков
Пользователь №: 17 508



Компилятор IAR Embedded Workbench. Создаю пустой проект(подключаю библиотеки и создаю функцию main):


#include <stdio.h>
#include <io2313.h>
#include <ina90.h>
#include <string.h>

void main(void)
{

}

Компилю хекс файл. В файле уже кода на 48 байт. Я слышал что если где-то в опциях проекта убрать или поставить галочку то этих 48 байт не будет. Настроил проект чтоб оптимизировал по объему памяти... Дело в том что я создал проект под AT90S2313. Невлизает буквально пару десятков байт.... Если етот лишний код убрать то все влезет.... Где надо покапаться в опциях проекта?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Jun 22 2006, 21:08
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Под мелкие чипы у которых меньше 16k flash на C не особо разгонишься..

Цитата
Объем кода уменьшился как раз на 20 байт!!! А что это за галачка? За что она отвечает?!

Это разовая экономия. Переведите Initialize unused interrupt vectors и вам сразу станет понятно "за что она отвечает".
Go to the top of the page
 
+Quote Post
vet
сообщение Jun 22 2006, 21:17
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Цитата(defunct @ Jun 23 2006, 01:08) *
Под мелкие чипы у которых меньше 16k flash на C не особо разгонишься..

Категорично как-то. По мне, так в линейке АВР выбирать асм стоит только для tiny13 (11,12).
IAR - умная софтина, и оптимизировать код позволяет очень гибко.

Цитата(Potter @ Jun 23 2006, 01:04) *
Объем кода уменьшился как раз на 20 байт!!! А что это за галачка? За что она отвечает?!

Просто сравните код с галкой и без, и станет понятно. По умолчанию компилятор заполняет все вектора.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 22 2006, 22:40
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(vet @ Jun 23 2006, 00:17) *
Категорично как-то. По мне, так в линейке АВР выбирать асм стоит только для tiny13 (11,12).
IAR - умная софтина, и оптимизировать код позволяет очень гибко.

Для меня так категорично. (<16k - строго асм) Т.к. я не на память смотрю, а на MIPSы у процессора. Если их достаточно для решения задачи, так почему бы их не использовать в полном объеме не смотря на крохотный объем памяти программ.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Potter   Компилятор компилит лишний код...   Jun 22 2006, 20:22
- - beer_warrior   Скомпилируйте в ассемблер и все станет ясно: 1.Век...   Jun 22 2006, 20:38
|- - Potter   Цитата(beer_warrior @ Jun 22 2006, 23:38)...   Jun 22 2006, 20:46
- - vet   Соптимизируйте лучше саму программу, уж на 20 байт...   Jun 22 2006, 20:51
|- - Potter   Цитата(vet @ Jun 22 2006, 23:51) Соптимиз...   Jun 22 2006, 20:55
- - vet   Ещё совет - уберите галку General Options - System...   Jun 22 2006, 20:59
|- - Potter   Цитата(vet @ Jun 22 2006, 23:59) Ещё сове...   Jun 22 2006, 21:04
- - beer_warrior   ЦитатаОбъем кода уменьшился как раз на 20 байт...   Jun 22 2006, 21:11
- - Potter   Всем за все огромное спасибо...   Jun 22 2006, 21:39
- - arttab   Из общих советов: нет ли переменных длинее char, х...   Jun 23 2006, 01:43
- - prottoss   Еще, иногда, помогает __no_init перед объявлением ...   Jun 23 2006, 02:35
- - Kovrov   Поддерживаю defunct только как для меня оно ещё су...   Jun 23 2006, 06:19
- - IgorKossak   Ещё один прямой ответ на поставленный вопрос. 48 ...   Jun 23 2006, 06:38


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 05:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01411 секунд с 7
ELECTRONIX ©2004-2016