|
local register variable, в определённом регистре |
|
|
|
Sep 30 2008, 09:56
|

Местный
  
Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035

|
Коллеги, у меня есть код, который собирается с помощью avr-gcc, необходимо сделать чтобы он теперь собирался и с помощью IAR. Возникли проблемы с ассемблерными вставками, а в частности я не понимаю, как мне разместить локальную переменную в фиксированном регистре внутри функции. Вот как это у меня реализованно на gcc. Есть какие нибудь идеи как сделать аналогично на iar. Код static uint16_t halMeasurement(void) { register volatile uint16_t cnt asm ("r24") = 0; ... ... ... return cnt; } В документации нашёл только как подобное сделать с глобальными переменными, но это не то.
|
|
|
|
|
 |
Ответов
|
Oct 1 2008, 07:22
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 21-02-06
Пользователь №: 14 561

|
Цитата(xelax @ Sep 30 2008, 13:56)  static uint16_t halMeasurement(void) { register volatile uint16_t cnt asm ("r24") = 0; ... ... ... return cnt; } [/code]
В документации нашёл только как подобное сделать с глобальными переменными, но это не то. ...попробуйте вот так Код static uint16_t halMeasurement(void) { static __regvar __no_init uint16_t cnt @ 14; ... ... ... return cnt; } будут использоваться регистры R14,R15
|
|
|
|
|
Oct 1 2008, 08:03
|

Местный
  
Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035

|
Цитата(tag @ Oct 1 2008, 11:22)  ...попробуйте вот так Код static uint16_t halMeasurement(void) { static __regvar __no_init uint16_t cnt @ 14; ... ... ... return cnt; } будут использоваться регистры R14,R15 Это понятно, примерно такое я нашёл в мануале на компилятор. Но проблема в том, что это static переменная, а меня интересует именно локальная. Так что такой вариант не прокатит. К стати иаровский support тоже предложил переписать код на асме, так как оптимизатор может по своему такие вещи наоптимизировать. Видимо прийдётся переписать на чистом асме как все нормальные ПАЦЦАНЫ  , но остаюсь при своём мнении, что за такую кучу баблосов(причём за каждое рабочее место) могли бы сделать более широкую функциональность.
|
|
|
|
Сообщений в этой теме
xelax local register variable Sep 30 2008, 09:56 Dog Pawlowa Цитата(xelax @ Sep 30 2008, 12:56) Есть к... Sep 30 2008, 14:14 xelax Цитата(Dog Pawlowa @ Sep 30 2008, 18:14) ... Sep 30 2008, 14:21 Rst7 ЦитатаВозникли проблемы с ассемблерными вставками
... Oct 1 2008, 04:50 xelax Что-то как-то грустно это всё... IAR немалых денех... Oct 1 2008, 05:39 MrYuran //размещаем в свободных регистрах ввода/вывода
__n... Oct 1 2008, 05:46 Rst7 ЦитатаIAR немалых денех стоит, а функционал компил... Oct 1 2008, 06:01 zltigo Цитата(Rst7 @ Oct 1 2008, 08:01) С точки ... Oct 1 2008, 06:30  xelax Отлично, определились.
Я мелкий пижон, который пиш... Oct 1 2008, 07:03 Rst7 ЦитатаА помимо флуда есть что-то по существу?
Вам... Oct 1 2008, 07:19   xelax Цитата(zltigo @ Oct 1 2008, 12:38) Вы бы ... Oct 1 2008, 09:04    tag Цитата(xelax @ Oct 1 2008, 13:04) Первую ... Oct 1 2008, 09:38    zltigo Цитата(xelax @ Oct 1 2008, 11:04) Более т... Oct 1 2008, 09:51     xelax Цитата(zltigo @ Oct 1 2008, 13:51) Это не... Oct 1 2008, 10:31      zltigo Цитата(xelax @ Oct 1 2008, 12:31) Вот это... Oct 1 2008, 10:43       xelax Цитата(zltigo @ Oct 1 2008, 14:43) Вы к э... Oct 1 2008, 13:46        zltigo Цитата(xelax @ Oct 1 2008, 15:46) вот уж ... Oct 1 2008, 14:11         xelax Цитата(zltigo @ Oct 1 2008, 18:11) Докуме... Oct 1 2008, 15:13 Rst7 ЦитатаКод который я был ВЫНУЖДЕН написать на асмов... Oct 1 2008, 09:27 Rst7 ЦитатаИзмерения нужны для калибровке RC генератора... Oct 1 2008, 10:50 Rst7 ЦитатаСпасибо, думаю в дальнейшем пригодится.
Пож... Oct 1 2008, 15:34 xelax Цитата(Rst7 @ Oct 1 2008, 19:34) Пожалуйс... Oct 1 2008, 15:52  singlskv Цитата(xelax @ Oct 1 2008, 19:52) На боль... Oct 1 2008, 19:43 Rst7 ЦитатаА как собственно вы можете гарантировать так... Oct 1 2008, 16:21 xelax Цитата(Rst7 @ Oct 1 2008, 20:21) Я не мог... Oct 1 2008, 19:07
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|