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

 
 
> Быстрая разработка программ для AVR
Yura_K
сообщение May 5 2006, 19:18
Сообщение #1


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

Группа: Свой
Сообщений: 185
Регистрация: 5-05-06
Из: Ekaterinburg, Russia
Пользователь №: 16 821



Возник вопрос, при помощи чего можно ускорить разработку программ. Представляется несколько вариантов. Во-первых, использование высокоуровневого языка - C. Но у компиляторов не слишком мощная оптимизация и все равно приходится использовать asm-е вставки. Во-вторых, использование библиотек готовых функций (возможна и для asm-а, и для C). В-третьих, возникли мысли о некой прослойке (интерфейсе) между функц. узлами uC и программой, так чтобы написание как повторяющегося кода, так и нового свести к возможному минимуму. Также возможно использование некой RTOS. Ваши мысли по сабжу?


--------------------
Чудес не бывает - бывает мало знаний и опыта!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Bill
сообщение May 6 2006, 13:03
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(Yura_K @ May 5 2006, 22:18) *
Но у компиляторов не слишком мощная оптимизация и все равно приходится использовать asm-е вставки. Во-вторых, использование библиотек готовых функций (возможна и для asm-а, и для C). В-третьих, возникли мысли о некой прослойке (интерфейсе) между функц. узлами uC и программой, так чтобы написание как повторяющегося кода, так и нового свести к возможному минимуму. Также возможно использование некой RTOS. Ваши мысли по сабжу?

Насчет возможностей оптимизации в компиляторах, я думаю, Вы несколько заблуждаетесь. Ручная оптимизация кода, сгенерированного компилятором, позволит сократить программу примерно на 10%, не более. Все зависит от того, как именно написана программа. Использование ассемблерных вставок практического эффекта не дает, поскольку эти вставки ограничивают возможности компилятора оптимизировать программу. Если все же требуется "выжать" из программы десяток байт или пяток микросекунд, то тогда лучше написать соответствующую функцию целиком на ассемблере и выделить ее в отдельный модуль.
Насчет библиотек функций Вы правильно заметили. Именно использование библиотечных функций и дает возможность ускорить разработку программы. Возможно странслировать интерфейсные функции и также поместить их в библиотеку. Кстати, здесь возможности ассемблера (+ линкера) гораздо шире, чем у компилятора. Ассемблер позволяет определять глобальные символы на уровне порта или даже бита, без необходимости использования заголовочных файлов. Странслировав такой модуль один раз и поместив его в библиотеку, далее можно просто про него забыть. Единственно, что нужно будет потом сделать, это присвоить портам или битам конкретные значения, которые могут изменяться от проекта к проекту.
Использование RTOS тоже способствует ускорению создания программ, поскольку программа разбивается на ряд задач, работающих под управлением такой RTOS. В этом случае добавление или изменение какой-то функции может рассматриваться как добавление еще одной задачи или модификация существующей, без переработки заново всей программы в целом. Только нужно помнить, что работа самой RTOS требует дополнительных ресурсов, как по времени, так и по памяти.
Go to the top of the page
 
+Quote Post
maksimp
сообщение Jan 25 2012, 07:02
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023



Цитата(_Bill @ May 6 2006, 17:03) *
Если все же требуется "выжать" из программы десяток байт или пяток микросекунд, то тогда лучше написать соответствующую функцию целиком на ассемблере

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

Отсюда:
http://betterembsw.blogspot.com/2011/05/es...e-handouts.html
Цитата
For typical embedded
hardware/software costs:
* If production run is less than 1 MILLION units Resources should be no more than 80% full
* If production run is less than 10K units Resources should be no more than 50% full

Цитата
Zero Is The Right Amount of Assembly Code


