-
- Почему? Если задача экономии стека не стоит? - Lightelf(24.01.2017 21:02)
- Бред. _basile(151 знак., 25.01.2017 00:44, )
- Вам лишь бы что-нибудь поэкономить. Экономисты, млин. Купите уже нормальный МК, они нынче дешевле чем эти ваши авры. - SciFi(25.01.2017 09:29)
- 1. Тут байты экономятся, а в другом месте килобайты тратятся... 2. f((struc){ .name=val, .other=val }) -- набивать можно не все, а нужные; 3. мне думается, автор хочет это для хитрого макроса (лучше бы сразу сказал чего хочет). - fk0(25.01.2017 02:34)
- Запускаем це-шедулер, передавая ему список задач для выполнения, размер стека для каждой задачи и параметр для каждой задачи. - Lightelf(25.01.2017 08:40)
- Т.е. noreturn-функция? А места в стеке, под ее параметры, не жалко? :) Скрипач(152 знак., 25.01.2017 08:56 - 09:00)
- А памяти под список (который используется ровно один раз) не жалко? TCB все равно создаются на стеке. - LightElf(25.01.2017 09:53)
- Память под параметры функции create_task() будет ей, по выходу, возвращена. ТСВ совершенно не обязательно создавать именно в стеке. И переданные в sheduler параметры вовсе не ТСВ, один в один. Но тут уже многое от используемой вами RTOS зависит. - Скрипач(25.01.2017 10:26 - 10:29)
- Мы начинаем ходить по кругу. Проект собственно и есть игрушечная многозадачка. Основной фичей является использование только C90, без ассемблеров и прочих интринсиков. Потому есть некоторые особенности. - LightElf(25.01.2017 10:46)
- Бинго! :) Отличная иллюстрация к обсуждению зачем копировать API промышленных стандартов :) Скрипач(74 знак., 25.01.2017 11:20)
- Именно от того, что поставил себя на место ПОЛЬЗОВАТЕЛЯ и появился исходный вопрос. Банально удобнее и понятнее написать: LightElf(231 знак., 25.01.2017 11:53)
- Ну фиг его знает, будет ли оно читаемее и сопровождаемее. Структуру инициализации можно сделать константной и расположить в начале программы с сопутствующими комментариями, а твою ct_run нужно искать по всему тексту. - =AlexD=(25.01.2017 12:32)
- А если структур несколько? Ну там джампер установлен - запускаем задачи 1, 2, 3. Джампер снят - 2, 3, 4. Причем 2 и 3 - с другими параметрами. Вот и получится куча константных структур, размазанных по всем исходникам. - LightElf(25.01.2017 15:03)
- Есть предложение еще круче - всю работу с регистром АХ собрать в одном месте, а не размазывать по всем исходникам %) - Скрипач(25.01.2017 15:12)
- Как только в Це89 станет возможна работа с регистром AX - я рассмотрю ваше предложение. - LightElf(25.01.2017 15:15)
- Есть предложение еще круче - всю работу с регистром АХ собрать в одном месте, а не размазывать по всем исходникам %) - Скрипач(25.01.2017 15:12)
- Дело не в том, лучше это или нет. Дело в том, что это по другому. Уважаемый аффтар забыл что его RTOS более чем три тысячи седьмая по счету, а не первая и едиственная. - Скрипач(25.01.2017 12:35)
- Ясный пень, что API будет отличаться. Но за чистый Це приходится платить. - LightElf(25.01.2017 14:42)
- Т.е. для Вас это "ясно", как вы выразились, "как пень"? А можно нескромный вопрос? Скрипач(93 знак., 25.01.2017 14:57)
- Патамучта гладиолус! LightElf(138 знак., 25.01.2017 15:06)
- Да здравствует ещё один велосипед! Говорят, в RTOS есть тонкие вещи, которые несложно залажать. Оно надо? - SciFi(25.01.2017 15:25)
- Почему еще один? Он не новый, просто созрело желание кое-что изменить. Например сделать статические приоритеты. - LightElf(25.01.2017 15:40 - 15:49, ссылка)
- API, к гладиолусу, зачем нестандартным делать? Пана мучает "Синдром фатального недостатка"? :) - Скрипач(25.01.2017 15:08)
- API делается таким, каким его сделать возможно при указанных ограничениях языка Це. - LightElf(25.01.2017 15:14)
- ...и каким посчитает для себя необидным сделать его уважаемый аффтар 8) - Скрипач(25.01.2017 15:17)
- В языке Це невозможно переключать стеки произвольным образом. В языке Це нельзя запретить прерывания. Потому - вот так. - LightElf(25.01.2017 15:20)
- Ну да. Без этого, описания всех задач нужно пихать шедюреру через параметры вызова. Просто еще раз убеждаюсь что правильный HAL это не только абстрагирование от аппаратуры, но и
от своих коллегот операционной системы. - Скрипач(25.01.2017 15:23 - 15:42)- Весь API, в данном случае, представлен 6 функциями. - LightElf(25.01.2017 15:50)
- сатори - Скрипач(25.01.2017 16:09)
- Весь API, в данном случае, представлен 6 функциями. - LightElf(25.01.2017 15:50)
- Ну да. Без этого, описания всех задач нужно пихать шедюреру через параметры вызова. Просто еще раз убеждаюсь что правильный HAL это не только абстрагирование от аппаратуры, но и
- В языке Це невозможно переключать стеки произвольным образом. В языке Це нельзя запретить прерывания. Потому - вот так. - LightElf(25.01.2017 15:20)
- ...и каким посчитает для себя необидным сделать его уважаемый аффтар 8) - Скрипач(25.01.2017 15:17)
- API делается таким, каким его сделать возможно при указанных ограничениях языка Це. - LightElf(25.01.2017 15:14)
- Да здравствует ещё один велосипед! Говорят, в RTOS есть тонкие вещи, которые несложно залажать. Оно надо? - SciFi(25.01.2017 15:25)
- Патамучта гладиолус! LightElf(138 знак., 25.01.2017 15:06)
- Т.е. для Вас это "ясно", как вы выразились, "как пень"? А можно нескромный вопрос? Скрипач(93 знак., 25.01.2017 14:57)
- Ясный пень, что API будет отличаться. Но за чистый Це приходится платить. - LightElf(25.01.2017 14:42)
- А если структур несколько? Ну там джампер установлен - запускаем задачи 1, 2, 3. Джампер снят - 2, 3, 4. Причем 2 и 3 - с другими параметрами. Вот и получится куча константных структур, размазанных по всем исходникам. - LightElf(25.01.2017 15:03)
- Ну фиг его знает, будет ли оно читаемее и сопровождаемее. Структуру инициализации можно сделать константной и расположить в начале программы с сопутствующими комментариями, а твою ct_run нужно искать по всему тексту. - =AlexD=(25.01.2017 12:32)
- Именно от того, что поставил себя на место ПОЛЬЗОВАТЕЛЯ и появился исходный вопрос. Банально удобнее и понятнее написать: LightElf(231 знак., 25.01.2017 11:53)
- Бинго! :) Отличная иллюстрация к обсуждению зачем копировать API промышленных стандартов :) Скрипач(74 знак., 25.01.2017 11:20)
- Мы начинаем ходить по кругу. Проект собственно и есть игрушечная многозадачка. Основной фичей является использование только C90, без ассемблеров и прочих интринсиков. Потому есть некоторые особенности. - LightElf(25.01.2017 10:46)
- Память под параметры функции create_task() будет ей, по выходу, возвращена. ТСВ совершенно не обязательно создавать именно в стеке. И переданные в sheduler параметры вовсе не ТСВ, один в один. Но тут уже многое от используемой вами RTOS зависит. - Скрипач(25.01.2017 10:26 - 10:29)
- А памяти под список (который используется ровно один раз) не жалко? TCB все равно создаются на стеке. - LightElf(25.01.2017 09:53)
- Т.е. noreturn-функция? А места в стеке, под ее параметры, не жалко? :) Скрипач(152 знак., 25.01.2017 08:56 - 09:00)
- Запускаем це-шедулер, передавая ему список задач для выполнения, размер стека для каждой задачи и параметр для каждой задачи. - Lightelf(25.01.2017 08:40)
- Бред. _basile(151 знак., 25.01.2017 00:44, )
- Почему? Если задача экономии стека не стоит? - Lightelf(24.01.2017 21:02)