Jump to content

    

framer

Свой
  • Content Count

    46
  • Joined

  • Last visited

Community Reputation

0 Обычный

About framer

  • Rank
    Участник
  1. Возникла проблема с AVR32 (AT32UC3A0512). Точная ситуация описана http://asf.atmel.com/bugzilla/show_bug.cgi?id=3021 . Случай 1, deadlock появляется когда часто высылаю пакеты. Может кто сталкивался с подобными проблемами?
  2. ищется "хороший" TCP/IP стек

    Цитата(Lagman @ Aug 29 2014, 17:37) От производителя, берите и пробуйте http://www.st.com/web/catalog/tools/FM147/...LN1897/PF259243 Так в этом cube ST и предлагает в качестве стека TCP/IP LwIP.
  3. ищется "хороший" TCP/IP стек

    Цитата(TigerSHARC @ Aug 29 2014, 16:16) ага, работал в конторе, где предлагалось дождаться выхода новой версии LwIP, так как были проблемы с Web сервером при Wi-fi соединении... А при чем тут Wi-fI?. LwIP это стек TCP/IP. Сопряжение с контролером MAC это аппаратно-зависимая часть и если нет готовой надо писать самому. Работоспособность во многом зависит от платформы и настроек а сам стек нормальный. Можете спокойно протестировать на PC в качестве платформенной части используется библиотека winpcap.
  4. Проблемы с malloc

    а какой manager памяти? #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 24 * 1024 ) ) используеться в heap_1.c и heap_2.c . При обертке heap_3.c берется скорей из проекта. Точно не знаю может из файла stm32f40x_flash.icf (define symbol __ICFEDIT_size_heap__ = 0x200;)
  5. Цитата(Aeore @ Jun 16 2013, 23:59) Как он может зависеть от платформы, если я сам указываю размеры стеков? Ну а как обяснить показатели использования стека uxTaskGetStackHighWaterMark под Win32? Цитата(Aeore @ Jun 13 2013, 00:09) А вот то же самое, но с WIN32. Как видно, на avr uxTaskGetStackHighWaterMark() возвращает всего ничего, а на win32 все нормально: Т.е. все очень сильно зависит от платформы. Это уже что-то. Заняло по 5 блоков(слов) и все. Видно, что стек в задачах не используется. Все зависит от того как перенесено на WIN32. Под win если посмотреть то таски симулитуютя использованием thread. Там нет переключения контекста с изменением указателей стека. Осуществляется это остановкой текущего thread и запуском следующего (можно посмотреть исходники в prvProcessSimulatedInterrupts ). В таком случае локальные перемнные не распологаються в стеке задачи FreeRtos, а используються механизмы win32. Поэтому отладка стека эфективна на конкретной платформе.
  6. Цитата(Aeore @ Jun 13 2013, 00:09) CODE [SS]: Controller SHW CPControllerService::taskStart 52 SHW CPControllerService::onQueueCommandActioned 7 !!!!! SHW CPStrategyPOSTCommand::start 246 SHW CPControllerService::onQueueCommandActioned 246 Видно, что в некоторых местах стек практически весь использован. Да размер стека выделяемый под задачи зависит от платформы так, что на эмуляторе может все работать.
  7. Цитата(Aeore @ Jun 3 2013, 21:15) А теперь внимание! Добавляем проверочный код в эту таску (который ничего не делает и ни с чем не связан) и вуалля - все начинает работать хорошо: CODE void o(string s) { TRACE(const_cast<char*>(s.c_str())); } void m(string s) { o(s); } void l(string s) { m(s); } void k(string s) { l(s); } void g(string s) { k(s); } void f(string s) { g(s); } void e(string s) { f(s); } void d(string s) { e(s); } void c(string s) { d(s); } void b(string s) { c(s); } void a(string s) { b(s); } // -------------------------------------------------------------------------- void CPLBKLogicService::taskStart( void* const pContext ) // -------------------------------------------------------------------------- { uint32_t q[500]; q[300] = 5; if (q[300] == 5) { a("affected!"); } TRACE( "Svc: LBKLogic started" ); } А проверяли использование стека сомой таской? Сколько выделяете стека на таск xTaskCreate(task, (signed char *)"task", ??? , 0,tskIDLE_PRIORITY + 2, NULL); ? Как я писал локалные переменные ложаться в стек задачи а у Вас локальная переменная во uint32_t q[500];. Попробуйте динамически выделить память, либо сделать глобальную переменную и посмотреть как себя ведет. А что возвращает uxTaskGetStackHighWaterMark( xTaskHandle xTask ); во вложеных функциях ?
  8. А может еще зависит от размера стека для конкретной задачи. В этом случае, это не только количество вызовов функции в глубину но и размеры локальных переменных в этих фунциях. Чтобы точно знать, что переполняеться стек задач надо использовать функцию http://www.freertos.org/uxTaskGetStackHighWaterMark.html
  9. Спасибо заработало
  10. ЦитатаА чем Вам приснопамятный CodeSourcery не угодил? Буду пробовать. Цитата(Сергей Борщ @ Dec 14 2012, 13:28) Работаю с F10х, этот пишется. Пробовал F40x, тоже писался. А как пытаетесь писать, на что жалуется openocd? Наверное при инициализации не делается halt. Может какой то скрипт надо выполнить? А может конфигурация openocd не та. Запускаю так: openocd-0.6.1.exe -f ..\scripts\interface\stlink-v2.cfg -f ..\scripts\target\stm32f4x_stlink.cfg КодOpen On-Chip Debugger 0.6.1 (2012-10-07-10:34) Licensed under GNU GPL v2 For bug reports, read         http://openocd.sourceforge.net/doc/doxygen/bugs.html adapter speed: 1000 kHz Info : clock speed 1000 kHz Info : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints Info : accepting 'gdb' connection from 3333 Info : device id = 0x10016413 Info : flash size = 1024kbytes Warn : acknowledgment received, but no packet pending undefined debug reason 6 - target needs reset Error: Target not halted Error: failed erasing sectors 0 to 4 Error: flash_erase returned -304
  11. Для предыдущих STM раньше брал из Atollic. А с версии 3.1 сделали так что работает только с GDB из пакета Atollic. Там есть авторизация в начале сессии. С openocd отладка работает но ,что то не получается запись .elf во flash. В связи с этим есть несколько вопросов. Может кто нибудь поделиться gdbserver из Atollic 3.0.0? Как научить openocd перед запуском GDB писать .elf во flash? А может есть еще какие нибудь gdbserver для st-link/v2?
  12. ЦитатаА препод пральна сказал. Нефиг плодить неюзабельные программы. Берите LabView и конфигурируйте как все нормальные студенты делают. С одной стороны не писать програм типа LabView с другой стороны скриншеты почти програм типа LabView (есть параметры, состояния текущие и события нехватает визуализации). И такой вопрос, а эта монотиринговя програмка соберает даные по SNMP или реализован свой протокол с устройством балансировки заряда стрингов батарей?
  13. RTEMS, eCos, ...

    Цитата(Doka @ Jan 14 2009, 00:05) так в том-то и дело, что операционки достойные, релизы поддерживаются в актуальном состоянии, с точки зрения лицензионной чистоты для коммерческих приложений тоже всё кузяво, а чтобы кто-то помимо Джавада и Топкона их использовал я не слышал - вот и пытаюсь понять для себя - в чём парадокс?! Не знаю как RTEMS но eCos пробовал поднять на своей платформе. Так что могу выступать как потенциальный чайник. Плюсы следующие: поддерживает посих (так что синтетические порты практически ненужны а отладка драйверов на синтетических портах и так без смысла), маленький футпринт, хорошо стыкован боотлоадер redboot с системой (совместные исходники ). Но конфигураця адская. Модификация исодников конфигуратором хороша для того кто эти исодники писал. Тоесть без хорошего понимания как оно устроено использовать конфигуратор безсмысла (если нет приготовленого под конкретную платформу). Ну и понятно поддержка (как бог дал на группах если платформа не стандартная ). Мне кажеться чтобы использовать eCos то надо пройти следующие этапы чайник -> чайник который понял что надо смотреть на HAL чтобы запортировать свою платформу -> много времени -> какой то результат . A это отображаеться на времени (ну а начальник он и в африке начальник). А что касаетьса RTEMS то много этого есть в телефонах VoIP (SIP).
  14. На счет СНМП - каждый стандарт лучше чем отсутствие стандарта. ИМХО сдесь пропблема лежит в следующем. Температура, влажность даже напряжения на акумуляторах УПС изменаються очень медлено. И тут можно производить опрос СНМП агента (делать поолинг). А если система основана на событиях или быстродействующих сигналах то появлеться проблема синхронизации актуалного состояния на верхнем уровне. В принципе как я заметил нет более мение хорошего стандарта на котором основаны системы мониторинга. И каждый делает как угодно. А все фирмы "телекомы" требуют чтобы был реализован СНМП хотя его не используют.
  15. Удалось запустить Wiggler+OpenOCD+WINARM+Eclipse под Win и протестировать на реальном железе на LPC2214 . Сейчас напряженка с текучкой но готов помочь. А что касаеться "ARM Cross Development with Eclipse" то мне кажеться перевод не нужен. Сильно много воды и документ получаеться большой. Так что FAQ это то что надо. А вообще у меня появилась идея сделать дестрибутив Eclipse с CDT+JDK+ARMGCC+OpenOCD и сосредоточиться только на настойках проекта и отладки. А что касаеться проблем при запуске то припоминаю была проблема 1)с установкой "Path mapping" исходников для GDB (но это проблема помоему только под виндой) 2) разрешение апаратных прерываний в OpenOCD - arm7_9 force_hw_bkpts enable 3) ресет процесора я делал в ручную в openocd soft_reset_halt.