С форума avrfreaks.net:
Цитата
The issue is when you start bumping up against ANY chip limitation (memory, speed, # I/Os, timers, etc). It gets more expensive to work to fit an application into the resources as you spend more time designing and coding against the limitations, as opposed to designing and coding against the requirements.

Go to the top of the page
 
+Quote Post
ARV
сообщение Jan 25 2012, 07:28
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(maksimp @ Jan 25 2012, 11:02) *
Ускорение может быть достигнуто если этого не делать. Взять контроллер с большими возможностями, на котором этого не требуется для поставленной задачи.
даже и не знаю, что можно возразить... с одной стороны, сколько себя помню, всегда шла речь об интенсивном использовании имеющихся ресурсов, т.е. максимального извлечения из них всего, что можно, а не экстенсивным, т.е. просто увеличением объема слабовыжатых ресурсов. это было всегда: от посевных площадей (всегда считали центнеры с га) до нефти и газа (в пользу идет все - от мазута до легчайшего CH4). с другой стороны, практика последних лет убеждает, что на самом деле все наоборот: вместо того, чтобы сделать что-то (с усилиями) на меньшем, правильнее сделать то же самое на бОльшем (но без усилий). правда, этот экстенсивный путь в основном прижился в электронике, благодаря чему последние годы производители просто из кожи вон лезут для того, чтобы хоть чем-то "нагрузить" разросшиеся непомерно возможности, например, возьмите ОС: 90% возможностей остались на уровне 20-летней давности, но их реализация обвешана 32-битной 3D-графикой... оборочки стали весить больше платья...

извините за оффтоп - наболело...




--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jan 25 2012, 08:53
Сообщение #5


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(ARV @ Jan 25 2012, 09:28) *
... с одной стороны, сколько себя помню, всегда шла речь об интенсивном использовании имеющихся ресурсов, т.е. максимального извлечения из них всего, что можно, а не экстенсивным, т.е. просто увеличением объема слабовыжатых ресурсов. это было всегда

И это перед кем же такие задачи ставятся?
Не помню ни одного заказчика (мы здесь говорим об электронике), которому было бы не по барабану какие "ресурсы" имеет то или иное инженерское решение поставленной задачи. Это разработчики обычно изголяются по бедности, чтобы из минимума выжать максимум в надежде максимально сэкономить на комплектующих. Сейчас уже другие времена и 80% запас ресурсов никого не волнует. Сейчас основной параметр эффективности - это не мегагерцы, не мегабайты и не количество лишних ножек, это time to market, что бы там не говорили апологеты ассемблерных вставок.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Yura_K   Быстрая разработка программ для AVR   May 5 2006, 19:18
- - haker_fox   Цитата(Yura_K @ May 6 2006, 04:18) Возник...   May 6 2006, 01:30
- - Andy Mozzhevilov   Цитата(Yura_K @ May 6 2006, 01:18) Возник...   May 6 2006, 07:18
- - Yura_K   Цитата"выжать" из программы десяток байт...   May 6 2006, 14:12
|- - eci   Цитата(Yura_K @ May 6 2006, 17:12) Цитата...   May 11 2006, 00:10
|- - haker_fox   Цитата(eci @ May 11 2006, 09:10) Цитата(Y...   May 11 2006, 01:53
- - *SERG   Вообще не понимаю..........не оптимальный код........   May 11 2006, 02:18
|- - haker_fox   Цитата(*SERG @ May 11 2006, 11:18) Вообще...   May 11 2006, 03:05
|- - sK0T   Цитата(haker_fox @ May 11 2006, 07:05) Мн...   May 11 2006, 03:20
||- - _Bill   Цитата(sK0T @ May 11 2006, 06:20) Оптимал...   May 11 2006, 08:43
|- - skopus   Цитата(haker_fox @ May 11 2006, 07:05) Мн...   May 17 2006, 10:54
|- - haker_fox   Цитата(skopus @ May 17 2006, 19:54) Цитат...   May 18 2006, 01:07
|- - Kopa   Цитата(haker_fox @ May 18 2006, 04:07) .....   May 18 2006, 07:01
- - Kopa   Цитата(Yura_K @ May 5 2006, 22:18) Возник...   May 11 2006, 03:48
- - Yura_K   2*SERG Привет взаимно! В принципе я согласен п...   May 11 2006, 17:07
- - _artem_   ИМХО, в больших (начиная с нескольких десятков КБ)...   May 11 2006, 18:08
- - Yura_K   Цитатаинтуитивное написание программы , убыстрение...   May 13 2006, 22:00
- - _artem_   ЦитатаЦитата интуитивное написание программы , убы...   May 13 2006, 22:45
- - Yura_K   Спасибо за ссылку.   May 14 2006, 11:20
- - beer_warrior   Если знать особенности генерации кода компилятором...   May 17 2006, 18:25
- - Kopa   Тема данного топика интересна и возможно есть хоро...   Jan 24 2012, 17:50
|- - ASZ   Зачастую пересмотр самого алгоритма работы дает на...   Jan 25 2012, 03:55
- - _Pasha   Тоже наболело, но в другой плоскости. Проходит вре...   Jan 25 2012, 07:52
- - maksimp   Цитата(_Pasha @ Jan 25 2012, 11:52) мульт...   Jan 25 2012, 08:47


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

 


RSS Текстовая версия Сейчас: 25th June 2025 - 14:03
Рейтинг@Mail.ru


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