Отговори на тема  [ 1 мнение ] 
STM32 странно поведение 
Автор Съобщение
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Фев 20, 2013 5:18 pm
Мнения: 381
Местоположение: България
Мнение STM32 странно поведение
Не знам какво точно заглавие да сложа, затова такова. Имам един необичаен проблем със STM32F411RE + Eclipse и АRM GCC.
Програмата използва ENC28J60, засега успешно с много копи/пейст от http://www.tuxgraphics.com, обаче някъде нещо съм объркал здраво. Имам тази фунция:
Код:
void www_server_reply(uint8_t *buf, const uint16_t dlen)
{
        make_tcp_ack_from_any(buf,info_data_len,0); // send ack for http get
        HAL_Delay(1); // Not working without this delay
        buf[TCP_FLAGS_P]=TCP_FLAGS_ACK_V|TCP_FLAGS_PUSH_V|TCP_FLAGS_FIN_V; // set flags
        make_tcp_ack_with_data_noflags(buf, dlen); // send data
}


Първата линия в кода изпраща ACK за HTTP GET заявката, която се обработва. Масивът buf е напълнен с каквото трябва от предната фунция. И така, ACK сегментът се изпраща без проблем. След това след слагане на нужните флагове се изпраща същият сегмент, но със данни след TCP хедъра (HTTP).
С две думи, работи когато си ще и само когато има малко време между двете фунции. Ако няма, същият масив се изпраща два пъти...
И в Release, и в Debug е все едно и също. Всички променливи са инлициализирани и имам само едно прекъсване, което променя само един int.
Обаче ако дебъгвам кода стъпка по стъпка не мога да хвана какво става, защото тогава винаги работи.


Пет Юли 24, 2015 6:01 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 1 мнение ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни