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

 
 
> Вопрос по IAR 5.20, Непонятная операция с регистром стека
grinux
сообщение Nov 25 2009, 14:27
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 2-01-09
Пользователь №: 42 891



Всем привет.
Столкнулся с непонятной мне операцией, показанной на первом рисунке, в результате которой в регистре стека оказывалось значение, лежащее за пределами ОЗУ (LPC2368).
При включении оптимизации по размеру кода, ровно как и при увеличении стека со стандартных 0x100 до 0x200, проблема уходила ( при вкючении оптимизации инструкция SUB отсутствовала - 2 рисунок, при увеличении стека не приводила к некорректному значению).
Но что собственно произошло так и осталось не ясным, что там за данные на 0x154 байта?
cranky.gif


Прикрепленное изображение


Прикрепленное изображение


Сообщение отредактировал grinux - Nov 25 2009, 14:37
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение Nov 25 2009, 14:43
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(grinux @ Nov 25 2009, 20:27) *
Но что собственно произошло так и осталось не ясным, что там за данные на 0x154 байта?
cranky.gif

Видимо локальные переменные. Засветите здесь полный майн и будет понятно.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
grinux
сообщение Nov 25 2009, 14:46
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 2-01-09
Пользователь №: 42 891



Цитата(GetSmart @ Nov 25 2009, 17:43) *
Видимо локальные переменные. Засветите здесь полный майн и будет понятно.


Код
int main()
{
   tn_arm_disable_interrupts();
   InitHardware();
  
   g_tneti.tnet  = &g_tnet;
   g_tneti.ni[0] = &g_iface1;
   effective_settings_2_0=current_settings_2_0=default_settings_2_0;
   tn_start_system(); //-- Never returns

   return 1;
}


В общем то и светить нечего laughing.gif
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 25 2009, 14:54
Сообщение #4


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(grinux @ Nov 25 2009, 20:46) *
В общем то и светить нечего laughing.gif

Тогда ещё листинг майна, в котором стоит SUB SP,SP,0x154. Судя по майну, локальных переменных там нет. Но если InitHardware() или tn_start_system() являются статическими, то они могут подставиться прямо в майн.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post



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

 


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


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