|
CodeVision массив по конкретному адресу, Как расположить проинициализированный массив в памяти по нужному адрес |
|
|
|
Jun 30 2008, 03:51
|
Местный
  
Группа: Свой
Сообщений: 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; ... и все пашет. А с инициализацией нивкакую...
|
|
|
|
|
 |
Ответов
|
Jul 22 2008, 06:34
|
Местный
  
Группа: Свой
Сообщений: 401
Регистрация: 18-11-06
Из: Хабаровск
Пользователь №: 22 469

|
SasaVitebsk, спасибо, полностью согласен. Но так уж получилось, что не мне было выбирать средства. Всем спасибо за помощь - копирую в озу при старте. Попутно вырос связанный вопрос, хоть и чуток не в тему. Известно, что в функцию параметры можно передавать не одним способом: через стэк, через регистры. Допустим, есть функция полностью написанная на асме. Как мне передать в нее, зкажем значение переменной var1?. Т. е. как должен выглядить код-вставка на асме под CodeVision C, чтобы значение (или адрес) конкретной переменной записывались в стэк или регистр? Вся особенность в том, что сам компилятор передает параметры тоже черз регистры (косвенно) или через стэк, и о переменной var1, если она не во flash (ну или как минимум просто глобальная, видимо) ничего не знает (а работает напрямую с адресами). Возможно ли такое вообще. А то столкнулся тут. Написал кусок функции на асме, перед этим посмотрел, что в каких регистрах компилятор разместил, ну и работал с ними. Потом коду немного дописал, а он уже перераспределил операторы по другим регистрам. Не хочу каждый раз переписывать... =) Или я чего-то не понимаю/не знаю?
|
|
|
|
|
Jul 22 2008, 07:00
|
Местный
  
Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527

|
Цитата(InvisibleFed @ Jul 22 2008, 10:34)  Но так уж получилось, что не мне было выбирать средства. Неужели у Вас CV честно купленный? Цитата(InvisibleFed @ Jul 22 2008, 10:34)  Вся особенность в том, что сам компилятор передает параметры тоже черз регистры (косвенно) или через стэк, и о переменной var1, если она не во flash (ну или как минимум просто глобальная, видимо) ничего не знает (а работает напрямую с адресами). Возможно что и изменилось, но CV 1.2.xx передавал параметры всегда через стек. В хелпе это описано. Цитата(InvisibleFed @ Jul 22 2008, 10:34)  Написал кусок функции на асме, перед этим посмотрел, что в каких регистрах компилятор разместил, ну и работал с ними. Потом коду немного дописал, а он уже перераспределил операторы по другим регистрам. Не хочу каждый раз переписывать... =) Или я чего-то не понимаю/не знаю? ИМХО только на GCC можно красиво работать в такой ситуации. Инлайн ассемблер там самый разумный  , и можно не задумываться о том, где на самом деле находится переменная.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|