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

 
 
> const в ИАР
at90
сообщение Jun 8 2006, 06:07
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 866
Регистрация: 31-03-05
Из: Краснодар
Пользователь №: 3 814



Раньше работал в кодэвижен. Но теперь нада портировать Uc/gui для AVR.
В кодэвижене это проблемно.
Cобрал проект для меги 128 + внешнее озу 32kb + индикатор 320 на 240.
Но постоянно не хватает стэка. Походу он переменные с CONST не помещает во влэш.
Пытался вместо const посавить __flash. Но много ошибок на нессответсвие типов.
И проект сдишком огромный. кучу текста нада перелопачивать.
Можно как нить побороть эту беду.


--------------------
<<Первая производная от чужой идеи - уже твоя идея.>>
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение Jun 9 2006, 00:09
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Может не по делу, но...
Если описывать const внутри процедуры, то она будет в ram. Надо писать static const ...


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
dxp
сообщение Jun 9 2006, 04:20
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(GetSmart @ Jun 9 2006, 07:09) *
Может не по делу, но...
Если описывать const внутри процедуры, то она будет в ram. Надо писать static const ...

Зависит от... В С const по умолчанию имеет внешнее связывание, поэтому компилятор должен размещать этот объект в памяти - вдруг на него есть ссылки из других единиц компиляции (ЕК). В С++ const имеет внутреннее связывание, поэтому у компилятора нет никаких причин пихать объект в память при условии, что он не объявлен extern и нигде внутри этой ЕК не берется адрес этого констатнтого объекта. Чтобы в С добиться ++ного поведения, можно, как Вы и сказали, использовать static, указывая, что объект локальный (для данной ЕК), снаружи не виден. Т.ч. по умолчанию зависит от того, включен ли режим ++ (--ec++, --eec++).


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- at90   const в ИАР   Jun 8 2006, 06:07
- - Сергей Борщ   Цитата(at90 @ Jun 8 2006, 09:07) Раньше р...   Jun 8 2006, 07:13
- - rezident   Может имеет смысл константы объединить в структуру...   Jun 8 2006, 10:00
- - IgorKossak   Чтобы не так много было переделывать, определите м...   Jun 8 2006, 12:25
- - _Sam_   могу ошибаться, но попробуйте добавить к опциям ко...   Jun 8 2006, 12:41
- - at90   Цитата(_Sam_ @ Jun 8 2006, 16:41) могу ош...   Jun 8 2006, 18:03
- - at90   Вроде с такой вот штукой скомпилировалось нормаль...   Jun 9 2006, 05:07
|- - Nikson1200   Цитата(at90 @ Jun 9 2006, 08:07) Вроде с ...   Jan 22 2009, 22:29
|- - Сергей Борщ   Цитата(Nikson1200 @ Jan 23 2009, 00:29) и...   Jan 23 2009, 01:12
|- - Nikson1200   Цитата(Сергей Борщ @ Jan 23 2009, 04:12) ...   Jan 28 2009, 13:24
|- - Dog Pawlowa   Цитата(Nikson1200 @ Jan 28 2009, 17:24) б...   Jan 28 2009, 14:01
- - Nikson1200   Сергей Борщ, спасибо!   Jan 23 2009, 08:52
- - west329_   unsigned char __flash mymac[6] = {0xAA,0xBB,0xCC,0...   Jan 23 2009, 17:10
- - Nikson1200   блин, ощущаю себя полным лузером в недрах ucGUI ...   Jan 28 2009, 16:56
|- - Сергей Борщ   Цитата(Nikson1200 @ Jan 28 2009, 18:56) б...   Jan 28 2009, 18:36
- - alux   Вставлю и я свои пять копеек 1) Если необходимо ...   Feb 4 2009, 14:22


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

 


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


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