|
Несколько вопросов начинающего |
|
|
|
 |
Ответов
|
Dec 23 2013, 17:33
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
не путай vTaskDelay и vTaskDelete. vTaskDelay - не удаляет задачу, а задерживает. Про зачистку памяти..... Цитата Замечание: idle задача ответственна за освобождение выделенной памяти задач, которые были удалены. Поэтому важно, чтобы idle задача имела микроконтроллерное время на работу, если ваше приложение делает какие-нибудь вызовы vTaskDelete (). Память, выделенная коду задачи автоматически не освобождается, и должна быть освобождена прежде, чем задача будет удалена. Ту память, которую занимала прибитая задача, зачистит idle. А ту память которую выделили задаче до создания задачи, нужно руками зачищать. например death.c Код void vCreateSuicidalTasks( unsigned portBASE_TYPE uxPriority ) { unsigned portBASE_TYPE *puxPriority;
/* Create the Creator tasks - passing in as a parameter the priority at which the suicidal tasks should be created. */ puxPriority = ( unsigned portBASE_TYPE * ) pvPortMalloc( sizeof( unsigned portBASE_TYPE ) ); *puxPriority = uxPriority;
xTaskCreate( vCreateTasks, "CREATOR", deathSTACK_SIZE, ( void * ) puxPriority, uxPriority, NULL );
/* Record the number of tasks that are running now so we know if any of the suicidal tasks have failed to be killed. */ uxTasksRunningAtStart = uxTaskGetNumberOfTasks(); } Если задача vCreateTasks сама себя удалит, или её удалит кто-то другой, то память, веделенная вызовом pvPortMalloc не освободится. Нужно позаботится об её освобождении. Поэтому в задаче vCreateTasks делается ручная зачистка Код unsigned portBASE_TYPE uxPriority; //создается новая переменная на стеке ...
uxPriority = *( unsigned portBASE_TYPE * ) pvParameters; //копируется данные из динамической выделенной памяти pvParameters в uxPriority vPortFree( pvParameters ); //удаляется динамически выделенная память.
|
|
|
|
|
Dec 24 2013, 02:29
|

Гуру
     
Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702

|
juvf, огромное спасибо !!! Наблюдения : Разбирался с переполнением стека. vApplicationStackOverflowHook иногда работает, иногда нет. А если вставить вот такую функцию-заглушку перед каждым созданием новой задачи, она даст 100% верный результат. vTaskDelay(1); нужен для того что бы запустить Idle Task которая память освободит если этого ещё не случилось после удаления задач. В худшем случае программа просто зацыклится внутри этой функции, и я буду точно знать в какой момент память кончилась. Код //функция- костыль ////////////////////////////////////// void CHECK_FREE_MEMORY(void) { xxx=xPortGetFreeHeapSize(); while(xxx<256) { xxx=xPortGetFreeHeapSize(); vTaskDelay(1); } }
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|
|
|
|
|
Dec 24 2013, 03:20
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(MiklPolikov @ Dec 24 2013, 07:29)  vApplicationStackOverflowHook иногда работает, иногда нет. У vApplicationStackOverflowHook есть два режима. см КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 11 '2011, стр 104, "Контроль переполнения стерка". Пробуй Метод контроля переполнения стека № 2. Ну и как я понял проблема в том, что не хватает памяти в общем стеке для создания новой задачи. А vApplicationStackOverflowHook контролирует переполнение стека не общего, а стека задачи самой задачей. Цитата А если вставить вот такую функцию-заглушку перед каждым созданием новой задачи, она даст 100% верный результат. ээээ..... не совсем понятно что делает заглушка? Проверяет есть ли 256 байт или 256*size_t байт доступно в общем стеке? Не нашол описание на xPortGetFreeHeapSize(). какую модель памяти используешь? на оф сайте Цитата The xPortGetFreeHeapSize() API function returns the total amount of heap space that remains unallocated (allowing the configTOTAL_HEAP_SIZE setting to be optimised), but does not provided information on how the unallocated memory is fragmented into smaller blocks. Т.е. у тебя может быть в общей куче 500 байт свободно, 50 блоков по 10 байт. ни одну новую задачу создать не возможно. Память фрагментирована. Твой костыль тут не поможет. Поможет возвращяемое значение xTaskCreate()Цитата Возвращает: pdPASS - если задача успешно создана и добавлена в список готовых, иначе возвращает код ошибки, определенный в файле errors. h
|
|
|
|
|
Jan 6 2014, 06:57
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(MiklPolikov @ Jan 6 2014, 05:32)  Стало любопытно, каким образом память становится фрагментирована на куски по 10 байт ? После того как была удалена задача со стеком 60 байт, и создана новая задача со стеком 50 , стек которой заполнил освободившуюся "дырку"? Да Цитата А она потом сама автоматически дефрагментируется ? Нет Дружище..... тебя уже не раз отсылали к статьям Курниц. Там же ответы на все твои вопросы. На русском разжовано и с картинками выложенно. По поводу фрагментации памяти см КиТ №5 2011 стр 99. Там не совсем свежее описание, нет модели 4, но 1-3 модели описанны хорошо.
|
|
|
|
|
Jan 6 2014, 08:12
|

