реклама на сайте
подробности

 
 
> Несколько вопросов начинающего
MiklPolikov
сообщение Nov 16 2013, 13:09
Сообщение #1


Гуру
******

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



Помогите пожалуйста побыстрее разобраться что к чему.

Вопрос 1:
Есть задача, управляющая миганием светодиода. Мигать он может с разными частотами и разным цветом. Что бы он мигал задача всё время "крутится",
а частота мигания регулируется при помощи vTaskDelay.
Мигание светодиода должно зависеть от результатов выполнения других задач. Как правильнее всего реализовать передачу данных из нескольких разных задач в эту одну ?
Пришло в голову : сделать очередь, в которую все задачи управляющие миганием будут записывать данные по мере их появления. В задаче мигания проверять наличие в очереди непрочитанного элемента. И только если он есть читать, иначе задача заблокируется и светодиод перестанет мигать совсем.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Lagman
сообщение Nov 16 2013, 19:06
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Цитата(MiklPolikov @ Nov 16 2013, 17:09) *
В задаче мигания проверять наличие в очереди непрочитанного элемента. И только если он есть читать, иначе задача заблокируется и светодиод перестанет мигать совсем.

Можно при получении из очереди выставить xTicksToWait и ждать он будет не больше этого количества тиков.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Nov 16 2013, 19:16
Сообщение #3


Гуру
******

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



Цитата(Lagman @ Nov 16 2013, 23:06) *
Можно при получении из очереди выставить xTicksToWait и ждать он будет не больше этого количества тиков.

Большое спасибо !



--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Nov 16 2013, 21:35
Сообщение #4


Гуру
******

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



Вопрос 2 :

Есть USB библиотека. К ней я обращаюсь при помощи всего трёх функций USB_INIT(), USB_RECEIVE(char *p_data), USB_TRANSMIT(char *p_data);
Переписывать всю библиотеку под операционку разумеется желания нет.
Как правильнее всего применить эту библиотеку в проекте, где я решил использовать freeRTOS ? Будет ли правильно просто вставить эти функции в какие-то задачи, чтоб они там вызывались ?
Мой вопрос не "будет ли работать ?" а "как вообще это надо сделать по всем правилам ?"


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
Lagman
сообщение Nov 18 2013, 19:32
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Цитата(MiklPolikov @ Nov 17 2013, 01:35) *
Вопрос 2 :

Есть USB библиотека. К ней я обращаюсь при помощи всего трёх функций USB_INIT(), USB_RECEIVE(char *p_data), USB_TRANSMIT(char *p_data);
Переписывать всю библиотеку под операционку разумеется желания нет.
Как правильнее всего применить эту библиотеку в проекте, где я решил использовать freeRTOS ? Будет ли правильно просто вставить эти функции в какие-то задачи, чтоб они там вызывались ?
Мой вопрос не "будет ли работать ?" а "как вообще это надо сделать по всем правилам ?"

Можно прям так и использовать, только преимуществ от rtos вы не получите. Обрамляете вызовы своих функций (порт USB наверно один) в семафоры или мутексы, чтобы не было двойных вызов (хотя в вытесняющем режиме этого может и не произойти) и обращений к одному железу.

В №3 надо попробовать увеличить configTOTAL_HEAP_SIZE.
В №4 http://microsin.ru/content/view/1309/44/ по умолчанию никому не надо.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Nov 18 2013, 20:41
Сообщение #6


Гуру
******

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



Цитата(Lagman @ Nov 18 2013, 23:32) *
Можно прям так и использовать, только преимуществ от rtos вы не получите. Обрамляете вызовы своих функций (порт USB наверно один) в семафоры или мутексы, чтобы не было двойных вызов (хотя в вытесняющем режиме этого может и не произойти) и обращений к одному железу.

Спасибо. Преимущества получу. У меня же не одна USB задача , и работа с USB занимает малую часть все логики программы.

С вопросом 3 разобрался сам. Не хватает размера кучи. #define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 ) означает стек глубиной 128 4х байтных слов, т.к. процессор 32х разрядный. А #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 17*128) ) означает размер кучи всего 17 * 128 = 2176 байт. Т.е. хватит на 4 задачи, 2 из которых это задача таймера(точно не знаю, по-моему она создаётся после запуска шедуллера и сразу удаляется) и задача бездействия.

Вопрос 5:
Я правильно понимаю, что при создании каждой задачи правильнее указывать какой-то определённый размер стека, который на самом деле нужен, а не одно и то же значение configMINIMAL_STACK_SIZE ?


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
Lagman
сообщение Nov 18 2013, 21:28
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Цитата(MiklPolikov @ Nov 19 2013, 00:41) *
Спасибо. Преимущества получу. У меня же не одна USB задача , и работа с USB занимает малую часть все логики программы.

Вопрос 5:
Я правильно понимаю, что при создании каждой задачи правильнее указывать какой-то определённый размер стека, который на самом деле нужен, а не одно и то же значение configMINIMAL_STACK_SIZE ?

