Поиск сообщества
Показаны результаты для тегов 'FreeRTOS'.
Найдено: 5 результатов
-
Добрый день! Пытаюсь запустить SDкарту по 4-проводному интерфейсу совместно с использованием библиотеки STemWin под управлением FreeRTOS. Как только запускаю GRAPHICS_Init(), SDкарта перестает работать. Объясните, пожалуйста, в чем может быть причина.
-
День добрый! Имеется sim-карта со статическим IP и модем SIM800C, который через UART соединен с STM32F0. Прочитав статью на хабре, которая и являлась отправной точкой, было решено повторить подвиг, но в версии lwip 2.0.3, которой я пользуюсь, ppp изменился до неузнаваемости, что сначала внесло некоторый сумбур. Но в документации к lwip был найден текстовый файл с настройкой ppp-соединения (ppp.txt, прикреплю его ниже), в котором было все, что нужно для счастья, но когда модем начал общаться с контроллером, дальше фазы LCP дело не зашло. Как я понял из документа (ppp_connect.docx), который оказался у меня уже-и-не-помню-откуда, после конфигурирования параметров соединения в фазе LCP контроллер должен посылать в модем пакет с заголовком PAP (C0 23), но он почему-то этого не делает... Он вообще больше ничего не делает. Я пытался проследить в отладчике весь путь запроса, что приходит от модема, но это только больше меня запутало. Собственно, прием данных у меня организован через прерывание. После ввода AT-команды "ATD*99***1#" и получения ответа "CONNECT", устанавливается флаг "ppp_enable" и при приходе байта он кладется в очередь `xQueue_PPP_Package`. void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { uint8_t u8; if(huart == &huart1) { if (ppp_enable == true) { portBASE_TYPE xHigherPriorityTaskWoken_PPP_Rx; u8 = Sim800.UsartRxTemp; xHigherPriorityTaskWoken_PPP_Rx = pdFALSE; xQueueSendFromISR(xQueue_PPP_Package, &u8, &xHigherPriorityTaskWoken_PPP_Rx); } else { /*Reception of AT commands*/ } HAL_UART_Receive_IT(&huart1,&Sim800.UsartRxTemp,1); } } В задаче `StartLwIPTask` в бесконечном цикле проверяется эта очередь и при появлении элементов, записывает их в массив `PPPx.Data` и при фиксации второго HDLC-заголовка (0x7E), отправляет данные в lwip функцией `pppos_input`. P.S. Переменная `PPPx.Last_Index` это размер пришедшего ppp-пакета. void StartLwIPTask(void const * argument) { /* USER CODE BEGIN StartLwIPTask */ /*Создаем очередь*/ xQueue_Sim800_Package = xQueueCreate(128, sizeof(uint8_t)); xQueue_PPP_Package = xQueueCreate(128, sizeof(uint8_t)); uint8_t u8=0; volatile int setup = 0; tcpip_init( NULL, NULL ); /*Инициализация стека tcp/ip*/ /*Create a new PPPoS interface*/ ppp = pppos_create(&ppp_netif, output_cb, status_cb, 0); // /* Auth configuration, this is pretty self-explanatory */ ppp_set_auth(ppp, PPPAUTHTYPE_PAP, "beeline", "beeline"); /* Require peer to authenticate */ ppp_set_auth_required(ppp, 1); /*Only for PPPoS, the PPP session should be up and waiting for input.*/ ppp_set_silent(ppp, 1); /* * Initiate PPP listener (i.e. wait for an incoming connection), can only * be called if PPP session is in the dead state (i.e. disconnected). */ ppp_listen(ppp); /* Infinite loop */ for(;;) { if (sim800_init() == S_RESET) /*Настройка модуля Sim800*/ continue; for (;;) { if (pdPASS == xQueueReceive(xQueue_PPP_Package, &u8, 100/portTICK_RATE_MS)) { if (u8 == 0x7E) t++; PPPx.Data[PPPx.Last_Index++] = u8; if (t==2) { PPPx.Last_Index--; pppos_input(ppp, PPPx.Data, PPPx.Last_Index); t=0; memset(&PPPx, 0, sizeof(PPPx)); } } } } /* USER CODE END StartLwIPTask */ } Как я писал выше, все идет хорошо, пока идет фаза LCP, но после подтверждения контроллера запроса опций, наступает тишина. В интернете мне удалось найти довольно мало исчерпывающей информации и примеров по связке stm32+lwip+ppp, если кто-нибудь занимался подобным или сталкивался с похожей проблемой, буду очень признателен за помощь и за пинки в нужном направлении. Заранее спасибо. ppp.txt ppp_connect.docx
-
Основные обязанности: •проектирование, разработка и поддержка ПО для встраиваемых систем; •сопровождение кода и тестов; •документирование разрабатываемого ПО; Требования к кандидату: • опыт работы от 3 лет; • уверенное знание C; • опыт разработки встраиваемых приложений; • опыт работы с платформами на ARM-процессорах; • опыт работы с STM32; • опыт работы с ОСРВ (желательно FreeRTOS); • опыт работы с Keil, System Workbench; • опыт работы c ModBus, USB, CAN; Приветствуется: • опыт проектирования архитектур ПО; • знание Python; Условия: •трудоустройство по ТК РФ; •доход обсуждается с успешным кандидатом (от 60 тыс.руб.) •дистанционная работа, можно работать из дома; •выплаты заработной платы 2 раза в месяц Наш сайт: http://i-mt.net/ Моя почта: dezh@i-mt.net Мой мобильный: +7963 776 36 55 С уважением, Михаил.
-
- STM32
- ARM процессор
-
(и ещё 7 )
C тегом:
-
Вроде нет у нас темки по FreeRTOS. Создам, пусть будет. И так, первый вопросик на засыпку. А можно ли её на халяву использовать в коммерческих проектах ? Мне, конечно, без разницы, во всех проектах я делаю свои планировщики, но почему бы не попробовать что-нибудь готовое.