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

 
 
> Два потока на си
sergey sva
сообщение Sep 10 2008, 12:53
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Как на си реализовать два потока, без использования ОС ? к примеру таймер 0 вызывает
программу обработки прерываний, в который происходит переключение между потоками.
Может что прочитать посоветуете или ссылку дадите.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergeeff
сообщение Sep 10 2008, 16:02
Сообщение #2


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Практически такие вещи на "чистом" С не напишешь, слишком много "тонких" моментов придется писать на ассеблере (или inline ассемлере). Деиствительно лучше велосипед не изобретать, а воспользоваться чем-то готовым из RTOS, благо выбор достаточно широк.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 13 2008, 19:08
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(sergeeff @ Sep 10 2008, 19:02) *
Практически такие вещи на "чистом" С не напишешь
Можно написать. Встречалась (сейчас не могу найти, может у кого-то из участников ссылка сохранилась) реализация корпоративной многозадачности на основе switch() case замаскированного хитрыми макросами препроцессора. Реализовано довольно красиво, но видя, насколько неэффективна реализация switch() case на некоторых (avr) контроллерах, наверное использование ОС (в которой что надо реализовано на ассемблере) будет более предпочтительным.


Цитата(MacGregor @ Sep 13 2008, 21:18) *
выделено мной красным цветом
И что "именно"? Снова доктора сюда занесло?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



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

 


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


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