Высокоприоритетные задачи не дадут выполняться менее приоритетным, и когда высокоприоритетные "простаивают" (без оптимизации) ожидание в цикле то все остальные тоже ждут, а если оптимизировать и сказать например vTaskDelay то выполняться будет менее приоритетная задача.

http://microsin.net/programming/ARM/freertos-part1.html
Цитата
Каждая задача имеет собственное уникальное хранилище состояния, выделенное ядром при создании задачи. Значение параметра usStackDepth говорит ядру, какой величины стек необходимо создать.

Значение usStackDepth указывает количество слов, которое можно сохранить в стеке, а не количество байт. Например, если стек имеет ширину 32 бита, и переданное значение usStackDepth равно 100, то под стек будет выделено 400 байт (100 * 4 байт). Глубина стека, умноженная на его ширину, не должна превышать максимальное значение, которое может содержать переменная типа size_t.

Размер стека, используемого для задачи ожидания (idle task, об этой задаче подробнее говорится далее), задается константой configMINIMAL_STACK_SIZE. Значение, назначенное этой константе в демо-приложении FreeRTOS (для определенной архитектуры микроконтроллера) может быть использовано как минимально рекомендованное для любой задачи. Если Ваша программа использует пространство в стеке, то нужно указать для константы configMINIMAL_STACK_SIZE увеличенное значение.

Нет простого способа узнать, какого размера стек нужен для задачи. Этот размер можно вычислить, но в большинстве случаев можно просто назначить подходящее значение, подобранное опытным путем, либо взятое приблизительно. Подобрать правильный размер стека важно, чтобы обеспечить адекватное использование RAM без ненужных затрат. Часть 6 содержит информацию о том, как запросить размер стека, используемого задачей.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Nov 21 2013, 11:47
Сообщение #8


Гуру
******

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



6 ) Вопрос по структуре программы :

Допустим есть задача v_Start_File_Write_Task, которая начинает запись файла на SD карту. Эта задача запускает какие-то ещё задачи, а те в свою очередь возможно запускают ещё задачи.
Как остановить запись файла и удалить все связанные с этим задачи ? Сделать задачу v_Stop_File_Write_Task в которой все связанные с файловой системой задачи будут удалятся ?
Более изящного пути нет ?


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Nov 21 2013, 16:49
Сообщение #9


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(MiklPolikov @ Nov 21 2013, 15:47) *
...Более изящного пути нет ?


не знаю как на счёт изяществ, но... в серверном мире(как пример) просматриваются следующие модели:
1) когда логика отрабатывает по запросам пользователя. Этот вариант смахивает на Ваш. У Вас пользователь = это обращение к карточке.
2) когда есть поток(и) обрабатывающие запросы от любых пользователей к определённым ресурсам.
3) смешенная.

1 вариант не плохо применять в разрезе секьюрности(можно потоку(ам) наследовать уровень доступа самого залогиневшегося пользователя).
минусы - вы тратите доп. ресурсы на подъём и порождения необходимых дочерних потоков, если такие требуются. слабая диспетчеризация
доступа к ресурсам и т.п..

2 вариант просче масштабировать от нагрузке. можно это делать на автоматике даже. при этом можно время подготовки выделяемых
ресурсов убрать в фоновый режим.
минус - вы должны не забывать об уровне прав и отношений в системе пользователя к устройствам и операциям.

возвращаясь к вопросу.
кмк можно породить необходимое кол-во потоков для обработки ваших нужд, и передавать в поток конкретную очередь команд обращений
к данному девайсу. При этом, если задач нет - потоки ожидают на семафорах(либо других элементах синхронизации). При поступлении задачи -
необходимый(ые) потоки просыпаются, делают работу и опять уходят на ожидание.

ЗЫ
Пример:
на одной из серверных осей(НЕ форточки), разграничение доступа к БД было на уровне потоков. Доступ к БД, по условию задачи, возможен
был только со стороны сервера. Обращение к БД было инкапсулировано в один поток. Код обращения к БД резко сократился - механизмы
транзакций(сервер считался защищён с точки зрения отказов железа) и блокировки не использовались. Быстродействие повысилось. Т.к. читала
и писала одна и та-же "правая рука", то целостность базы была обеспечена априори. Т.е. на лету можно было делать бэкапы в фоновом режиме,
заливку данных, сжатие данных, печать любых отчётов за 0 минут 0 секунд.

Сообщение отредактировал kolobok0 - Nov 21 2013, 16:57
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Dec 9 2013, 03:15
Сообщение #10


Гуру
******

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



Ещё вопрос, №7

Правильно ли я понимаю, что любой переход задачи в блокированное состояние, будь то вызов vTaskDelay() , попытка взять симофор, взять элемент из пустой очереди и т.п. эквивалентен форсированному переключению контекста ?
Иными словами, Если у меня во всех задачах либо форсированное переключение контекста, либо какие угодно переводы задачи в блокированное состояние, то я могу быть уверен в том что моя программа "крутится" с максимально возможной скоростью при данной частоте процессора, и системный квант времени фактически ни на что не влияет ?


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
juvf
сообщение Dec 11 2013, 04:28
Сообщение #11


