Перейти к содержанию
    

Напрягает. 128кБ пересобирается за 1-2 минуты.

Мой самый большой проектик занимает 370кБ в тексте и всего 8кБ в бине.

Точно время трансляции определить не смог.

Результат трансляции появляется практически одновременно с нажатием клавиши ентер.

Причём создается впечатление что львиную долю этого времени занимает вывод на экран результата.

Ну даже если предположить что время трансляции 8кБ = 0.1 сек то 128кБ должно длиться около 1.6 сек.

А 1-2 минуты ... я в шоке. :wacko:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мой самый большой проектик занимает 370кБ в тексте и всего 8кБ в бине.

Эко у вас сжимает.

Посмотрел проект: исходники ~900kB, bin - 126kB

 

Результат трансляции появляется практически одновременно с нажатием клавиши ентер.

Причём создается впечатление что львиную долю этого времени занимает вывод на экран результата.

На суперкомпьютере работаете?

 

А 1-2 минуты ... я в шоке. :wacko:

Видимо IAR не может задействовать все ядра проца и HT.

Ну и асм быстрее транслировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эко у вас сжимает.

Дык, целая текстовая сторка превращается в несколько байт.

Посмотрел проект: исходники ~900kB, bin - 126kB

Дык, строка это уже целая подпрограмма.

На суперкомпьютере работаете?

Вроде нет:

7cc8bfa08172.jpg

Ну и асм быстрее транслировать.

100-500

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

zombi

Ну это Вы поскромничали - семь процессоров на борту. Я свои 7-мь ни разу не смог их загнать в ступор.

 

Но я так и не понял , зачем asm нужен линковщик , если уже команды условных переходов и коанды rcall, rjmp вносят ограничения на расположения остального кода зависящего от "возможностей" этих команд.

Да , include не очень оптимизирует код , но вот порядок подключения файлов позволяет подключить файлы использующие прерывания поближе к таблице прерываний , что даёт возможность заменить jmp на rjmp

Изменено пользователем IgorKossak
бездумное цитирование

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну это Вы поскромничали - семь процессоров на борту. Я свои 7-мь ни разу не смог их загнать в ступор.

А шо, у меня их семь? :wacko: а я и не знал :biggrin:

А про ступор и их загнать ниче не понял.

Но я так и не понял , зачем asm нужен линковщик , если уже команды условных переходов и коанды rcall, rjmp вносят ограничения на расположения остального кода зависящего от "возможностей" этих команд.

Да , include не очень оптимизирует код , но вот порядок подключения файлов позволяет подключить файлы использующие прерывания поближе к таблице прерываний , что даёт возможность заменить jmp на rjmp

rcall/call, rjmp/jmp - сомнительная экономия обьёма кода для си трансляторов. :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

rcall/call, rjmp/jmp - сомнительная экономия обьёма кода для си трансляторов. :biggrin:

Там экономия скорее времени исполнения: не 3 цикла, а - 2 (rjmp).

А код не сэконошь: два байта после вектора остаётся , но куда их деть?

 

Да , include не очень оптимизирует код , но вот порядок подключения файлов позволяет подключить файлы использующие прерывания поближе к таблице прерываний , что даёт возможность заменить jmp на rjmp

А что таки Си не позволяет разместить обработчик поближе к таблице векторов?

 

Дык, целая текстовая сторка превращается в несколько байт.

Дык, строка это уже целая подпрограмма.

Вы ж на асме пишете. Тогда - да.

 

zombi

Как сказать: у меня Atom 1.6GHz/1(или 2)GB RAM/2 ядра c HT

Изменено пользователем IgorKossak
бездумное цитирование

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там экономия скорее времени исполнения: не 3 цикла, а - 2 (rjmp).

А код не сэконошь: два байта после вектора остаётся , но куда их деть?

При желании можно искользовать как константы например.

А что таки Си не позволяет разместить обработчик поближе к таблице векторов?

Понятия не имею, но сомневаюсь что он в таблицу векторов rjmp поставит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А шо, у меня их семь? :wacko: а я и не знал :biggrin:

