![]() |
|
|
Инструментарий Тестеры, паяльники, осциллографы, программаторы, IDE. |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 |
Member
|
![]()
Да и остальным тоже, возможно, будет интересно: http://habrahabr.ru/post/267573/
__________________
TNeo: stable open source real-time kernel for PIC32MX/PIC24/dsPIC, ARM Cortex-M0/M0+/M3/M4/M4F with well-formed code and detailed tests. Microchip data sheet finder: allows to easily get latest revision of the datasheet by its id like "DS61118". |
![]() |
![]() |
![]() |
#2 | |
Senior Member
|
![]() Цитата:
Я тнкернел начал забрасывать после того, как Alex порт криво сделал на pic32 (хотя потом исправил, когда я ему написал после долгих попыток запуска порта). А окончательно забросил на стадии прикручивания TCP стека. На freertos для меня оптимальней вышло, пусть не по скорости - у меня нет суперкритичных к скорости rtos приложений пока.
__________________
|
|
![]() |
![]() |
![]() |
#3 | |
Super Moderator
|
![]() Цитата:
![]() PS спасибо.
__________________
- Готово, мастер !!! - Что готово ??? - Сломал ... Последний раз редактировалось IceS; 16.11.2015 в 13:54. Причина: спс |
|
![]() |
![]() |
![]() |
#4 | |
Super Moderator
|
![]() Цитата:
Здесь на форуме уже несколько лет не появляется. На электрониксе вроде бывает.
__________________
- Готово, мастер !!! - Что готово ??? - Сломал ... |
|
![]() |
![]() |
![]() |
#5 | ||
Senior Member
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,926
Вес репутации: 4789/140 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
![]() Я так немножко слежу за историей проекта и помню откуда появилась TNKernel, не с AlexB она началась. Поэтому следовало бы упомянуть автора оригинала, затем порт AlexB для PIC24 и PIC32, первого автора порта для Cortex M3 и M4F (с того же сайта тов. Тёмкина), он свой порт у Темкина и выложил. И только затем свою версию в сравнении с предыдущими портами. ![]() Цитата:
![]() У того же ST примеры для не самых последних версий IDE, TCP-IP стека и RTOS, чтобы люди попробовать могли. PS: И как-то смутило про прерывания от АЦП каждые 1-2 микросекунды для измерения параметров искры (в свече зажигания, наверное, бензопилы ![]()
__________________
Прогресс неизбежен. |
||
![]() |
![]() |
![]() |
#6 |
Senior Member
Регистрация: 08.11.2013
Сообщений: 328
Вес репутации: 796/37 ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Не законченная статья, т.к. не понятно, что будет дальше:
всем желающим предлагается вложиться в проект, развивать его? предлагаются услуги разработчика, там было упоминание "одна друг уже захотел..."? автор желает подарить её всему миру и готов ежедневно отвечать на вопросы. ![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,926
Вес репутации: 4789/140 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
У кого-нибудь проект TNeo 1.07 в пятом Keil-e открывается (и собирается ли)? Оригинальный архив с bitbucket, вот он. Попробуйте пожалуйста.
![]()
__________________
Прогресс неизбежен. |
![]() |
![]() |
![]() |
#8 |
Member
Регистрация: 06.11.2013
Возраст: 41
Сообщений: 53
Вес репутации: 248/29 ![]() ![]() ![]() |
![]()
Кто-нибудь использует активно TNeo? Вопросы есть, думаю здесь спросить или по другим форумам бегать.
![]() |
![]() |
![]() |
![]() |
#9 |
Senior Member
Регистрация: 12.07.2012
Возраст: 34
Сообщений: 2,685
Вес репутации: 4859/106 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
alexD
напишите свои вопросы - так всем будет проще. |
![]() |
![]() |
![]() |
#10 | |
Member
Регистрация: 06.11.2013
Возраст: 41
Сообщений: 53
Вес репутации: 248/29 ![]() ![]() ![]() |
![]()
Я приостановил выполнение задачи, как восстановить ее выполнение из прерывания?
А именно: В TNeo я перевёл задачу в состояние TN_TASK_STATE_SUSPEND вызовом сервиса tn_task_suspend(). Теперь хочу восстановить эту задачу из прерывания (перевести в состояние TN_TASK_STATE_RUNNABLE), как это сделать? В TNKernel Борисова есть такой сервис tn_task_iresume(). Цитата:
Последний раз редактировалось alexD; 18.11.2019 в 15:55. |
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
|
![]() Цитата:
Даже собирался написать , что то типа того "Как я сделал девайс без ОС". Вот например http://cvg.ru/tovar_list/diga/ пара приборов без ОС. Покажите , что реально сделано с ОС и каков функционал девайса. |
|
![]() |
![]() |
![]() |
#12 | ||
Senior Member
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,926
Вес репутации: 4789/140 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
![]() Я не очень понял, я ли должен показать прибор с ОС или автор этого топика Дмитрий Франк. Вот есть резюме товарища Дмитрия Франка. Это специалист уровня Петра Бобровника - оба люди выдающиеся, знают множество языков и технологий, плюс владение иностранным языком (это из статей можно сделать вывод, а там кто его знает, не переводчика же они нанимают, это я в рамках своего мышления, так просто...). Здесь можно упомянуть и Сережу Якорева, тоже список солидный. ![]() Дмитрий Франк, в PDF к TNeoKernel v1.04 Generated by Doxygen 1.8.8 Tue Nov 4 2014 04:27:59 упоминал про Цитата:
Новые Орионовские уже CAN поддерживают, дисплей нормальный.
__________________
Прогресс неизбежен. Последний раз редактировалось Pridnya; 18.11.2019 в 23:56. |
||
![]() |
![]() |
![]() |
#13 | |
Senior Member
|
![]() Цитата:
В начале топика "Если кто использует....." , просто хотелось сравнить функционал девайсов с ОС и без ОС. У меня иногда складывается впечатление , что если ты не используешь ОС , то ты отстал от прогресса. Дима, ты там не прибедняйся, у тебя самого опыт солидный. ![]() Всегда с благодарностью вспоминаю твою помощь в обработчике динамических переменных для ТСР стека. При количестве переменных более 800 в проекте сложно , просто невозможно все ручками набрать. Петр также в свое время дал мне пинок в нужном направлении. Если комуто инфа из этих сообщений поможет сделать осознаный выбор применять ОС или нет - то это здорово. |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Регистрация: 12.07.2012
Возраст: 34
Сообщений: 2,685
Вес репутации: 4859/106 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
smart_pic
При количестве переменных более 800 в проекте сложно - можно в структуры упаковывать. что если ты не используешь ОС , то ты отстал от прогресса. - для целого ряда +- простых задач в ОС нет необходимости. Достаточным ли Вы обладаете опытом работы с РТОС чтобы обсуждать РТОС? Если нет, то к чему всё это? alexD я посмотрел код Tneo - у меня создалось впечатление, что там нет вызовов этих функций. у себя я реализовывал работы с прерываниями через условные переменные - когда потоку нужно ждать прерывания он начинает ждать по условию после syscall Код:
/** * thd function called from the thread when it's want to wait the cond * * @param cond - [inout] cond to wait * @param int - [in] irq to en * @return - result code */ s32 run_condint_wait(tdc_t * restrict const cond, const u32 num) { /* check that cond have the space for another thread */ if (unlikely(COND_PEND_MAX <= cond->wcnt)) { return KERR_NOSPACE; } s32 result; di(); if (likely(false == int_flag_is_set(num))) { no_run(); t_run->stat = THREAD_STAT_COND; cond_wait_add(cond, t_run); next_thread(); /* enable irq */ int_pri_set(num, t_run->pri + 1, 0); int_en(num); result = KR_SUCCESS; } else { result = KR_IREADY; } ei(); return result; } Код:
/** * send signal to one locked by cond thread * @param cond - [inout] condition variable * * @return - result code */ s32 cond_signal(tdc_t * restrict const cond) { s32 result = 0; di(); u32 cnt = cond->wcnt; if (likely(0 < cnt)) { /* for get correct index in wait array we decrese cnt, * also this value is used for new wait count */ --cnt; cond->wcnt = cnt; thd_t * restrict const thd = cond->widl[cnt]; cond->widl[cnt] = NULL; const uf stat = thd->stat; /* send signal to the thread, if it wait for cond */ if (likely(0 < (THREAD_STAT_COND & stat))) { /* thread is wait for cond * if thread in sleep queue, delete thread from sleeping queue */ if (0 < (stat & THREAD_STAT_SLEEP)) { /* remove the thread from waiting queue */ tsleep_del(thd); } /* if thread in mutex queue, set the thread * for only wait for mutex */ if (0 < (stat & THREAD_STAT_MUTEX)) { /* try to lock the mutex and run the thread, * if it's not possible - try to nice priority of * thread, that own this mutex */ thd_mutex_resolve(thd); } else { thd_runadd(thd); } /* arch-specific - set that thread is woked by signal */ thd->sr.v0 = KR_SUCCESS; } else { /* thread in cond queue, but don't wait for cond, * this is bug */ thd_error(KERR_COND_BROKEN); } } ei(); return result; } |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Многофункциональные часы. Н.Заяц.Книга 4. | samko | Вопросы начинающих | 11 | 12.06.2012 09:26 |
Имитатор DS18B20 | Filya44 | Вопросы начинающих | 14 | 12.03.2012 17:39 |