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

 
 
> Работа с константами в CodeVision
Apollo
сообщение Jul 10 2007, 20:15
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 10-07-07
Из: Москва
Пользователь №: 29 044



Подскажите как указать компилятору на размещение константы в нужном адресе во FLASH в CodeVision?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zhevak
сообщение Jul 11 2007, 09:23
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Ой!

Уважаемый, Вы пожалуйста не сердитесь на нас, на прожженых паяльниками и дебаггерами, а поясните цель своего весьма экстравагантного подхода. Возможно, Ваша проблема (ради которой нужно размещать константу только по указанному заранее адресу во флеш-памяти) будет решена более простым способом.

Или делайте как уже тут ранее предлагали: обращайтесь к константе через указатель на нее. А адрес памяти, где она будет размещена, оставьте на откуп компилятору/линковщику.

Ну, еще как не гарантированный вариант: попробуйте поиграться с ассемблерным файлом, который CV всегда создает при компиляци проекта. Поправьте этот файл ручками так, как Вам надо, и отдайте его на "съедение" какому-либо ассемблеру.

Цитата(Apollo @ Jul 11 2007, 14:48) *
Нет. Просто есть загрузчик написаный ранее и расположенный в конце FLASH, а также есть перед загрузчиком область памяти основной программы с некими нужными коэффициентами - константами, используемыми МК в работе. Константы олжны находиться в определённой странице FLASH так, чтобы при обновлении ПО загрузчиком можно было отдельно перезаписать только страницу с константами. Сейчас я пишу основную программу, которая должна считывать эти константы из FLASH. Проблема в том как их разместить начинаяс нужного адреса.


Хм... задача.

Если это действительно константы, то какая разница, на каком адресе они сидят при компиляции новой версии? Значения констант изначально опредены в программе. Если прога претерпевает изменения и ее новую версию нужно заново "залить" в МК, то и заливайте ее вместе с теми же констаттами. Пусть они находятся по другим адресам. Минусы -- ну чуть больше нужно будет времени на программирование.

Если констант не очень много, может воспользоваться внутренним EEPROM? Если много -- внешний подвесить (SPI или I2C).

Цитата
В АСМе проблем не было. просто указывал типа .org 0x0123 и всё, после этой строчки можно было обьявлять строку байт, а вот в CodeVision я не нашёл ничего по этому поводу. Выходит какой-то недоделышь этот CVAVR?


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


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
Apollo
сообщение Jul 11 2007, 10:24
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 10-07-07
Из: Москва
Пользователь №: 29 044



Цитата(zhevak @ Jul 11 2007, 13:23) *
Ну, еще как не гарантированный вариант: попробуйте поиграться с ассемблерным файлом, который CV всегда создает при компиляци проекта. Поправьте этот файл ручками так, как Вам надо, и отдайте его на "съедение" какому-либо ассемблеру.

А, кстати, идея! Но к сожалению этот продукт я должен отдать другим людям и объяснять им в описании как надо лечить кривизну CVAVR не очень красиво. Им нужно написать тупо, чтобы изменить то-то надо залезть туда-то и потом откомпилировать.



Цитата(zhevak @ Jul 11 2007, 13:23) *
Хм... задача.

Если это действительно константы, то какая разница, на каком адресе они сидят при компиляции новой версии? Значения констант изначально опредены в программе. Если прога претерпевает изменения и ее новую версию нужно заново "залить" в МК, то и заливайте ее вместе с теми же констаттами. Пусть они находятся по другим адресам. Минусы -- ну чуть больше нужно будет времени на программирование.


Эти константы нужно будет считывать и загрузчиком (находящемся в области загрузчика) и из основной программы. Поэтому их адрес должен быть неизменен, так как загрузчик меняться не будет. При перезаливке ПО через загрузчик возможны варианты, когда полностью переписывается и ПО и область констант, а возможен вариант, когда переписывается только ПО. Но адрес констант должен быть один и тот же

Сообщение отредактировал Apollo - Jul 11 2007, 10:26
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Apollo   Работа с константами в CodeVision   Jul 10 2007, 20:15
- - zhevak   Цитата(Apollo @ Jul 11 2007, 02:15) Подск...   Jul 11 2007, 05:38
- - jasper   В WinAVR можно.   Jul 11 2007, 06:26
- - pokos   Чото я не пойму, что тут имеется в виду под конста...   Jul 11 2007, 06:34
|- - haker_fox   Цитата(pokos @ Jul 11 2007, 14:34) Чото я...   Jul 11 2007, 07:22
- - vet   ничто не мешает обращаться к нужному адресу через ...   Jul 11 2007, 06:50
- - pokos   Ага. Если про то, что называется константами в CV,...   Jul 11 2007, 07:33
|- - Apollo   Цитата(pokos @ Jul 11 2007, 10:33) Ага. Е...   Jul 11 2007, 08:48
|- - defunct   Цитата(Apollo @ Jul 11 2007, 13:24) Эти к...   Jul 11 2007, 16:28
|- - VDG   Цитата(Apollo @ Jul 11 2007, 14:24) Им ну...   Jul 11 2007, 21:55
- - AndryG   CVAVR недоделышь ... всё больше в этом убеждаюсь. ...   Jul 11 2007, 09:27
- - pokos   Если я правильно понял, то нужно прикрутить новую ...   Jul 11 2007, 09:30
- - AndryG   _____ P.S. Если вы возмущены, кто это недоделыш ...   Jul 11 2007, 09:39
|- - pokos   Цитата(AndryG @ Jul 11 2007, 13:39) Загру...   Jul 11 2007, 10:02
- - AndryG   А как можно перелить ПО, не переливая константы. е...   Jul 11 2007, 11:13
|- - Apollo   Цитата(AndryG @ Jul 11 2007, 15:13) А как...   Jul 11 2007, 11:54
|- - zhevak   Цитата(Apollo @ Jul 11 2007, 17:54) Хочу ...   Jul 11 2007, 12:25
|- - Сергей Борщ   Цитата(Apollo @ Jul 11 2007, 14:54) Слуша...   Jul 11 2007, 13:03
- - Apollo   Спасибо всем! В общем решил .asm файл, получен...   Jul 11 2007, 14:09
- - Apollo   Это я тоже применю, но на следующих этапах разрабо...   Jul 11 2007, 16:48
- - defunct   Цитата(Apollo @ Jul 11 2007, 19:48) Это я...   Jul 11 2007, 18:19


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

 


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


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