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

 
 
> Почему под отладчиком работает а без него не хочет?
prottoss
сообщение Dec 31 2007, 13:52
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Всех с наступающим Новым Годом!



Проблема такова:



С ARM работаю недавно. Имеется код, который нормально работал с AVR и платформенно не зависим. Перенес сей код на ARM - все, затык. Кoд такой:

Код
В хедере:

#define MAKEUINT16(byte_h, byte_l) ((UINT16)(((UINT16)byte_h << 8)|(UINT16)byte_l))
#define HIBYTE(word)    ((UCHAR)((UINT16)word >> 8))
#define LOBYTE(word)    ((UCHAR)((UINT16)word & 0xff))

#define MAKEUINT32(word_h, word_l) ((UINT32)(((UINT32)word_h << 16)|(UINT32)word_l))
#define HIWORD(longv)    ((UINT16)((UINT32)longv >> 16))
#define LOWORD(longv)    ((UINT16)((UINT32)longv & 0xffff))

#define SWAP16(n16)     (MAKEUINT16(LOBYTE(n16), HIBYTE(n16)))
#define SWAP32(n32)     (MAKEUINT32(SWAP16(LOWORD(n32)), SWAP16(HIWORD(n32))))

в модуле:
Код
...
if(hTCP->flags & TCP_FLAG_ACK)
    {
  /* Jup, use it as our seq */
  socket->send_unacked = SWAP32(hTCP->ackno);
  socket->hTCP.flags = TCP_FLAG_RESET;
  socket->receive_next = SWAP32(hTCP->seqno);
}
    else
    {
  socket->send_unacked = 0;
  socket->hTCP.flags = TCP_FLAG_RESET | TCP_FLAG_ACK;
  socket->receive_next = SWAP32(hTCP->seqno) + 1;
}

Если ставлю точку останова на строку с SWAP32 и потом, при попадании программы в эту точку, стартую программу - все нормально, код выполняется. Если точку останова не ставлю - программа виснет:-(
Если строки с SWAP32 удаляю - программа работает нормально...
Переменные send_unacked и receive_next 32-битные.


IAR C/C++ Compiler for ARM 4.42A Evaluation (4.42.1.201)


Помогите разобраться, в чем прикол...


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- prottoss   Почему под отладчиком работает а без него не хочет?   Dec 31 2007, 13:52
- - prottoss   Такое очучение, что что-то с 32-бит переменными не...   Jan 1 2008, 11:47
- - zltigo   1. При всем обилии матрешек, лишних масок и преобр...   Jan 1 2008, 13:53
|- - prottoss   Цитата(zltigo @ Jan 1 2008, 20:53) 3. Для...   Jan 1 2008, 16:57
|- - zltigo   Цитата(prottoss @ Jan 1 2008, 18:57) Если...   Jan 1 2008, 17:18
|- - prottoss   Цитата(zltigo @ Jan 2 2008, 00:18) ОК,...   Jan 1 2008, 18:06
|- - zltigo   Цитата(prottoss @ Jan 1 2008, 20:06) ... ...   Jan 1 2008, 18:25
|- - prottoss   Цитата(zltigo @ Jan 2 2008, 01:25) При по...   Jan 1 2008, 18:59
|- - zltigo   Цитата(prottoss @ Jan 1 2008, 20:59) И ин...   Jan 1 2008, 19:22
|- - prottoss   Цитата(zltigo @ Jan 2 2008, 02:22) Наскол...   Jan 1 2008, 19:58
||- - zltigo   Цитата(prottoss @ Jan 1 2008, 21:58) наде...   Jan 1 2008, 20:21
|- - Сергей Борщ   Цитата(zltigo @ Jan 1 2008, 21:22) Это IA...   Jan 2 2008, 12:05
|- - prottoss   Цитата(Сергей Борщ @ Jan 2 2008, 19:05) Н...   Jan 2 2008, 12:17
|- - zltigo   Цитата(Сергей Борщ @ Jan 2 2008, 14:05) Н...   Jan 2 2008, 12:54
|- - Сергей Борщ   Цитата(zltigo @ Jan 2 2008, 14:54) Может ...   Jan 2 2008, 13:49
|- - zltigo   Цитата(Сергей Борщ @ Jan 2 2008, 15:49) Н...   Jan 2 2008, 14:30
- - Rst7   А давайте посмотрим на это дело с другой стороны. ...   Jan 2 2008, 20:53
|- - prottoss   Цитата(Rst7 @ Jan 3 2008, 03:53) А давайт...   Jan 3 2008, 09:46
- - Rst7   А покажите код, как и куда Вы вытаскиваете этот за...   Jan 4 2008, 07:57
|- - prottoss   Цитата(Rst7 @ Jan 4 2008, 14:57) А покажи...   Jan 4 2008, 11:30
- - Rst7   Цитатаобрабатываю прям в блоке буфера DMA EMAC Т...   Jan 4 2008, 16:41
|- - prottoss   Цитата(Rst7 @ Jan 4 2008, 23:41) Так в эт...   Jan 4 2008, 16:56
- - Rst7   ЦитатаТаким образом все блоки выровнены с алигном ...   Jan 4 2008, 20:35
- - prottoss   Опять наступаю на те жн грабли, и опять мне не пон...   Jan 12 2008, 22:18


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

 


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


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