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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> организовать сегмент во flash, читал-читал - ничего не понял...
1921
сообщение Jan 20 2011, 14:53
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 29-09-10
Пользователь №: 59 820



Цитата(rezident @ Jan 20 2011, 17:42) *
А блин! там const лишний. Извиняюсь. Вот так вторую нужно.

Код
#pragma location=0x8000
__no_init MyPar_t MyPar;
#pragma required=MyPar


То же самое. Ругается, что два сегмента перекрываются.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 20 2011, 14:57
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(1921 @ Jan 20 2011, 19:53) *
То же самое. Ругается, что два сегмента перекрываются.
Я про это предупреждал. Ну и пусть ругается, лишь бы компиляция шла sm.gif У вас случайно в опциях не стоит "принимать все warning как error", прекращая компиляцию?
Go to the top of the page
 
+Quote Post
1921
сообщение Jan 20 2011, 15:02
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 29-09-10
Пользователь №: 59 820



Цитата(rezident @ Jan 20 2011, 17:57) *
Я про это предупреждал. Ну и пусть ругается, лишь бы компиляция шла sm.gif У вас случайно в опциях не стоит "принимать все warning как error", прекращая компиляцию?

Проверил. Не стоит.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 20 2011, 15:19
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(1921 @ Jan 20 2011, 20:02) *
Проверил. Не стоит.
Установите "птичку" в Options -> Linker -> Diagnostics -> Segment overlap warning.
Go to the top of the page
 
+Quote Post
1921
сообщение Jan 20 2011, 15:31
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 29-09-10
Пользователь №: 59 820



Цитата(rezident @ Jan 20 2011, 18:19) *
Установите "птичку" в Options -> Linker -> Diagnostics -> Segment overlap warning.


И О ЧУДО!!!
ОНО ЗАРАБОТАЛО!!!
СЛАВА РЕЗИДЕНТУ!!!

typedef struct MyPar_t
{
unsigned char buf[5];
unsigned char buf1[10];
unsigned char buf2[8];
} MyPar_t;

#pragma location=0x8000
const MyPar_t MyParInit = {0,0,0,0,0,48,49,50,51,52,53,54,55,56,57,0,1,2,3,4,5,6,7};
#pragma required=MyParInit

#pragma location=0x8000
__no_init MyPar_t MyPar;
#pragma required=MyPar

Это уже наглость, конечно. Но, может, хотя бы в двух словах поясните, зачем нужно было объявление двух структур? Или отошлите к первоисточникам. А то как-то непонятно...
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 20 2011, 15:35
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Перечитайте еще раз сообщение №13. Я там пояснил для чего нужно объявление двух структур. Если вы настройки менять не собираетесь (внутрипрограммно перепрограммируя данные этого сегмента флешь), то можно и одной обойтись или вообще дефайнами. Результат будет одинаковый.
Go to the top of the page
 
+Quote Post
=DS=
сообщение Jan 21 2011, 19:17
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 25-09-07
Пользователь №: 30 836



В последних версиях компилятора введен специальный атрибут __persistent именно для подобных целей. Переменные с этим атрибутом не инициализиуются на старте и группируются в сегменте DATA_P/DATA20_P, который при линковке можно расположить где угодно.
Go to the top of the page
 
+Quote Post
1921
сообщение Jan 31 2011, 10:12
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 29-09-10
Пользователь №: 59 820



Цитата(=DS= @ Jan 21 2011, 22:17) *
В последних версиях компилятора введен специальный атрибут __persistent именно для подобных целей. Переменные с этим атрибутом не инициализиуются на старте и группируются в сегменте DATA_P/DATA20_P, который при линковке можно расположить где угодно.

У меня persistent не работает, не дорос ишшо до нужной версии. Попробовал все подсказанные варианты, всё-таки решил подправить линкер. Ничего, не обеднеет, из 256к 512 байт под доп сегмент. Просто, дёшево и сердито.
Go to the top of the page
 
+Quote Post

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

 


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


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