Гуру
     
Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702

|
Цитата(juvf @ Jan 6 2014, 10:57)  Дружище..... тебя уже не раз отсылали к статьям Курниц. Там же ответы на все твои вопросы. На русском разжовано и с картинками выложенно. По поводу фрагментации памяти см КиТ №5 2011 стр 99. Там не совсем свежее описание, нет модели 4, но 1-3 модели описанны хорошо. Конечно же я их прочитал. И не только их. Ну всего же не запомнишь...
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|
|
|
|
|
Jan 6 2014, 14:44
|

Гуру
     
Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702

|
У меня новый вопрос. Правильно ли я отдаю симафор из прерывания и переключаю в нём контекст ? Такая проблема : работает, но через 5 минут(точной привязки ко времени нет) начинает работать неправильно. Остальные задачи начинают тормозить, будто бы задача забирающая симафор vRTC_Read_Time_Task начала использовать всё машинное время. Второй день не могу даже точно понять что происходит . Заранее спасибо !!! Код ////////////////////////////читаем время из RTC сразу после выдачи симафора из ежесекундного прерывания////////////////////////////////////// void vRTC_Read_Time_Task (void * pvParameters) { while(1) { xSemaphoreTake( x_RTC_Second_Change, portMAX_DELAY ); /* ..................... */ }
///////прерывание RTC ALARM 1 раз в секунду//////////////////////////////////////////////// void RTC_Alarm_IRQHandler(void) { portBASE_TYPE pxHigherPriorityTaskWoken; EXTI->PR|=(1<<17); RTC->ISR&=~RTC_ISR_ALRAF; //сбрасываем флаги прерывания xSemaphoreGiveFromISR(x_RTC_Second_Change,&pxHigherPriorityTaskWoken); if(pxHigherPriorityTaskWoken==pdTRUE) taskYIELD(); //переключаем контекст }
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|
|
|
|
|
Jan 7 2014, 08:19
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(MiklPolikov @ Jan 6 2014, 20:44)  Код ///////прерывание RTC ALARM 1 раз в секунду//////////////////////////////////////////////// void RTC_Alarm_IRQHandler(void) { portBASE_TYPE pxHigherPriorityTaskWoken; EXTI->PR|=(1<<17); RTC->ISR&=~RTC_ISR_ALRAF; //сбрасываем флаги прерывания xSemaphoreGiveFromISR(x_RTC_Second_Change,&pxHigherPriorityTaskWoken); if(pxHigherPriorityTaskWoken==pdTRUE) taskYIELD(); //переключаем контекст } Какой камень? А вроде не правильное переключение контекста, у меня чото не задружило переключение taskYIELD() для NIOS и для STM32. Так Код void USART1_IRQHandler(void) { static uint8_t byte; [b]static [/b]portBASE_TYPE xHigherPriorityTaskWoken; xHigherPriorityTaskWoken = pdFALSE; if(USART1_SR_bit.RXNE == 1) { // byte = USART1_DR; xQueueSendToBackFromISR(uart485Queue, &byte, &xHigherPriorityTaskWoken); } [b]portEND_SWITCHING_ISR(xHigherPriorityTaskWoken == pdTRUE);[/b] } лучше xHigherPriorityTaskWoken сделать статиком ну и определи configASSERT, может косяк выскочит из-за конфига ртос
|
|
|
|
|
Jan 7 2014, 20:05
|

