|
|
  |
EW430 v4.10A, Position independent code |
|
|
|
Nov 12 2007, 12:09
|
Знающий
   
Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045

|
Цитата(rezident @ Nov 12 2007, 12:49)  А вы проверьте по ассемблерному листингу задается ли в этом случае значение указателю стека вообще и treshhold для указателя в частности? Код __program_start: 004052 4031 3900 mov.w #0x3900,SP Имеется такая строка при обоих вариантах настройки. Выполнение программы начинается с адреса 0х4052 (то есть с этой строки). А вот где посмотреть treshhold увы я не в курсе. Просвятите пожалуйста. P.S. прибор MSP430F1611, программа линкуется с Normal DLIB
Сообщение отредактировал gotty - Nov 12 2007, 12:11
|
|
|
|
|
Nov 12 2007, 14:03
|
Знающий
   
Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045

|
Цитата(rezident @ Nov 12 2007, 14:32)  Я не священик, чтобы свЯтить  Могу лишь просвЕтить, что treshold для стека задается в опциях проекта Project->Options->General Options->Stack/Heap. Кстати, в EW430_CompilerReference.pdf указано, что при выборе Position independent code может создаваться значительный оверхед. Может поэтому у вас на размер стека ругается? Настройки стека оставлены по умолчанию (галочки "Override default" снята). Компилятор/линковщик на размер стека не ругается. При выполнении программы SP выходит за "допустимые" границы и после очередного возвращения из функции, программа "улетает" в неизвестном направлении и оттуда не возвращяется. rezident, спасибо за помощь.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|