|
ARM9 - Проблема с переменными |
|
|
|
Mar 10 2013, 14:01
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
 |
Ответов
|
Mar 10 2013, 14:19
|
Участник

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

|
Цитата(aaarrr @ Mar 10 2013, 18:07)  А стека достаточно для двухкилобайтного массива? Микроконтроллер: AT91SAM9G45. Кажись, должно хватать! Keil не жалуется!
|
|
|
|
|
Mar 10 2013, 14:26
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(fademike @ Mar 10 2013, 16:19)  Кажись, должно хватать! Если выделить, то должно. Цитата(fademike @ Mar 10 2013, 16:19)  Keil не жалуется! Как он должен жаловаться? Попробуйте для интереса объявить массив Peremennaja килобайт на 100.
|
|
|
|
|
Mar 10 2013, 14:43
|
Участник

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

|
Цитата(_Артём_ @ Mar 10 2013, 18:26)  Если выделить, то должно.
Как он должен жаловаться? Попробуйте для интереса объявить массив Peremennaja килобайт на 100. Как я понимаю, я выделил: В keil-е size: 0x8000 - это 32 кБ - Должно хватать..
|
|
|
|
|
Mar 10 2013, 15:41
|
Участник

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

|
А сколько ОЗУ на плате?
|
|
|
|
|
Mar 10 2013, 16:02
|
Участник

Группа: Участник
Сообщений: 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 Байтам. И это максимальный объем хранимых переменных, чтоли??
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|