Гуру
     
Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702

|
Цитата(juvf @ Jan 7 2014, 12:19)  Какой камень? А вроде не правильное переключение контекста, у меня чото не задружило переключение taskYIELD() для NIOS и для STM32. Так лучше xHigherPriorityTaskWoken сделать статиком ну и определи configASSERT, может косяк выскочит из-за конфига ртос STM32L151 Сделал xHigherPriorityTaskWoken статиком Заменил taskYIELD(); на portYIELD_FROM_ISR(xHigherPriorityTaskWoken == pdTRUE); (это то же самое что у Вас portEND_SWITCHING_ISR ) Сделал через очередь xQueueSendFromISR Ничего не изменилось. Что такое configASSERT не понимаю. Объясните пожалуйста в двух словах. Прочитал про него на сайте Freertos, вижу как определён. А что он делает-то и как его "определить" ? #define configASSERT( ( x ) ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ ) И ещё : где взять 100% правильный файл FreeRtosConfig.h для STM32L151 Keil FreeRTOS V7.6.0 ? В разных примерах есть "вроде бы подходящие" файлы, и с ними до сих пор работало. Ну а какой точно нужен ? Может в этом дело ?
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|
|
|
|
|
Jan 9 2014, 03:22
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(MiklPolikov @ Jan 8 2014, 02:05)  Что такое configASSERT не понимаю. Объясните пожалуйста в двух словах. Прочитал про него на сайте Freertos, вижу как определён. А что он делает-то и как его "определить" ? #define configASSERT( ( x ) ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ ) configASSERT - это проверка правильности настройки фрииртос. этот дефайн отнимает немного процесорного времени и нужен только для начального дебага(проверки) ртос. Когда гдето ртос начинает глючить, есть вероятность что не правильно что-то заданно. например у меня было #define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 ) создал задачу с приоритетом 5. вроде работало, но иногда сбоило. определил configASSERT в FreeRtosConfig.h Код #define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for(;; ); } сразу при создании задачи застрял в одном месте ртос с коментами типа "попытка создать задачу с приоритетом >= 5". оказалось что configMAX_PRIORITIES должен быть на 1 выше самого высокого приоритета задачи. Потом во фрииртос сложная замута с приоритетами задач и прерываний. В стм32 ещё приоритеты прерываний в обратном порядке. Чтобы ртос коректно крутилась нужно правильно назначить configKERNEL_INTERRUPT_PRIORITY и configMAX_SYSCALL_INTERRUPT_PRIORITY..... для stm32 это вообще квест.... попробую объяснить. В демках так Код /* This is the raw value as per the Cortex-M3 NVIC. Values can be 255 (lowest) to 0 (1?) (highest). */ #define configKERNEL_INTERRUPT_PRIORITY 255 /* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ #define configMAX_SYSCALL_INTERRUPT_PRIORITY 191 /* equivalent to 0xb0, or priority 11. */
/* This is the value being used as per the ST library which permits 16 priority values, 0 to 15. This must correspond to the configKERNEL_INTERRUPT_PRIORITY setting. Here 15 corresponds to the lowest NVIC value of 255. */ #define configLIBRARY_KERNEL_INTERRUPT_PRIORITY 15 configKERNEL_INTERRUPT_PRIORITY - с этим всё понятно. ядру низший приоритет. #define configMAX_SYSCALL_INTERRUPT_PRIORITY 191 /* equivalent to 0xb0, or priority 11. */ - вот это загадка. 191 в хексе = 0xbf. для моего stm32 в назначении приоритета учавствует только старшая тетрада. поэтому bf equivalent to 0xb0. 0 отбрасываем.... приоритет 0хb, или 11. Так вот.... если вы используете прерывания, пишете обработчики прерывания, и если в обработчике прерывания нет API, то прерывание может быть с любым приоритетом. А если из обработчика прерывания есть вызов API, то источник прерывания должен быть с приоритетом не выше configMAX_SYSCALL_INTERRUPT_PRIORITY, в моем случае не выше 11. Т.е. у вас приоритет для RTC_Alarm_IRQHandler должен быть равен или ниже configMAX_SYSCALL_INTERRUPT_PRIORITY. 0 - вроде как высший приоритет в стм32. т.е. если configMAX_SYSCALL_INTERRUPT_PRIORITY=191, то приоритет RTC_Alarm_IRQHandler должен быть от 15 до 11 включительно. configASSERT также проверит приоритеты прерываний. В моем компиляторе нет макросов __FILE__, __LINE__, да и выводить не куда. поэтому у меня вечный вайл for( ;; ); Цитата И ещё : где взять 100% правильный файл FreeRtosConfig.h для STM32L151 Keil FreeRTOS V7.6.0 ? Ну так а чего там может быть правильно и неправильно. разберись с каждой строчкой и сделай свой. Не сложно вроде.
|
|
|
|
|
Jan 11 2014, 11:55
|
Знающий
   
Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245