А про ступор и их загнать ниче не понял.

У Вас написано Intel Core I7 - что и означает семь процессоров на борту.

Загнать в ступор - нагрузить работой процессора так , что бы явно система начинала тормозить. Нагрузка процессора 100%. Максимум чего добился я - 80% - нагрузка сразу в несколько тестов 3-D графики.

rcall/call, rjmp/jmp - сомнительная экономия обьёма кода для си трансляторов. :biggrin:

Так они и не экономят, поэтому и растут объёмы FLASH, ведь если СИ-ный asm хорошенько почистить , глядишь и 4к хватит на весь проект и Tiny 2313 :biggrin:

А код не сэконошь: два байта после вектора остаётся , но куда их деть?

Я думаю , что компилятор СИ так не поступит

cbr        temp,0x0F;| Маскируем младшие биты данных в temp
        sbr        temp,1<<LCD_E;| $08;Устанавливем сигнал строба (Е) в one
        outr    LCD_PORT,temp;/ Выводим первый полубайт в порт
;+ И готовим второй , чтобы не ставить "тупые" NOP для задержки
        swap    temp1
        cbr        temp1,0x0F
        cbr        temp,0xF0
        cbi        LCD_Port,LCD_E;" Записываем данные в LCD

 

Но умные люди говорят , что можно ещё более сэкономить , я правда не заморачивался этим вопросом.

В одном из asm кодов от Си видел такие сочетания

 brne met1
met1: rjmp met2
met2 : ...........

 

Но вернёмся к теме , так нужен ли линковщик для asm?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У Вас написано Intel Core I7 - что и означает семь процессоров на борту.

Вы к 1 апреля готовитесь?

P.S. Не процессоров, а ядер. Не 7, а 2-4-6.

 

Так они и не экономят, поэтому и растут объёмы FLASH

Вы утверждаете что обработчики где-то далеко-далеко располагают?

 

ведь если СИ-ный asm хорошенько почистить , глядишь и 4к хватит на весь проект и Tiny 2313 :biggrin:

Безусловно, лет за 5-10 можно всё на асм переписать и оптимизировать (процентов на 10-50), Но кому оно тогда будет нужно?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не процессоров, а ядер. Не 7, а 2-4-6.

Да бог с ним сколько у него процов/ядер, главное шустрый и меня устраивает.

ЗЫ.А что такое 2-4-6?

Оный вроде как : четырехъядерный процессор поддерживает 8 вычислительных потоков и имеет дополнительную кэш-память 3-го уровня.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Безусловно, лет за 5-10 можно всё на асм переписать и оптимизировать (процентов на 10-50), Но кому оно тогда будет нужно?

Согласен. Время=деньги.

 

Но вернёмся к теме , так нужен ли линковщик для asm?

Мне нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Безусловно, лет за 5-10 можно всё на асм переписать и оптимизировать (процентов на 10-50), Но кому оно тогда будет нужно?

 

Ну по этому поводу мы спорить не будем. Хотя asm имеет достаточно инструментов , что бы сократить время написания программ.

 

Я так понял , что никто не пробывал применять линковщик для asm?

 

Zombi:

 

Как на одном регистре сделать счётчик до 0x100 =256?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Zombi:

 

Как на одном регистре сделать счётчик до 0x100 =256?

Варианты ответов:

A: сколько бит имеет регистр?

B: если нужно 256 состояний регистра и оный 8-ми битный то всё уже сделано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Варианты ответов:

A: сколько бит имеет регистр?

B: если нужно 256 состояний регистра и оный 8-ми битный то всё уже сделано.

 

8- бит =255 = 0xFF на 256-ом выставляется флаг zero, соответсвенно переход- и не учитывается.

 

Если вычислять среднее , то делая 256 отсчётов , в старшем регистре зарезервированного под вычисление среднего, сразу будет находится необходимое значение. И дополнительных действий по делению не требуется.

 

Всё , спасибо , решил

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...