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

 
 
> CodeVision массив по конкретному адресу, Как расположить проинициализированный массив в памяти по нужному адрес
InvisibleFed
сообщение Jun 30 2008, 03:51
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 18-11-06
Из: Хабаровск
Пользователь №: 22 469



Здравствуйте. Есть массив (табличный метод расчета кцк). Не могу в CodeVision разместить его по нужному адресу. Например:

Код
char array[5] = {0x12, 0x34, 0x45, 0x56, 0x67};

Хочу чтобы лежал он с адреса 0x100:

Код
char array[5] = {0x12, 0x34, 0x45, 0x56, 0x67} @0x100; // не помогает

Куда только эти @0x100 я не ставил. Хотя вот так пишут в хелпе:

Код
char a@0x100;

... и все пашет. А с инициализацией нивкакую...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
InvisibleFed
сообщение Jul 22 2008, 06:34
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 18-11-06
Из: Хабаровск
Пользователь №: 22 469



SasaVitebsk, спасибо, полностью согласен. Но так уж получилось, что не мне было выбирать средства. Всем спасибо за помощь - копирую в озу при старте. Попутно вырос связанный вопрос, хоть и чуток не в тему. Известно, что в функцию параметры можно передавать не одним способом: через стэк, через регистры. Допустим, есть функция полностью написанная на асме. Как мне передать в нее, зкажем значение переменной var1?. Т. е. как должен выглядить код-вставка на асме под CodeVision C, чтобы значение (или адрес) конкретной переменной записывались в стэк или регистр? Вся особенность в том, что сам компилятор передает параметры тоже черз регистры (косвенно) или через стэк, и о переменной var1, если она не во flash (ну или как минимум просто глобальная, видимо) ничего не знает (а работает напрямую с адресами). Возможно ли такое вообще. А то столкнулся тут. Написал кусок функции на асме, перед этим посмотрел, что в каких регистрах компилятор разместил, ну и работал с ними. Потом коду немного дописал, а он уже перераспределил операторы по другим регистрам. Не хочу каждый раз переписывать... =) Или я чего-то не понимаю/не знаю?
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Jul 22 2008, 07:00
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(InvisibleFed @ Jul 22 2008, 10:34) *
Но так уж получилось, что не мне было выбирать средства.

Неужели у Вас CV честно купленный? 07.gif
Цитата(InvisibleFed @ Jul 22 2008, 10:34) *
Вся особенность в том, что сам компилятор передает параметры тоже черз регистры (косвенно) или через стэк, и о переменной var1, если она не во flash (ну или как минимум просто глобальная, видимо) ничего не знает (а работает напрямую с адресами).

Возможно что и изменилось, но CV 1.2.xx передавал параметры всегда через стек. В хелпе это описано.
Цитата(InvisibleFed @ Jul 22 2008, 10:34) *
Написал кусок функции на асме, перед этим посмотрел, что в каких регистрах компилятор разместил, ну и работал с ними. Потом коду немного дописал, а он уже перераспределил операторы по другим регистрам. Не хочу каждый раз переписывать... =) Или я чего-то не понимаю/не знаю?

ИМХО только на GCC можно красиво работать в такой ситуации. Инлайн ассемблер там самый разумный smile.gif, и можно не задумываться о том, где на самом деле находится переменная.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- InvisibleFed   CodeVision массив по конкретному адресу   Jun 30 2008, 03:51
- - haker_fox   Цитата(InvisibleFed @ Jun 30 2008, 12:51)...   Jun 30 2008, 04:54
|- - InvisibleFed   Цитата(haker_fox @ Jun 30 2008, 15:54) А ...   Jun 30 2008, 06:31
|- - defunct   Цитата(InvisibleFed @ Jun 30 2008, 09:31)...   Jun 30 2008, 22:17
- - vet   InvisibleFed, предваряйте определение переменной д...   Jun 30 2008, 10:13
- - VDG   Цитата(InvisibleFed @ Jun 30 2008, 07:51)...   Jun 30 2008, 11:43
|- - vet   Цитата(VDG @ Jun 30 2008, 15:43) и к чему...   Jul 1 2008, 06:02
|- - VDG   Цитата(vet @ Jul 1 2008, 10:02) Сам приме...   Jul 2 2008, 21:05
|- - vet   Цитата(VDG @ Jul 3 2008, 01:05) Вот я про...   Jul 3 2008, 05:43
|- - VDG   Цитата(vet @ Jul 3 2008, 09:43) почему не...   Jul 3 2008, 09:48
|- - vet   Цитата(VDG @ Jul 3 2008, 13:48) не надо с...   Jul 3 2008, 12:23
|- - VDG   Цитата(vet @ Jul 3 2008, 16:23) Не уловил...   Jul 3 2008, 12:30
- - sgs   Цитата(InvisibleFed @ Jun 30 2008, 08:51)...   Jun 30 2008, 16:32
- - Т.Достоевский   Непонятно, зачем конкретный адрес? Что асм, что ко...   Jun 30 2008, 23:35
|- - defunct   Цитата(Т.Достоевский @ Jul 1 2008, 02:35)...   Jun 30 2008, 23:45
- - InvisibleFed   Здравствуйте. Всем спасибо за ответы. Отвечу и вне...   Jul 1 2008, 06:57
- - Александр Куличок   Цитата3. Некоторые противоречат сами себе - говоря...   Jul 1 2008, 08:24
- - InvisibleFed   ЦитатаПовнимательней посты читать надо. Вам предло...   Jul 1 2008, 08:53
|- - Сергей Борщ   Цитата(InvisibleFed @ Jul 1 2008, 11:53) ...   Jul 1 2008, 09:14
- - Александр Куличок   ЦитатаВо-первых, про тормознутость lpm писал я сам...   Jul 1 2008, 09:34
- - InvisibleFed   ЦитатаУ меня код для CRC16 занимает 16/17 тактов н...   Jul 1 2008, 10:24
- - defunct   Табличный способ расчета CRC внезависимости от раз...   Jul 1 2008, 10:27
- - Александр Куличок   Перед вызовом Y <= указатель на данные XL (или ...   Jul 1 2008, 12:03
|- - defunct   Цитата(Александр Куличок @ Jul 1 2008, 15...   Jul 1 2008, 21:09
- - Александр Куличок   ЦитатаВы шутите наверное?! X использовать под ...   Jul 1 2008, 21:54
|- - defunct   Цитата(Александр Куличок @ Jul 2 2008, 00...   Jul 2 2008, 15:51
- - sgs   Цитата(InvisibleFed @ Jun 30 2008, 08:51)...   Jul 18 2008, 08:33
- - SasaVitebsk   А если перейти на IAR (или GCC), то решается две з...   Jul 18 2008, 17:55
- - sgs   Цитата(InvisibleFed @ Jul 22 2008, 11:34)...   Jul 22 2008, 10:30


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

 


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


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