|
Цитата(MiklPolikov @ Jan 11 2014, 13:09)  juvf, огромное спасибо, сделал приоритет прерывания от RTC 12 и проблема исчезла !!!
Что делает это configMAX_SYSCALL_INTERRUPT_PRIORITY так и не могу понять. Как понимаю из документации, прерывания выше этого приоритета используются самой операционкой, поэтому они и должны быть выше всех остальных. Но почему их так много, 11 ? Ведь операционка использует всего 3 прерывания, вот эти #define xPortSysTickHandler SysTick_Handler #define xPortPendSVHandler PendSV_Handler #define vPortSVCHandler SVC_Handler В СТМ какие прерывания более приоритетны? И 11 это не значит их количество, это приоритет прерывания. http://microsin.net/programming/ARM/freertos-part3.html ищите пункт 3.5 и ниже. так же читайте про приоритеты прерываний для вашего процессора.
|
|
|
|
|
Jan 11 2014, 12:15
|

Гуру
     
Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702

|
Цитата(Lagman @ Jan 11 2014, 15:55)  В СТМ какие прерывания более приоритетны? И 11 это не значит их количество, это приоритет прерывания. http://microsin.net/programming/ARM/freertos-part3.html ищите пункт 3.5 и ниже. так же читайте про приоритеты прерываний для вашего процессора. Понимаю что 11 это не количество прерываний а приоритет. Но ведь выходит, что операционка резервирует для своих нужд все приоритеты выше 11, т.е. 11 разных приоритетов , и возникает вопрос почему так много, если реально используется меньше прерываний.
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|
|
|
|
Сообщений в этой теме
MiklPolikov Несколько вопросов начинающего Nov 16 2013, 13:09 AlexMad А нельзя просто, по результату полученного сообщен... Nov 16 2013, 17:13 Lagman Цитата(MiklPolikov @ Nov 16 2013, 17:09) ... Nov 16 2013, 19:06 MiklPolikov Цитата(Lagman @ Nov 16 2013, 23:06) Можно... Nov 16 2013, 19:16  MiklPolikov Вопрос 2 :
Есть USB библиотека. К ней я обращаюсь... Nov 16 2013, 21:35   MiklPolikov Вопрос 3:
Почему 2 задачи работают, а если зап... Nov 17 2013, 23:54    MiklPolikov Вопрос 4:
Почему в файле FreeRtosConfig.h нету п... Nov 18 2013, 02:02   Lagman Цитата(MiklPolikov @ Nov 17 2013, 01:35) ... Nov 18 2013, 19:32    MiklPolikov Цитата(Lagman @ Nov 18 2013, 23:32) Можно... Nov 18 2013, 20:41     Lagman Цитата(MiklPolikov @ Nov 19 2013, 00:41) ... Nov 18 2013, 21:28      MiklPolikov 6 ) Вопрос по структуре программы :
Допустим есть... Nov 21 2013, 11:47       kolobok0 Цитата(MiklPolikov @ Nov 21 2013, 15:47) ... Nov 21 2013, 16:49        MiklPolikov Ещё вопрос, №7
Правильно ли я понимаю, что люб... Dec 9 2013, 03:15         kolobok0 Цитата(MiklPolikov @ Dec 9 2013, 07:15) .... Dec 9 2013, 22:23         juvf Цитата(MiklPolikov @ Dec 9 2013, 09:15) П... Dec 11 2013, 04:28          MiklPolikov Объясните, как подружить FREERTOS и STM32F030 ?
... Dec 21 2013, 17:32           kolobok0 Цитата(MiklPolikov @ Dec 21 2013, 21:32) ... Dec 21 2013, 22:16           juvf Цитата(MiklPolikov @ Dec 21 2013, 22:32) ... Dec 22 2013, 07:10            MiklPolikov juvf , спасибо, получилось. Моя проблема была в то... Dec 22 2013, 13:49             MiklPolikov Вопрос про удаление задач.
Как это организовать пр... Dec 23 2013, 10:38              juvf Цитата(MiklPolikov @ Dec 23 2013, 16:38) ... Dec 23 2013, 11:00               MiklPolikov juvf, спасибо !
У меня ещё вопрос .
В докумен... Dec 23 2013, 16:00       kolobok0 Цитата(MiklPolikov @ Jan 6 2014, 18:44) .... Jan 6 2014, 17:55        MiklPolikov Цитата(kolobok0 @ Jan 6 2014, 21:55) в ко... Jan 6 2014, 21:06         kolobok0 Цитата(MiklPolikov @ Jan 7 2014, 01:06) К... Jan 6 2014, 23:04          MiklPolikov Цитата(kolobok0 @ Jan 7 2014, 03:04) вот ... Jan 7 2014, 00:38             Lagman Цитата(MiklPolikov @ Jan 11 2014, 16:15) ... Jan 11 2014, 12:27 MiklPolikov Цитата(juvf @ Dec 23 2013, 21:33) Про зач... Jul 17 2014, 13:17  juvf Цитата(MiklPolikov @ Jul 17 2014, 19:17) ... Jul 17 2014, 19:30   DASM Цитата(juvf @ Jul 17 2014, 23:30) Более т... Jul 17 2014, 19:39    juvf Цитата(DASM @ Jul 18 2014, 01:39) Если на... Jul 17 2014, 20:40   MiklPolikov Цитата(juvf @ Jul 17 2014, 23:30) ps если... Jul 17 2014, 19:47    juvf Цитата(MiklPolikov @ Jul 18 2014, 01:47) ... Jul 17 2014, 20:09     MiklPolikov Цитата(juvf @ Jul 18 2014, 00:09) хороший... Jul 17 2014, 20:12 juvf На сколько я понял.... ос использует приоритеты ни... Jan 11 2014, 20:48 MiklPolikov Ещё один вопрос :
Почему в задачу vApplicationStac... Jan 13 2014, 08:52  juvf Цитата(MiklPolikov @ Jan 13 2014, 14:52) ... Jan 13 2014, 10:56   MiklPolikov Цитата(juvf @ Jan 13 2014, 14:56) Не знаю... Jan 13 2014, 11:57    MiklPolikov Вопрос по организации алгоритма :
Допустим начала... Feb 4 2014, 20:46     juvf для этого существуют эвэнты. в v8.0 наконецто их д... Feb 5 2014, 02:25     Timma Цитата(MiklPolikov @ Feb 5 2014, 00:46) В... Feb 5 2014, 13:16      MiklPolikov Ещё вопрос:
Как я понял , для того что бы использ... Feb 12 2014, 19:37 juvf Я работал с флагами (эвентами) в др ртос. В ФрииРТ... Feb 14 2014, 02:42 MiklPolikov Настроил как написал выше, и вроде бы всё хорошо.
... Feb 14 2014, 07:21  MiklPolikov И ещё вопрос по флагам событий :
Я верно понимаю, ... Feb 15 2014, 10:02  _Артём_ Цитата(MiklPolikov @ Feb 14 2014, 11:21) ... Feb 15 2014, 14:19   MiklPolikov Ещё один вопрос, по архитектуре кода :
Перевожу с... Apr 24 2014, 14:41    kolobok0 Цитата(MiklPolikov @ Apr 24 2014, 18:41) ... Apr 24 2014, 18:54     MiklPolikov Цитата(kolobok0 @ Apr 24 2014, 22:54) в) ... Apr 24 2014, 19:25      kolobok0 Цитата(MiklPolikov @ Apr 24 2014, 23:25) ... Apr 25 2014, 18:08     juvf Цитата(kolobok0 @ Apr 25 2014, 00:54) в) ... Apr 26 2014, 04:18      MiklPolikov Ещё один вопрос:
Требуется экономить потребляемый... Apr 29 2014, 10:22      kolobok0 Цитата(juvf @ Apr 26 2014, 08:18) ...Когд... Apr 29 2014, 20:36 DASM Б Apr 24 2014, 16:08 Lagman http://www.freertos.org/low-power-tickless-rtos.ht... Apr 30 2014, 11:27 MiklPolikov Цитата(Lagman @ Apr 30 2014, 15:27) http:... Apr 30 2014, 12:56 Lagman Я сильно не вникал т.к. не использую режимы энерго... Apr 30 2014, 18:08 MiklPolikov Может кто подскажет :
Есть задача, которая создаёт... May 4 2014, 18:54  MiklPolikov Разобрался, дело было в недостаточном стеке задачи... May 6 2014, 16:53 juvf 2MiklPolikov
по существу не скажу. такого опыта не... May 7 2014, 07:43 MiklPolikov Цитата(juvf @ May 7 2014, 11:43) 2MiklPol... May 7 2014, 12:13  MiklPolikov Коллеги, ещё один вопрос :
Верно ли я понимаю, чт... May 27 2014, 09:01   juvf Цитата(MiklPolikov @ May 27 2014, 19:11) ... May 28 2014, 00:41    MiklPolikov juvf, спасибо !
Я всегда работал со временем д... May 29 2014, 15:40     Newegor Цитата(MiklPolikov @ May 29 2014, 22:50) ... May 30 2014, 02:50      MiklPolikov Цитата(Newegor @ May 30 2014, 11:00) А во... May 30 2014, 04:13       juvf Цитата(MiklPolikov @ May 30 2014, 14:23) ... May 30 2014, 05:59        MiklPolikov Цитата(juvf @ May 30 2014, 14:09) нет, не... May 30 2014, 06:43         Lagman Цитата(MiklPolikov @ May 30 2014, 14:53) ... May 30 2014, 07:18         juvf Цитата(MiklPolikov @ May 30 2014, 16:53) ... May 31 2014, 06:38       AHTOXA Цитата(MiklPolikov @ May 30 2014, 14:23) ... May 31 2014, 08:25        MiklPolikov Цитата(AHTOXA @ May 31 2014, 16:35) Так н... Jun 8 2014, 09:16         MiklPolikov Коллеги, доброго времени суток.
Не могу до конца ... Jul 12 2014, 00:58          Xenia Цитата(MiklPolikov @ Jul 12 2014, 04:58) ... Jul 12 2014, 13:32           juvf Цитата(Xenia @ Jul 12 2014, 19:32) Судя п... Jul 13 2014, 11:16   msalov Цитата(MiklPolikov @ May 27 2014, 16:11) ... May 30 2014, 05:35 kostyan 2MiklPolikov, фриртос - это операционка с открытым... May 7 2014, 12:04 juvf я думаю что ос работает не так. есть две задачи. у... May 30 2014, 00:37 Lagman эта функция или прототип функции объявлен до вызов... May 30 2014, 05:19 MiklPolikov Цитата(Lagman @ May 30 2014, 13:29) эта ф... May 30 2014, 12:01 Lagman %)
Я знаю что это функция. May 31 2014, 06:21 DASM Читаю все это и волосы дыбом. Тем более что и рабо... Jul 17 2014, 16:10 MiklPolikov Цитата(DASM @ Jul 17 2014, 20:10) Читаю в... Jul 17 2014, 16:46 DASM Если бы я знал «как надо» то не сидел бы тут… увы ... Jul 17 2014, 17:13 Lagman ключевые слова malloc, free и их реализация в порт... Jul 17 2014, 19:11 DASM Кому они ключевые ? Да хоть new, хоть malloc - сут... Jul 17 2014, 19:26 Lagman Цитата(DASM @ Jul 17 2014, 23:26) Кому он... Jul 17 2014, 20:36
2 страниц
1 2 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|