Профессионал
*****

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



Цитата(MiklPolikov @ Dec 9 2013, 09:15) *
Правильно ли я понимаю, что любой переход задачи в блокированное состояние, будь то вызов vTaskDelay() , попытка взять симофор, взять элемент из пустой очереди и т.п. эквивалентен форсированному переключению контекста ?

Нет ни какого форсированного переключения контекста. Есть переключение контекста. При вызове vTaskDelay() ( или попытка взять семафор, взять элемент из пустой очереди и т.п.) планировщик проверит нет ли менее приоритетных задач, готовых к выполнению. Если есть, то будет обычное переключение контекста на др. задачу. Если нет задач, готовых к выполнению, то произойдет переключение контекста на пустую(фоновую) задачу (idle task). Пустую задачу можно определить самому.

Цитата
то я могу быть уверен в том что моя программа "крутится" с максимально возможной скоростью при данной частоте процессора, и системный квант времени фактически ни на что не влияет ?
Системный квант влияет... чем меньше квант, тем чаще вызывается планировщик.

я так понял что вы беспокоитесь о том, что переключение контекста может происходить только при взове планировщика во время системного кванта. Да... во FreeRTOS так и делается.

Допустим системный квант будет 1 раз в сек. При вызове vTaskDelay() переключение контекста произойдет сразуже, не дожидпясь ситемного тика (конца секунды). При попытке захватить семафор.... если семафор занят.... то сразу будет вызван планировщик, т.е. сразу произойдет переключение контекста. Т.е. если пренебречь временем обработки прерывания системного кванта, то системный квант времени фактически ни на что не влияет.

НО! Есть маленький нюанс: Допустим у вас 2 полезные задачи. обе заблокированны. одна ждёт семафор1, другая семафор2. Выполняется idle задача. Если семафор1 выдается в прерывании по приходу, например байта по УАРТ, то в обработчике прерывания УАРТ нужно руками прописывать переключение контекста. см. portEND_SWITCHING_ISR(). Если этого не сделать, то по приходу байта будет выдан семафор, но переключения контекста с задачи idle на задачу 1 не произойдет. Переключение контекста случится по системному тику (в конце секунды). Вот в таком случает системный квант будет влиять на скорость работы программы.

ps почитайте http://kit-e.ru/assets/listalka/Kurniz/Kurniz.pdf там все азы и буки по фриртос да и вообще по ртос, всё разжованно и по полочкам.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MiklPolikov   Несколько вопросов начинающего   Nov 16 2013, 13:09
- - AlexMad   А нельзя просто, по результату полученного сообщен...   Nov 16 2013, 17:13
|- - MiklPolikov   Вопрос 3: Почему 2 задачи работают, а если зап...   Nov 17 2013, 23:54
||- - MiklPolikov   Вопрос 4: Почему в файле FreeRtosConfig.h нету п...   Nov 18 2013, 02:02
|- - kolobok0   Цитата(MiklPolikov @ Dec 9 2013, 07:15) ....   Dec 9 2013, 22:23
|- - 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
- - juvf   не путай vTaskDelay и vTaskDelete. vTaskDelay - н...   Dec 23 2013, 17:33
|- - MiklPolikov   juvf, огромное спасибо !!! Наблюдения...   Dec 24 2013, 02:29
||- - juvf   Цитата(MiklPolikov @ Dec 24 2013, 07:29) ...   Dec 24 2013, 03:20
||- - MiklPolikov   Стало любопытно, каким образом память становится ф...   Jan 6 2014, 00:32
||- - juvf   Цитата(MiklPolikov @ Jan 6 2014, 05:32) С...   Jan 6 2014, 06:57
||- - MiklPolikov   Цитата(juvf @ Jan 6 2014, 10:57) Дружище....   Jan 6 2014, 08:12
||- - MiklPolikov   У меня новый вопрос. Правильно ли я отдаю симафор ...   Jan 6 2014, 14:44
||- - 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
||- - juvf   Цитата(MiklPolikov @ Jan 6 2014, 20:44) К...   Jan 7 2014, 08:19
||- - MiklPolikov   Цитата(juvf @ Jan 7 2014, 12:19) Какой ка...   Jan 7 2014, 20:05
||- - juvf   Цитата(MiklPolikov @ Jan 8 2014, 02:05) Ч...   Jan 9 2014, 03:22
||- - MiklPolikov   juvf, огромное спасибо, сделал приоритет прерывани...   Jan 11 2014, 09:09
||- - Lagman   Цитата(MiklPolikov @ Jan 11 2014, 13:09) ...   Jan 11 2014, 11:55
||- - MiklPolikov   Цитата(Lagman @ Jan 11 2014, 15:55) В СТМ...   Jan 11 2014, 12:15
||- - 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 страниц V   1 2 >


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 21:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01596 секунд с 7
ELECTRONIX ©2004-2016