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

 
 
> Работа с константами в 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
Ответов
AndryG
сообщение Jul 11 2007, 11:13
Сообщение #2


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

Группа: Свой
Сообщений: 139
Регистрация: 23-05-05
Из: UA
Пользователь №: 5 317



А как можно перелить ПО, не переливая константы. если они будут в проекте с ПО?

Может разделить Вашу задачу на ТРИ части:
загрузчик - залили и забыли
константы - проект представляет из себя просто набор констант
ПО - основная программа, в которой к константам обращаемся через указатели.

Это я к чему .. просто порылся в CVAVR ... нашел параметр RESETVECTOR в файле проекта.
Попробуйте сделать проект для меги16-загрузчик ... и посмотреть параметры в файле проекта ... может еще что найдете.

А может вообще вынести константы с проекта и "набивать" их редактируя файл для прошивки?

если константы должны изменятся юзерами ... может им простейшую программку-конфигуратор на комп надо?

Если Ваш загрузчик пишет HEX файлы .. то этот конфигуратор может генерить небольшой HEX с нужными адресами ... или редактировать готовый файл ... конфигуратор получится элементарный ... в отдельном файле прописываем название параметра и адрес его в HEX.

мало инфы ... давайте подробней о загрузчике и константах .. кто они и для кого.
Go to the top of the page
 
+Quote Post
Apollo
сообщение Jul 11 2007, 11:54
Сообщение #3


Участник
*

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



Цитата(AndryG @ Jul 11 2007, 15:13) *
А как можно перелить ПО, не переливая константы. если они будут в проекте с ПО?

Может разделить Вашу задачу на ТРИ части:
загрузчик - залили и забыли
константы - проект представляет из себя просто набор констант
ПО - основная программа, в которой к константам обращаемся через указатели.

Хочу сделать первичную прошивку, которая будет зашиваться при изготовлении устройства и иметь в себе все три части: приложение, константы и загрузчик.

Цитата(AndryG @ Jul 11 2007, 15:13) *
А может вообще вынести константы с проекта и "набивать" их редактируя файл для прошивки?

если константы должны изменятся юзерами ... может им простейшую программку-конфигуратор на комп надо?

Возможно придётся поступить так.

Цитата(AndryG @ Jul 11 2007, 15:13) *
мало инфы ... давайте подробней о загрузчике и константах .. кто они и для кого.

Константы нужны для подстройки АЦП, так скажем вывод их на ноль. Собранная и обработанная информация будет передаваться по сети (неважно какой) и по этой же сети нужно при необходимости обновлять приложение или подстраивать АЦП меняя только константы.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 11 2007, 13:03
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Apollo @ Jul 11 2007, 14:54) *
Слушайте сюда. Есть у меня решение вашей проблемы, не требует шаманства с ассемблерным файлом, но требует использования инлайнового асма, и вообще выглядит ужасно. Вот пример размещения асм-функции по определенному адресу:
Код
#asm
    .CSEG
Magic:    ;****Store current address location
    .org    (0x17F2>>1)
    LDI    R16,1500/100
    RET
    .org    (0x17F6>>1)
    LDI    R16,900/100
    RET

    .org    (0x17FA>>1)
    LDI    R16,600/100
    RET
                                  
    .org    Magic;****Restore address location
#endasm
Я вам даю идею, вы ее развиваете дальше. Естественно, что точно также соответствующими директивами можно разместить не только код, но и данные. Вам осталось только разобраться, как объявить в этом асм-коде видимую из С-кода метку и как присвоить эту метку константному указателю на структуру. А впрочем и это не нужно - адрес вам известен. Минус - работа через указатель. Не знаю, насколько хорошо CV оптимизирует константные указатели. Возможно, что обрамив объявление вашей константы в
Код
#asm
    .CSEG
Magic:    ;****Store current address location
    .org    FREQ_0
#endasm

и

#asm
    .org    Magic;****Restore address location
#endasm
вам удастся разместить и саму структуру и таким образом обойтись без указателя.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
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
- - zhevak   Ой! Уважаемый, Вы пожалуйста не сердитесь на ...   Jul 11 2007, 09:23
|- - Apollo   Цитата(zhevak @ Jul 11 2007, 13:23) Ну, е...   Jul 11 2007, 10:24
|- - 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
|- - zhevak   Цитата(Apollo @ Jul 11 2007, 17:54) Хочу ...   Jul 11 2007, 12:25
- - 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 Текстовая версия Сейчас: 28th July 2025 - 14:35
Рейтинг@Mail.ru


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