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

 
 
> Оптимальный тип переменной для ARM, философский вопрос...
Dog Pawlowa
сообщение Mar 17 2009, 07:34
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Как-то привык на 8 и 16-разрядными контроллерами не использовать больше, чем нужно.
При работе с ARM экономить нет смысла по большому счету, если только не массивы.
Логично?
А что с заимствованным кодом делать? Ручками переделывать там, где быстродействие критично?


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 9)
meister
сообщение Mar 17 2009, 07:41
Сообщение #2


Местный
***

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



Цитата(Dog Pawlowa @ Mar 17 2009, 11:34) *
Как-то привык на 8 и 16-разрядными контроллерами не использовать больше, чем нужно.
При работе с ARM экономить нет смысла по большому счету, если только не массивы.
Логично?
А что с заимствованным кодом делать? Ручками переделывать там, где быстродействие критично?


Если код правильный - на этот случай там должны быть типы как size_t, diffptr_t и указатели.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Mar 17 2009, 08:11
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Dog Pawlowa @ Mar 17 2009, 11:34) *
При работе с ARM экономить нет смысла по большому счету, если только не массивы.
Логично?



Пользоваться типами stdint.h: uint8_t, uint_fast8_t etc


Причем, чем раньше (на этапе проектирования) возникнет вИдение, где надо именно 8/16/32 бит, а где чтоб проц не ложился от неоптимальных операций - тем меньше переделывать. Заимствованный код как правило не обладает такой прозорливостью smile.gif
Go to the top of the page
 
+Quote Post
KRS
сообщение Mar 17 2009, 08:19
Сообщение #4


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Если использоватьС99
то как сказал _Pasha использовать uintX_t uint_fastX_t
но есть один ньюанс smile.gif
для хранения в памяти использовать _fast не оптимально - выгрыша в производительности нет, а пямять будет расходоваться больше.
Поэтому для локальных переменных (которые могут располагаться в регистрах) использовать fast, а для памяти обычные типы. И работать с переменными - загружать в локальную _fast, обрабатывать и сохранять в память, тогда код оптимальный будет. ( и на 8ми разрядном тоже)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Mar 17 2009, 08:50
Сообщение #5


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(KRS @ Mar 17 2009, 12:19) *
но есть один ньюанс

Почему только один? Любой ввод-вывод - сплошные ньюансы. Поля структур, которые, в принципе, могут полететь во внешний мир, будь то файл или пакет - туда уж точно fast и least не лезут smile.gif
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Mar 17 2009, 09:24
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(_Pasha @ Mar 17 2009, 12:50) *
Поля структур, которые, в принципе, могут полететь во внешний мир...

Да-да. Памяти вроде много, но куда ни копнешь - ко всему нужно подстраиваться и изучать.
Эти массивы структур переложить бы в SDRAM, так и тут нужно с конфигурацией линкера разбираться.
Похоже, у иаровцев шило в этом месте, не могут не поменять формат от версии к версии. cranky.gif
Это был злостный нервный оффтопик smile3046.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 17 2009, 09:38
Сообщение #7


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Похоже, у иаровцев шило в этом месте, не могут не поменять формат от версии к версии.


Ну перейти на ELF-формат объектников - это правильный ход со стороны IAR'овцев. Под шумок и формат скриптов поменяли. Но это не смертельно - в принципе, разбираться там часа два, не больше.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
KRS
сообщение Mar 17 2009, 09:44
Сообщение #8


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Dog Pawlowa @ Mar 17 2009, 12:24) *
Эти массивы структур переложить бы в SDRAM, так и тут нужно с конфигурацией линкера разбираться.
Похоже, у иаровцев шило в этом месте, не могут не поменять формат от версии к версии. cranky.gif

так у них XCL формат уже давнооо не менялся. А в 5.x ARM они вынуждены были его сменить из-за ABI. Зато теперь можно разными компилерами компилить и линкерами разными собирать ( только напильником обработать некоторые места, проблемы с библиотеками вылезут, но если какой то исходник не использует библиотек его можно скомпилировать другим компилятором)
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 17 2009, 09:45
Сообщение #9


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



По теме. В любом случае выгоднее грузить и выгружать в память переменные пачками. Иногда даже разбирать в рукопашную считанную из памяти в регистр 32хбитную переменную на байтовые и преобразовывать их в размер регистра перед использованием, а после использования склеивать обратно и сохранять. Но это уже настолько врукопашную, что я даже не знаю, могут ли такие приземленные материи интересовать философов smile.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Mar 17 2009, 10:00
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Rst7 @ Mar 17 2009, 13:45) *
Но это уже настолько врукопашную, что я даже не знаю, могут ли такие приземленные материи интересовать философов smile.gif

Нет, конечно, мы смотрим на звезды!
Сейчас пока быстродействие некритично, но не весь GUI прописан, может еще что вылезет.

Но чтобы ставить красивые заплаты на свой и чужой код, учту smile.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 09:36
Рейтинг@Mail.ru


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