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

 
 
> Codesourcery отжигает
_Pasha
сообщение Sep 24 2012, 10:29
Сообщение #1


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Привет.
arm-none-eabi-cpp из (Sourcery G++ Lite 2010.09-51) под линух

Оказывается, там не работает __LINE__
Встречались с такой бедой?
Или это только у меня такое?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KRS
сообщение Sep 24 2012, 12:29
Сообщение #2


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



С таким вариантом и код должен быть гораздо эффективнее!!!
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Sep 24 2012, 13:20
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(KRS @ Sep 24 2012, 15:29) *
С таким вариантом и код должен быть гораздо эффективнее!!!

Мы все рано радуемся. Забылось про то, что такое yield(). А это - примерно
Код
pc = &&Label; return pt_YIELDING; Label:

Тут бубен не помогает. Разве что поиграться с циклом for() .

В качестве кандидата
Код
static inline __attribute__((always_inline)) void *TH_label_yield(tcb_t *pc, const void *label_ret)
{
    pc->pc = &&label;
    return label_ret;
    label:;
}
// заготовки такие:
#define THREAD_BEGIN if(my->tcb.pc != NULL) goto *my->tcb.pc;
#define THREAD_END _Y_i_e_l_d_: return 0; _H_a_l_t_: return 1;
#define yield() goto *TH_label_yield(&my->tcb, &&_Y_i_e_l_d_);

По идее должно работать, но пока проверить некогда.
Вечером отпишусь. Да и полный вариант приведу.

Сообщение отредактировал _Pasha - Sep 24 2012, 13:21
Go to the top of the page
 
+Quote Post



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

 


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


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