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

 
 
> ARM9 - Проблема с переменными
fademike
сообщение Mar 10 2013, 14:01
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 5-03-13
Пользователь №: 75 903



Наткнулся на очень нелепую проблемку: Каким-то образом изменение одних переменных меняют другие переменные. Не понимаю, как такое возможно!?

Код
unsigned char Block_Files[512];
unsigned char File[32];

int main (void) {                       // Main Program                      

unsigned int clock;
unsigned long Peremennaja[512];        // Создадим ненужную переменную
    
Config_GPIO ();

TFT_LCD_Init();

TFT_LCD_BGcolor(0xFF0000);
TFT_LCD_ConSetColor(0x000000, 0xFFFFFF);
TFT_LCD_ConSetPos(0,0);


SDcard_init();
Show_Folder(Block_Files, File);

    for (clock=0; clock<512; clock++) Peremennaja[clock] = 0x00;     // Передаем ненужной переменной, например, нули

for (clock=0; clock<512; clock++){
    Delay(50);
TFT_LCD_Char  (Block_Files[clock]);    // Выведенные символы из-за "Peremennaja" Стали черными квадратиками
}

while(1){};
}



Функции: "TFT_LCD_ConSetColor(0x000000, 0xFFFFFF); и TFT_LCD_ConSetPos(0,0);" просто записывают цвет, строку и столбец в переменные "unsigned int".

Без записи в переменную "Peremennaja[512]" все работает. А когда в нее записываем значения, то эти значения вносятся в переменные указателя цвета и курсора...


Подскажите, плиз, в чем секрет??
Прикрепленные файлы
Прикрепленный файл  Beda.rar ( 530.59 килобайт ) Кол-во скачиваний: 10
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Mar 10 2013, 14:07
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



А стека достаточно для двухкилобайтного массива?
Go to the top of the page
 
+Quote Post
fademike
сообщение Mar 10 2013, 14:19
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 5-03-13
Пользователь №: 75 903



Цитата(aaarrr @ Mar 10 2013, 18:07) *
А стека достаточно для двухкилобайтного массива?


Микроконтроллер: AT91SAM9G45. Кажись, должно хватать! Keil не жалуется!
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Mar 10 2013, 14:26
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(fademike @ Mar 10 2013, 16:19) *
Кажись, должно хватать!

Если выделить, то должно.

Цитата(fademike @ Mar 10 2013, 16:19) *
Keil не жалуется!

Как он должен жаловаться?
Попробуйте для интереса объявить массив Peremennaja килобайт на 100.
Go to the top of the page
 
+Quote Post
fademike
сообщение Mar 10 2013, 14:43
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 5-03-13
Пользователь №: 75 903



Цитата(_Артём_ @ Mar 10 2013, 18:26) *
Если выделить, то должно.


Как он должен жаловаться?
Попробуйте для интереса объявить массив Peremennaja килобайт на 100.


Как я понимаю, я выделил: В keil-е size: 0x8000 - это 32 кБ - Должно хватать..
Go to the top of the page
 
+Quote Post
Fedor
сообщение Mar 10 2013, 15:41
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 26-10-05
Пользователь №: 10 125



А сколько ОЗУ на плате?
Go to the top of the page
 
+Quote Post
fademike
сообщение Mar 10 2013, 16:02
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 5-03-13
Пользователь №: 75 903



Цитата(Fedor @ Mar 10 2013, 19:41) *
А сколько ОЗУ на плате?


DDR2 - 512 Мбит. И как я понял в файле SAM9G45.s уже инициализация прописана..

Цитата(aaarrr @ Mar 10 2013, 19:43) *
0x140 = 320 байт, а нужно много больше. Какая ошибка?


когда 0x1000:

BOOT.axf: Error: L6406E: No space in execution regions with .ANY selector matching sam9g45.o(STACK).
BOOT.axf: Error: L6407E: Sections of aggregate size 0x1088 bytes could not fit into .ANY selector(s).

Как я понял "0x1088" - это объем всего стека, что равно 4'232 Байтам. И это максимальный объем хранимых переменных, чтоли??
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- fademike   ARM9 - Проблема с переменными   Mar 10 2013, 14:01
- - aaarrr   Вот выдержка из map-файла: ЦитатаBase Addr Size...   Mar 10 2013, 14:45
|- - fademike   Цитата(aaarrr @ Mar 10 2013, 18:45) Что б...   Mar 10 2013, 14:50
|- - aaarrr   Цитата(fademike @ Mar 10 2013, 18:50) Зна...   Mar 10 2013, 15:00
|- - _Артём_   Цитата(fademike @ Mar 10 2013, 16:50) Зна...   Mar 10 2013, 15:01
- - fademike   Объем стека это там - ISR_Stack_Size??   Mar 10 2013, 15:15
|- - aaarrr   Цитата(fademike @ Mar 10 2013, 19:15) Объ...   Mar 10 2013, 15:18
- - fademike   И, если не сложно, подскажите мне, пожалуйста, лит...   Mar 10 2013, 15:30
|- - _Артём_   Цитата(fademike @ Mar 10 2013, 17:30) И, ...   Mar 10 2013, 15:41
|- - aaarrr   Цитата(fademike @ Mar 10 2013, 19:30) И, ...   Mar 10 2013, 15:43
- - aaarrr   У вас сейчас всего в распоряжении 64кБайта внутрен...   Mar 10 2013, 16:26
|- - fademike   Цитата(aaarrr @ Mar 10 2013, 20:26) У вас...   Mar 10 2013, 16:32
|- - aaarrr   Цитата(fademike @ Mar 10 2013, 20:32) Не ...   Mar 10 2013, 16:53
- - fademike   Огромное спасибо за помощь!   Mar 10 2013, 17:57


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

 


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


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