-
Content Count
125 -
Joined
-
Last visited
Community Reputation
0 ОбычныйAbout bolmoe
-
Rank
Частый гость
- Birthday 07/01/1975
Контакты
-
Сайт
Array
-
ICQ
Array
Информация
-
Город
Array
Recent Profile Visitors
1615 profile views
-
Спасибо за совет! Попробовал, netconn_bind() для pppos стало возвращать /** Address in use. */ ERR_USE = -8 Драйвер для модема ошибок не возвращает. netconn_bind() начинает возвращать ошибку, только после пинга по ETH
-
Доброго времени суток! Проблема такая..... Организовал в lwip (STM32 CUBE) работу через eth - все работает. Одновременно необходимо скидывать данные через gsm - организовал pppos, тоже работает. Для pppos все CRC define в lwipopts.h установил в 1. Переключаюсь с (eth) на (pppos) через netif_set_default(...) Периодически требуется пинговать контроллер через eth. Контроллер не пингуется. Добрался до функции в ethernetif.c low_level_output(). В нее пакет-ответ пинга поступает с правильной контрольной суммой. Передается в ДМА и на компе вайршарком в пакете вижу CRC=0. Т.е. в буфере до HAL_ETH_TransmitFrame(&heth, framelength); пакет с правильным CRC, а в полученном пакете CRC=0. Но этого мало, после нескольких пингований устройства pppos перестает работать. Т.е. функция netconn_bind(conn, netif_ip4_addr(ppp_netif(ppp)), 4555); возвращает ошибку ERR_TIMEOUT. Подскажите где, что , куда посмотреть!?
-
Спасибо! Буду разбираться! Согласен, что Куб развращает, но... скорость разработки возрастает, если время поджимает и приложение не требовательно по таймингу :) С stm только начинаю работать, до этого на nxp сидел (сижу)
-
В своем STM32 CUBE MX не нашел. Надо качать отдельно lwip?
-
Доброго времени суток! Возникла задача пинговать контроллером удаленный сервер. Готовой функции в lwip нет. В инете шашел пару реализаций ping, но в контроллере не заработало. Может кто встречался с решением этого вопроса. Подтолкните в нужную сторону!
-
СПАСИБО за ответы, я сам отчудил. Извините .... адрес для HEAP указал 0х0100 0000 вместо 0x1000 0000 Все работает! "РАЗГРЕБ КУЧУ" :)
-
__HAL_RCC_CCMDATARAMEN_IS_CLK_ENABLED(); результат тот же r0=0x 0100 0004
-
malloc ничего не возвращает, в "режиме отладки" доходит до выделения памяти и в самом malloc() при выполнении 0x08000CBE E9C02400 STRD r2,r4,[r0,#0] следующим шагом в HardFault_Handler(void)
-
в map вроде все нормально Image$$ARM_LIB_HEAP$$ZI$$Base 0x01000000 Number 0 anon$$obj.o(ARM_LIB_HEAP.bss) Image$$ARM_LIB_HEAP$$ZI$$Limit 0x01000800 Number 0 anon$$obj.o(ARM_LIB_HEAP.bss) ... Memory Map of the image Image Entry point : 0x08000189 Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00000d5c, Max: 0x00080000, ABSOLUTE) Execution Region ARM_LIB_HEAP (Base: 0x01000000, Size: 0x00000800, Max: 0x00000800, ABSOLUTE, UNINIT) Base Addr Size Type Attr Idx E Section Name Object 0x01000000 0x00000800 Zero RW 2 ARM_LIB_HEAP.bss anon$$obj.o а в main() я смотрел через debugger, который доходит до malloc() и сваливается в hardfault...
-
Попытался разместить стек и кучу в ССМ памяти. Делал все через скаттер файл. В отладке вижу, что стек лег по нужному адресу. А вот с heap проблемы. Первый же вызов malloc() и программа сваливается в HardFault_Handler(). Попробовал heap вернуть по адресу внутренней RAM 0х20000000 - все ОК. Кто нибудь сталкивался с этим...? Скаттер файл: LR_IROM1 0x08000000 0x00080000 { ; load region size_region ER_IROM1 0x08000000 0x00080000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00020000 { ; RW data .ANY (+RW +ZI) } ARM_LIB_STACK 0x10003000 EMPTY -0x800{ } ARM_LIB_HEAP 0x1000000 EMPTY 0x0800 {; Heap region growing up } } Программа: int main(void) { uint8_t *ptr; HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); [size=3]ptr=malloc(10);[/size] *(ptr++)=125; ..... while(1); }
-
MAESTRO 100evo IP
bolmoe replied to bolmoe's topic in Сотовая связь и ее приложения
Разобрался! Поставил последнюю версию OpenAT и все "болячки" прошли -
MAESTRO 100evo IP
bolmoe posted a topic in Сотовая связь и ее приложения
Может кто работал с этим модемом...? Прошиваю свой скрипт, начинается работа, затем вылетает при tcpClientCreate(), попадает в обработчик сообщений CEV_ERROR=-994(Invalid option or parameter value.). По мануалу в этом модеме WMP100. Работал с GL6100, в котором так же WMP100, скрипт рабтал без вылетов. Этот же скрипт работал и в Q2686. В чем могут быть траблы? -
wip_write в open at TCP/IP
bolmoe replied to Vlad1977's topic in Сотовая связь и ее приложения
все таки лучше прикрутить подтверждение приема пакета на серваке, если нет, то повтор пакета Кстати, пропадает только последний пакет? -
Q64 организация TCP/IP с помощью OpenAt
bolmoe replied to parfum's topic in Сотовая связь и ее приложения
Честно говоря не сталкивался, задача немного другая, используем FASTRACK GO( 2686) и GL6100(WMP 100). Питаются от сети 220В, постоянно в GPRS висит, получает от и отправляет данные на сервер(а)... :) Энергию не бережем :) кстати, а DTR сигнал учитываете, а то при AT+W32K=1 отруливание SLEEP режимом происходит сигналом DTR, может просто терминал не находится в sleep режиме? Чтобы без DTR -> AT+W32K=1,0 -
Q64 организация TCP/IP с помощью OpenAt
bolmoe replied to parfum's topic in Сотовая связь и ее приложения
По поводу ошибки - WIP_BERR_BAD_HDL При открытии есть параметр wip_bearer_t *br, его же надо и при закрытии использовать //глобальная переменная wip_bearer_t br; wip_bearerOpen( &br, "GPRS", Handler обработчик сообщений, NULL) wip_bearerStart ( br ); wip_bearerClose( br);