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

 
 
> Глюк ИАРа или мой?, Почему ИАР не дает проинициализировать статический атрибут класса
lamerok
сообщение May 14 2007, 06:44
Сообщение #1


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

Группа: Свой
Сообщений: 135
Регистрация: 22-06-04
Из: Челябинск
Пользователь №: 88



Посмотрите плз картинку. Почему ИАР ругается на инициализацию статического члена класса, при этом на инициализацию не статического члена говорит, что атрибут должен быть статическим????.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lamerok
сообщение May 16 2007, 07:05
Сообщение #2


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

Группа: Свой
Сообщений: 135
Регистрация: 22-06-04
Из: Челябинск
Пользователь №: 88



Вот что получается... в мар файле Мои переменные лежат в коде сегменте
Код
NEAR_C
  Relative segment, address: CODE 00000406 - 00000411 (0xc bytes), align: 0
  Segment part 9.             Intra module refs:   cClassDirector::cClassDirector()
           ENTRY                   ADDRESS         REF BY
           =====                   =======         ======
           cClassDirector::initialVoltValueRange
                                   0000040A
           cClassDirector::initialCurValueRange
                                   0000040E
           cClassDirector::initialTestValue
                                   00000406


а в ассемблере берутся из ОЗУ....

Код
internalVolt = initialUSLValue;
   \   000000D8   ....               LDI     R30, LOW(??initialVoltValueRange)
   \   000000DA   ....               LDI     R31, (??initialVoltValueRange) >> 8
   \   000000DC   8100               LD      R16, Z
   \   000000DE   8111               LDD     R17, Z+1
   \   000000E0   8122               LDD     R18, Z+2
   \   000000E2   8133               LDD     R19, Z+3
   \   000000E4   01FC               MOVW    R31:R30, R25:R24
   \   000000E6   5AE6               SUBI    R30, 166
   \   000000E8   4FFF               SBCI    R31, 255
   \   000000EA   8300               ST      Z, R16
   \   000000EC   8311               STD     Z+1, R17
   \   000000EE   8322               STD     Z+2, R18
   \   000000F0   8333               STD     Z+3, R19


И что это ИАР сделал, то что я ему написалsmile.gif
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение May 16 2007, 16:54
Сообщение #3


Шаман
******

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



Цитата(lamerok @ May 16 2007, 14:05) *
Вот что получается... в мар файле Мои переменные лежат в коде сегменте
Код
NEAR_C
  Relative segment, address: CODE 00000406 - 00000411 (0xc bytes), align: 0
  Segment part 9.             Intra module refs:   cClassDirector::cClassDirector()
           ENTRY                   ADDRESS         REF BY
           =====                   =======         ======
           cClassDirector::initialVoltValueRange
                                   0000040A
           cClassDirector::initialCurValueRange
                                   0000040E
           cClassDirector::initialTestValue
                                   00000406


а в ассемблере берутся из ОЗУ....
...
И что это ИАР сделал, то что я ему написалsmile.gif

NEAR_C это сегмент данных-констант, лежащий как раз там, где ему указано лежать линкером. А это может быть во внешней ПЗУ/ЕЕПРОМ/ФЛЕШ/и как ни странно ОЗУ. Проверьте настройки командного файла линкера.
В любом случае доступ к ней как к памяти данных, а не программы, потому и через Z.

Цитата
(Сергей Борщ @ May 16 2007, 13:59)

Такое в С++ делать можно. Раз вы этого не знаете - последуйте своему совету:

См картинку раздел 4........

В выделенном Вами разделе речь идёт об интегральных (т. е. целых) и перечислимых типах, но никак не о плавающей точке.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- lamerok   Глюк ИАРа или мой?   May 14 2007, 06:44
- - Сергей Борщ   Цитата(lamerok @ May 14 2007, 09:44) Посм...   May 14 2007, 12:00
- - IgorKossak   Статические члены класса определяются и инициализи...   May 14 2007, 15:26
- - lamerok   Цитата(Сергей Борщ @ May 14 2007, 15:00) ...   May 15 2007, 02:31
|- - dxp   Цитата(lamerok @ May 15 2007, 09:31) Т.е....   May 15 2007, 03:15
|- - lamerok   Цитата(dxp @ May 15 2007, 06:15) А с чего...   May 15 2007, 03:43
|- - Сергей Борщ   Цитата(lamerok @ May 15 2007, 06:43) Но т...   May 15 2007, 10:27
|- - IgorKossak   Цитата(Сергей Борщ @ May 15 2007, 17:27) ...   May 15 2007, 15:51
||- - zltigo   Цитата(IgorKossak @ May 15 2007, 22:51) Э...   May 15 2007, 16:32
|- - lamerok   Цитата(Сергей Борщ @ May 15 2007, 17:27) ...   May 16 2007, 00:11
|- - Сергей Борщ   Цитата(lamerok @ May 16 2007, 07:11) Каже...   May 16 2007, 04:31
- - lamerok   Цитата(Сергей Борщ @ May 16 2007, 11:31) ...   May 16 2007, 05:23
|- - Сергей Борщ   Цитата(lamerok @ May 16 2007, 12:23) Поче...   May 16 2007, 06:59
|- - lamerok   Цитата(Сергей Борщ @ May 16 2007, 13:59) ...   May 16 2007, 08:23
|- - lamerok   Цитата(IgorKossak @ May 16 2007, 23:54) N...   May 17 2007, 00:57
|- - Сергей Борщ   Цитата(lamerok @ May 17 2007, 07:57) Но к...   May 17 2007, 03:05
||- - lamerok   Цитата(Сергей Борщ @ May 17 2007, 10:05) ...   May 17 2007, 05:19
||- - Сергей Борщ   Цитата(lamerok @ May 17 2007, 12:19) Код-...   May 17 2007, 06:13
||- - lamerok   Цитата(Сергей Борщ @ May 17 2007, 09:13) ...   May 20 2007, 16:03
|- - IgorKossak   Цитата(lamerok @ May 17 2007, 07:57) Хочу...   May 17 2007, 05:13
- - lamerok   После кучи экспериментов пришел к выводу: 1. Можно...   May 21 2007, 14:24


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

 


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


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