|
Может ли меняться адрес переменной в стеке? |
|
|
|
Oct 5 2010, 06:39
|

Профессионал
    
Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357

|
Допустим есть такой код: Код bool ModulesInit(uint8_t mn) { uint8_t cmd[3] = { 8, mn, 0 };
pTWI = cmd; // ... Массив cmd[] компилятор размещает в стеке. Затем его адрес присваивается другой переменной и она с ним как-то работает, причем эта переменная используется в прерывании. В связи с этим возникает вопрос: можно ли быть уверенным, что положение этого массива в ОЗУ (его абсолютный адрес) не изменится? Разумеется, при условии что из функции мы еще не вышли. Не может ли в процессе выполнения функции он как-то двигаться? Дело в том, что в таком виде наблюдались необъяснимые глюки, которые исчезли как только я объявил этот массив static. Но они и раньше иногда исчезали, поэтому нет уверенности, что их вылечил именно static.
|
|
|
|
|
 |
Ответов
|
Oct 5 2010, 16:50
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(777777 @ Oct 5 2010, 18:33)  Спасибо, кэп! если под дебагом не охота возится - есть другой ломовой способ. выключаете кусок кода. помогло? да-нет. если да - подключаете кусок кода, делите его лапополам. одну половину выключаете. операцию повторяете. если не помогло - следующий кусок кода откусываете. если после всех манипуляций у вас получилось строчек 10 кода, а всё остальное коменты - вот их (все 10) и выкладывайте сюда для помощи. а то как то гадания от телепатии уже пошли. (круглый)
Сообщение отредактировал kolobok0 - Oct 5 2010, 16:50
|
|
|
|
Сообщений в этой теме
777777 Может ли меняться адрес переменной в стеке? Oct 5 2010, 06:39 kolobok0 Цитата(777777 @ Oct 5 2010, 10:39) ...мож... Oct 5 2010, 07:32 GDI Как вы себе представляете "движения" сте... Oct 5 2010, 07:55 IgorKossak Цитата(GDI @ Oct 5 2010, 10:55) ...Горазд... Oct 5 2010, 08:24  777777 Цитата(IgorKossak @ Oct 5 2010, 12:24) Оо... Oct 5 2010, 08:54   MrYuran Цитата(777777 @ Oct 5 2010, 12:54) Это ещ... Oct 5 2010, 09:01    777777 Цитата(MrYuran @ Oct 5 2010, 13:01) А не ... Oct 5 2010, 10:44     Сергей Борщ Цитата(777777 @ Oct 5 2010, 13:44) Обрабо... Oct 5 2010, 17:14      halfdoom Цитата(Сергей Борщ @ Oct 5 2010, 20:14) Ф... Oct 6 2010, 04:59       Сергей Борщ Цитата(halfdoom @ Oct 6 2010, 07:59) Точн... Oct 6 2010, 08:56        777777 Цитата(Сергей Борщ @ Oct 6 2010, 12:56) Э... Oct 6 2010, 09:19         Сергей Борщ Цитата(777777 @ Oct 6 2010, 12:19) Господ... Oct 6 2010, 13:13          777777 Цитата(Сергей Борщ @ Oct 6 2010, 17:13) Т... Oct 6 2010, 14:47           Сергей Борщ Цитата(777777 @ Oct 6 2010, 17:47) Я же н... Oct 6 2010, 20:20            kolobok0 (бормоча се под нос на ночь глядя)
от посему обожа... Oct 6 2010, 20:54             Ink Цитата(kolobok0 @ Oct 7 2010, 00:54) от п... Oct 7 2010, 06:31   Сергей Борщ Цитата(777777 @ Oct 5 2010, 11:54) Этот б... Oct 5 2010, 10:19 Itch все дело в волшебном словечке volatile
Программис... Oct 6 2010, 03:41 IgorKossak Поскольку вопрос снят и так прекрасно всё закончил... Oct 7 2010, 06:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|