|
Пишу ОС РВ, Вот пишу ОС Реального времени, у какого какие предложения? пожелания? |
|
|
|
 |
Ответов
|
Jan 28 2009, 17:15
|

Участник

Группа: Validating
Сообщений: 27
Регистрация: 12-12-08
Из: Ижевск
Пользователь №: 42 419

|
Цитата(sergeeff @ Jan 28 2009, 04:35)  Это для общего развития или сейчас творческий простой? Это нужен инструмент аля FreeRTOS но с меньшими аппетитами по RAM и с правом копаться в ядре, с тем чтобы получившееся можно было и в коммерческих разработках выдавать. Цитата(MrYuran @ Jan 28 2009, 09:40)  А scmRTOS? Вроде бы как раз, для дохленьких контроллеров задумана, с полкилом рама, с минимизацией издержек. Единственный минус (имхо) - написана на плюсах. Хотя для кого-то это плюс. По-моему, лучше подключиться к раскрученному проекту, чем начинать собственный с нуля Вот вот в том то и дело что она Си плюс плюснутая. А так ничего ОC, правда тоже есть недочёты, в виде жёсткости системы приоритетов. Так например не может быть двух задач с одинаковыми приоритетами Цитата(AlexandrY @ Jan 28 2009, 11:40)  Ну покажите класс. Кто вас знает, мож вы гений. 512 Kb RAM-а - это очень много. Не советую ориентироваться на такие числа. Ограничтесь лучше 2-я Кб. Во всяком случае для uCOS, ThreadX, CMX и других мощных осей этого вполне хватает для пары тройки задач. Ну конечно она должна влезать в сотни бацт по ОЗУ. Я это просто прикинул, что при 512 кб уже смысла нет ставить то, что я думаю Цитата(AlexandrY @ Jan 28 2009, 11:40)  Вообще-то нынче каждый уважающий себя компилер идет с встроенной RTOS. У CodeWarrior - MQX, у Keil - RL ARM, у Tasking - OSE, у IAR - PowerPac и т.д Ну судя этой логике gcc -- не уважающий себя компилер Цитата(AlexandrY @ Jan 28 2009, 11:40)  Этой уникальной фичей мог бы стать realtime профайлер. Все как бы декларируют себя RTOS-ами, но реального тулса для тюнинга приоритетов задач, нарезок временных интервалов активности задач, тюнинга шедулеров в готовом дивайсе никто не предлагает. Всегда нужен PC, софтварный спец агент тормозящий приложение и захватывающий ресурс и IDE online. А можно по подробнее что есть realtime профайлер и какую статистику он должен собирать? Цитата(AlexandrY @ Jan 28 2009, 11:40)  Третья уникальная фича - проработка протокола вплоть до физического уровня межпроцессорного обмена. Это оч востребованная фича, поскольку времена когда все делается на одном проце стремительно уходят. Хм а вот тут тоже не совсем ясно? Что имееться в виду? Соединять несколько процов по какому-либо протоколу? С целью? Протокол обычно соответствует часто использемым функциям, т. е. реализует базовую функциональность чего-либо! А тут малость мне не понятно что может быть общего между различными устройствами в которых есть не один ЦП? И честно говоря, по этому ничего не видел ни инфы ни протоколов ни таких ОСей может подкините что-нибудь! Цитата(zltigo @ Jan 28 2009, 13:09)  Для "немного" того-другого просто надо доработать ту-же FreeRTOS. Хотели немножко памяти? - небольшие резервы по памяти там прямо под ногами лежат. Можно можно, но вот в один прекрасный день (хотя у нас в России пока на это мало глядят) мне тут скажут "мужик -- ты же доработал FreeRTOS" -- ну тогда у тебя проект на GPL -- давай выкладывай все свои исходники. Цитата(zltigo @ Jan 28 2009, 13:09)  А при сильно сэкономить и сделать систему под 512 байт, так такая система будет уродлива уже для десяткокилобайтовых... А как на ваш взгляд scmRTOS? Уродлива для десяткокилобайтовых? Цитата(VslavX @ Jan 28 2009, 15:58)  Дык, assert - для примера только.  Я текст с alloc() сразу поленился выложить. Так лучше? Код #if (DEBUG == 0) #define MM_Alloc( a, b) \ MM_AllocFree( a, b) #else #define MM_Alloc( a, b) \ MM_AllocDebug( a, b, __LINE__, __FILE__) #endif Вот это да идея!!! первый раз такое вижу. Может буду применять. Честно говоря, меня шас память мало волнует. Больше приоритеты и прочее. И вообще мне не нравиться например что в FreeRTOS нельзя полностью работать на статической памяти.
--------------------
|
|
|
|
|
Jan 28 2009, 17:42
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Посмотрите TN KernelНаписана на чистом C, "понятным языком", хорошо структурирована. API сделано "по мотивам" спецификации uTRON 4.x - на таких ОС японцы большую часть своей электроники делают. Приоритеты не фиксированы, есть round-robin для задач с одинаковым приоритетом, есть механизмы борьбы с priority inversion, достаточно быстрая. Я на ней остановился после знакомства с uCOS и FreeRTOS. Еще очень понравилась scmRTOS - изящнейшая вещь, но я не настолько уверено "++" владею, и, к сожалению, узнал о ней уже после значительного "перелопачивания" TN.
|
|
|
|
|
Jan 28 2009, 20:47
|

Участник

Группа: Validating
Сообщений: 27
Регистрация: 12-12-08
Из: Ижевск
Пользователь №: 42 419

|
Цитата(VslavX @ Jan 28 2009, 21:42)  Посмотрите TN KernelНаписана на чистом C, "понятным языком", хорошо структурирована. API сделано "по мотивам" спецификации uTRON 4.x - на таких ОС японцы большую часть своей электроники делают. Приоритеты не фиксированы, есть round-robin для задач с одинаковым приоритетом, есть механизмы борьбы с priority inversion, достаточно быстрая. Я на ней остановился после знакомства с uCOS и FreeRTOS. Еще очень понравилась scmRTOS - изящнейшая вещь, но я не настолько уверено "++" владею, и, к сожалению, узнал о ней уже после значительного "перелопачивания" TN. посмотрел Код //----- Task Control Block ------------ typedef struct _TN_TCB { unsigned int * task_stk; //-- Pointer to task's top of stack CDLL_QUEUE task_queue; //-- Queue is used to include task in ready/wait lists CDLL_QUEUE timer_queue; //-- Queue is used to include task in timer(timeout,etc.) list CDLL_QUEUE block_queue; //-- Queue is used to include task in blocked task list only // uses for mutexes priority seiling protocol CDLL_QUEUE create_queue; //-- Queue is used to include task in create list only CDLL_QUEUE mutex_queue; //-- List of all mutexes that tack locked (ver 2.x) CDLL_QUEUE * pwait_queue; //-- Ptr to object's(semaphor,event,etc.) wait list, // that task has been included for waiting (ver 2.x) struct _TN_TCB * blk_task; //-- Store task,that blocked our task(for mutexes's // priority ceiling protocol only (ver 2.x)
unsigned int * stk_start; //-- Base address of task's stack space int stk_size; //-- Task's stack size (in sizeof(void*),not bytes) void * task_func_addr; //-- filled on creation (ver 2.x) void * task_func_param; //-- filled on creation (ver 2.x)
int base_priority; //-- Task base priority (ver 2.x) int priority; //-- Task current priority int id_task; //-- ID for verification(is it a task or another object?) // All tasks have the same id_task magic number (ver 2.x)
int task_state; //-- Task state int task_wait_reason; //-- Reason for waiting int task_wait_rc; //-- Waiting return code(reason why waiting finished) int tick_count; //-- Remaining time until timeout int tslice_count; //-- Time slice counter
int ewait_pattern; //-- Event wait pattern int ewait_mode; //-- Event wait mode: _AND or _OR
void * data_elem; //-- Store data queue entry,if data queue is full
int activate_count; //-- Activation request count - for statistic int wakeup_count; //-- Wakeup request count - for statistic int suspend_count; //-- Suspension count - for statistic
// Other implementation specific fields may be added below
}TN_TCB;  очень впечатляет во FreeRTOS и того меньше, ну да ладно нечего пинять на других коли сам не сделал Цитата(zltigo @ Jan 28 2009, 21:39)  Там модифицированный GPL. Почитайте, ну может десять баксов пожертвуйте.... Ну и если действительно заметно доработали, то прежде, чем кто-то это скажет Вы сначала должны зачем-то выложить исходники  Да и купить на самом деле можно OpenRTOS при малейшей необходимости - время дороже  . Мда, а если я хочу выложить исходники (ну типа посмотрите как я крут  ), ну да ладно если бы да кабы.. да росли бы грибы....
|
|
|
|
|
Jan 28 2009, 23:29
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(ddiimmaa @ Jan 28 2009, 22:47)  посмотрел Код //----- Task Control Block ------------ typedef struct _TN_TCB { ... }TN_TCB;  очень впечатляет во FreeRTOS и того меньше Ужимается в полтора раза без потери функционала. У меня сейчас TCB составляет 22 слова. FreeRTOS имеет TCB поменьше (я 16 слов насчитал по-минимуму), конечно, но и функционал победнее. Из синхрообъектов TN очень хороши мутексы (владелец + управление приоритетом) и события (хоть какая-то замена WaitForMultipleObjects). В-общем - размер TCB - это еще не показатель.
|
|
|
|
|
Jan 29 2009, 20:40
|

Участник

Группа: Validating
Сообщений: 27
Регистрация: 12-12-08
Из: Ижевск
Пользователь №: 42 419

|
Цитата(VslavX @ Jan 29 2009, 03:29)  Ужимается в полтора раза без потери функционала. Странно! А вот интересно? А что же тогда автор не удосужился сам ужимать своё детище? или принимать заплатки от кого либо?
--------------------
|
|
|
|
|
Jan 30 2009, 08:16
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(ddiimmaa @ Jan 29 2009, 22:40)  Странно! А вот интересно? А что же тогда автор не удосужился сам ужимать своё детище? или принимать заплатки от кого либо? Есть такой анекдот: Жили-были в лесу серые мыши, жизнь у них была трудная и пошли они к мудрому Филину за советом: - Мы, мыши серые, звери мелкие, все нас обидеть и съесть норовят. Скажи нам, Мудрейший из Мудрейших, как нам быть? Филин, подумал, подумал, и говорит: - А вы, мыши, станьте ежиками колючими, и никто вас тогда трогать не будет! Мыши обрадовались, поблагодарили и собрались уже было уходить: - Погоди, Мудрейший, а как же нам ежиками стать? - Млин, ну чего вы ко мне с такой ерундой пристаете - я же только Стратегией занимаюсь! Вот! Вот и авторы универсальных вещей точно так же - им думать про максимально широкий круг задач нужно, оптмизацией под конкретное применение пусть уже "мыши" занимаются  . Цитата(ddiimmaa @ Jan 30 2009, 00:14)  Так вот он вообще придумал Contikki -- по два байта на поток. Правда у него не поток а протопоток (protothread). И реалтаймом не Дык, "Контики" - плот он и есть плот. А хочется, если уж не лайнер (Linux/WinCE), то хотя бы океанскую яхту  . Если ресурсы (финансовые или аппаратные  ) позволяют. А современные недорогие массовые ARM-ы - типа LPC/SAM - "яхту" позволить вполне могут. Ну океанскую или нет, а "река-море" - запросто.
|
|
|
|
|
Jan 30 2009, 09:43
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Что то непонятны ваши потуги интуитивно выразить мысль. Есть скорость работы самой операционки на целевой платформе. Есть скорость разработки приложения на базе операционки (определяется объемом middleware ) И есть скорость отладки приложения и поддержки либо на целевой платформе либо на host системе. (определяется интегрированными тулсами) Эти скорости сильно противоречат обычно друг другу. Поэтому лайнер здесь в проекции на другую плоскость будет трактором. Малые RTOS нужны для малых процов. Малых процов на самом деле становиться только больше. Взять какой-нить netbook: на HMI один, на управление питанием - другой, на расширяемый ввод-вывод - третий, спец коммуникации - четвертый и т.д. И на каждый из них имеет смысл ставить RTOS чтобы ускорить разработку. И спрос на малые RTOS соответственно тоже растет. И универсальность от них требуется достаточно большая и скорость тоже, поскольку от нее зависит энергопотребление. Выбрав непродумано ось для этих применений можно сильно пролететь. Заигрываться тоже понятно не стоит. Цена вопроса смены оси где-то месяц. Но бывает что и это слишком долго поэтому пообсуждать вижу смысл. А вот рассматривать малую RTOS в плане открытости лицензии или открытости тулсов не вижу смысла. На это есть рефакторинг. Чем, подозреваю, автор и занимается. Цитата(VslavX @ Jan 30 2009, 10:16)  Дык, "Контики" - плот он и есть плот. А хочется, если уж не лайнер
|
|
|
|
|
Jan 31 2009, 01:20
|

Участник

Группа: Validating
Сообщений: 27
Регистрация: 12-12-08
Из: Ижевск
Пользователь №: 42 419

|
Цитата(VslavX @ Jan 30 2009, 17:08)  топикстартер начал размеры TCB обсуждать, поэтому я привел образное сравнение плавсредств - меньше размер/меньше удобств. Ну не хотелось бы уж осень заострять внимание на размере TCB, просто первое на что смотришь, когда изучаешь ОС -- на TCB, (ну есть такое мнение что важнее не функции а структуры данных) вот и поразил меня, нафаршированый TCB у TNKernel. Конечно размер тут тоже имеет значение  (в виду малого числа RAM), но больше удивило то, что на каждый объект (семафор мютекс и т. д.) у разработчика свой элемент в TCB.
|
|
|
|
|
Jan 31 2009, 07:55
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(ddiimmaa @ Jan 31 2009, 03:20)  но больше удивило то, что на каждый объект (семафор мютекс и т. д.) у разработчика свой элемент в TCB. Это где там на каждый объект свое поле в TCB? Есть свои списки для мьютексов - но это для реализации протоколов наследования приоритета. BTW, я через авторский вариант мьютексов "не продрался", сделал упрощенный вариант PIP/PCP (приоритет снижаем при освобождении мьютекса - сканируем захваченные мьютексы и выбирает макс уровень) - тогда один список не нужен. А так - все списки в TCB очень даже на месте и лишних нет: CDLL_QUEUE task_queue; - включен или в список диспетчера (и такой список свой для каждого уровня приоритета - планировщик работает очень быстро) или в список объекта который ждет -mutex/sem/event/queue CDLL_QUEUE timer_queue; - включен в список проверки на тайм-аут ожидания. Теоретически можно и выкинуть - тогда в процедуре системного таймера бежать не по этому списку, а по списку всех задач и смотреть "кто ждет" и проверять тайм-аут. Но это - неоптимально, поэтому список таймера стоит этих 2-х слов в TCB, имхо. CDLL_QUEUE block_queue; - этого у меня нет, используется для протоколов управления приоритетами, я схему немного упростил, но все "в рамках приличий", которые допускает uTRON 4.x. Насколько я смог разобраться, авторский вариант реализует полные версии PIP/PCP, что, имхо, несколько избыточно, хотя и приятно. CDLL_QUEUE create_queue; - просто список всех задач в системе. Не особо нужен (кажется, даже реально в оригинале не используется), но полезен при отладке (выводим список всех задач в системе) и при контроле повторного использования TCB. CDLL_QUEUE mutex_queue; - просто необходимый список для реализации протоколов PIP/PCP, чтобы по этим протоколам вычислить приоритет задачи надо иметь список залоченных задачей мьютексов. Ну, альтернатива - можно иметь один глобальный список мьютексов в системе, сканировать его - проверять наш/не наш. Но мьютексов в системе может быть очень много, а вот реально залочено задачей - один/два/три. Поэтому выигрыш в скорости - существенный. Также используется для автоматического освобождения мьютексов при завершении задачи (типа автоочистки) - бесплатный бонус  Да, списки можно сделать и односвязными. Ессно, потеряв в скорости и в предсказуемости времени операций добавления/удаления элемента - имхо, в данном случае - моветон. Итак, ужать еще кое-что можно. Но - упадет скорость и потеряем кое-что полезное. Еще момент - при написании/рефакторинге ОС неплохо бы определится с целевой платформой, тогда не будет таких вопросов - "а почему такой относительно сложный TCB". Например, когда я "осваивал" TN - сразу задал для себя некоторую минимальную планку ресурсов - минимум 32-битник и 8К оперативки и 32К флеша - на сегодня это младшие представители семейств LPC/SAM - так что такая планка вполне оправдана. Под 32-битностью я также понимаю атомарность операций извлечения/записи в память 32-битного слова/указателя -это позволило значительно пооптимизировать кое-какие места.
|
|
|
|
|
Jan 31 2009, 11:18
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Да, тема портирования высокомерно замалчивается, хотя она наверно тут самая важная. Имеет ли смысл делать непривязанную к платформе операционку? Тут как раз время начать кому-то кажущуюся религиозной войну на тему популярности и юзабельности uC. На мой взгляд универсальность в этом плане делать не стоит. Я тоже за ARM-ы, но только за Cortex-ы И че сразу надо учесть - это соглашения из Application Binary Interface. Неучет ABI - бесконечный источник траблов даже в солидных осях. Даже в uCOS не знаю как сейчас, но раньше не брали в расчет нюансы ABI И получали сюрпризы типа: а у меня из задачи стандартные либы так-то и так-то сбоят. Цитата(VslavX @ Jan 31 2009, 09:55)  Под 32-битностью я также понимаю атомарность операций извлечения/записи в память 32-битного слова/указателя -это позволило значительно пооптимизировать кое-какие места.
|
|
|
|
|
Feb 3 2009, 08:51
|

Участник

Группа: Validating
Сообщений: 27
Регистрация: 12-12-08
Из: Ижевск
Пользователь №: 42 419

|
Цитата(AlexandrY @ Jan 31 2009, 15:18)  На мой взгляд универсальность в этом плане делать не стоит. Я тоже за ARM-ы, но только за Cortex-ы
И че сразу надо учесть - это соглашения из Application Binary Interface. Неучет ABI - бесконечный источник траблов даже в солидных осях. Хм, если ОСь -- оpen source, тогда какие могут быть траблы, главно API не часто менять, а на ABI наплевать. Цитата(AlexandrY @ Feb 1 2009, 23:44)  Кстати копнув глубже в архитектуру ARMv7-M (ядро Cortex-а) обнаружил там команды чем-то напоминающие вход и выход из критических секций в мультипроцессорной системе. Неплохой задел для операционок будущего! Ну дак поделитесь хоть мнемоникой.
--------------------
|
|
|
|
|
Feb 4 2009, 20:37
|

Участник

Группа: Validating
Сообщений: 27
Регистрация: 12-12-08
Из: Ижевск
Пользователь №: 42 419

|
Цитата(aaarrr @ Feb 3 2009, 13:12)  Сильное заявление  Плевать на стандарты, мягко говоря, не рекомендуется. Особенно осестроителям. Когда будут хотя бы 10 приложений для ОСи тогда будет не наплевать на АПИ А когда будет загрузчик и две три либы тогда будет не наплевать на АБИ А сейчас... кхм кхм.... начхать на них мона.
--------------------
|
|
|
|
|
Feb 6 2009, 17:38
|

Участник

Группа: Validating
Сообщений: 27
Регистрация: 12-12-08
Из: Ижевск
Пользователь №: 42 419

|
Цитата(aaarrr @ Feb 5 2009, 00:48)  Это заблуждение. Лучше соблюдать стандарты с самого начала, чем потом исправлять уже растиражированные ошибки. Даааа? Я буду рад если вы мне покажите нормальный стандарт под такую ОСь. POSIX не предлагать слишком монструозно для таких осей. miTRON -- хороший стандар однако уж больно там имена функций корявые мне своим русским умом японские сокращения не понять
--------------------
|
|
|
|
|
Feb 7 2009, 07:56
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(ddiimmaa @ Feb 6 2009, 19:38)  miTRON -- хороший стандар однако уж больно там имена функций корявые мне своим русским умом японские сокращения не понять Хм, а какое отношение имена функций имеют к идеологии? Цитата(sergeeff @ Feb 6 2009, 19:52)  останавливает, что она написана на C++ Имхо, в "плюсах" очень много возможностей для генерации неявного кода, чтобы грамотно пользовать C++ в embedded надо знать язык _очень_ хорошо. Вот здравое сомнение в своем уровне владения языком и останавливает.
|
|
|
|
|
Feb 7 2009, 14:32
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(VslavX @ Feb 7 2009, 13:56)  Имхо, в "плюсах" очень много возможностей для генерации неявного кода, чтобы грамотно пользовать C++ в embedded надо знать язык _очень_ хорошо. Вот здравое сомнение в своем уровне владения языком и останавливает. Насчет много, это вы погорячились. Основной генератор неявного кода - шаблоны, исключения и RTTI. В embedded реально используются только шаблоны, вот с ними надо быть внимательным, но сюрпризов там нет - все достаточно легко прогнозируется. Остальное: неявная передача this в функции-члены при вызове, все эти vtpr/vtbl и прочее - это, во-первых, мелочи, во-вторых, это не оверхед, а реализация необходимой функциональности, которую в противном случае (например, на С) пришлось бы писать руками. Не пренебрегайте плюсами, применяйте - очень скоро почувствуете уверенность и обратно уже не захочется.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Feb 7 2009, 14:57
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Обратно никогда не хочется! Став все время работать на C++ вы забываете постепенно паттерны программирования на C и вам затруднительно использовать фреймворк который нынче весь исключительно на C написан. Или сидите на двух стульях и пишите медленнее обычного и делаете больше багов. Либо вы вообще узкий специалист и это не ваша игра. Освоение С++ меньше всего сводится к синтаксису и объектной модели, надо иметь экосистему, как модно нынче говорить, для использования этого языка. C++ в embedded просто неконкурентоспособен. Т.е. написав ось на C++ вам придется писать и фреймворк и прикладные стеки на C++ А это абсолютная утопия еще в ближайшие десятилетия. Сделать заново целиком весь embedded фреймворк способны только гиганты типа Microsoft. Но они уже сделали ставку на C# и .NET. А нишу малых RTOS они занимают micro framework у которого HAL уровень на том же C написан. Цитата(dxp @ Feb 7 2009, 16:32)  Насчет много, это вы погорячились. Основной генератор неявного кода - шаблоны, исключения и RTTI. В embedded реально используются только шаблоны, вот с ними надо быть внимательным, но сюрпризов там нет - все достаточно легко прогнозируется. Остальное: неявная передача this в функции-члены при вызове, все эти vtpr/vtbl и прочее - это, во-первых, мелочи, во-вторых, это не оверхед, а реализация необходимой функциональности, которую в противном случае (например, на С) пришлось бы писать руками. Не пренебрегайте плюсами, применяйте - очень скоро почувствуете уверенность и обратно уже не захочется. 
|
|
|
|
Сообщений в этой теме
ddiimmaa Пишу ОС РВ Jan 27 2009, 22:58  zltigo Цитата(ddiimmaa @ Jan 28 2009, 20:15) Мож... Jan 28 2009, 17:39     AlexandrY В RL ARM у TCB размер 12 слов, а по функционалу о... Jan 29 2009, 11:44      VslavX Цитата(AlexandrY @ Jan 29 2009, 13:44) В ... Jan 29 2009, 16:02      zltigo Цитата(ddiimmaa @ Jan 29 2009, 23:40) Стр... Jan 29 2009, 20:56       ddiimmaa Цитата(zltigo @ Jan 30 2009, 00:56) Потом... Jan 29 2009, 22:14        zltigo Цитата(ddiimmaa @ Jan 30 2009, 01:14) И р... Jan 29 2009, 23:29            AlexandrY Кстати копнув глубже в архитектуру ARMv7-M (ядро C... Feb 1 2009, 19:44                 aaarrr Цитата(ddiimmaa @ Feb 6 2009, 20:38) Дааа... Feb 6 2009, 17:51                  ddiimmaa Цитата(aaarrr @ Feb 6 2009, 21:51) Сначал... Feb 14 2009, 14:17                   aaarrr Цитата(ddiimmaa @ Feb 14 2009, 17:17) В т... Feb 14 2009, 14:57                    ddiimmaa Цитата(aaarrr @ Feb 14 2009, 18:57) Компи... Feb 14 2009, 20:47                     aaarrr Цитата(ddiimmaa @ Feb 14 2009, 23:47) Или... Feb 14 2009, 21:54                      ddiimmaa Вчера я выложил в Интернет более менее работаюшую ... Feb 15 2009, 14:39                    VslavX Цитата(AlexandrY @ Feb 7 2009, 16:57) Обр... Feb 7 2009, 23:09                     yuri_t IMXO, у С++ наиболее полезные вещи -это наследован... Feb 8 2009, 08:00 MrYuran А scmRTOS?
Вроде бы как раз, для дохленьких контро... Jan 28 2009, 05:40 AlexandrY Ну покажите класс. Кто вас знает, мож вы гений. ... Jan 28 2009, 07:40 zltigo Цитата(AlexandrY @ Jan 28 2009, 10:40) Вт... Jan 28 2009, 09:09 Rst7 Цитатавсего-то в Memory Control Block менежера пам... Jan 28 2009, 09:14 VslavX Цитата(Rst7 @ Jan 28 2009, 11:14) LR еще ... Jan 28 2009, 11:26 Rst7 ЦитатаLR? А если это не ARM?
Ну адрес вызывающей ... Jan 28 2009, 11:35 VslavX Цитата(Rst7 @ Jan 28 2009, 13:35) А ассер... Jan 28 2009, 11:58  _Pasha Цитата(VslavX @ Jan 28 2009, 15:58) Подхо... Jan 28 2009, 12:31 zltigo Цитата(Rst7 @ Jan 28 2009, 14:35) Ну адре... Jan 28 2009, 13:38  VslavX Цитата(zltigo @ Jan 28 2009, 15:38) Так я... Jan 28 2009, 13:55   zltigo Цитата(VslavX @ Jan 28 2009, 16:55) Напри... Jan 28 2009, 14:04    VslavX Цитата(zltigo @ Jan 28 2009, 16:04) Значи... Jan 28 2009, 14:38 Rst7 ЦитатаПодход очень неплох - когда завершаемся - мо... Jan 28 2009, 12:04 VslavX Цитата(Rst7 @ Jan 28 2009, 14:04) минимал... Jan 28 2009, 12:17 Rst7 ЦитатаА как Вы ищете потом процедуру по этому адре... Jan 28 2009, 12:28 VslavX Цитата(Rst7 @ Jan 28 2009, 14:28) В IDA п... Jan 28 2009, 12:42 Rst7 ЦитатаА для IAR-а тоже сработает?
Ага. 4.42 точно... Jan 28 2009, 12:43 Rst7 Цитатадля текущей задачи задачи известен указатель... Jan 28 2009, 13:41 zltigo Цитата(Rst7 @ Jan 28 2009, 16:41) Я не оч... Jan 28 2009, 13:46 Rst7 ЦитатаТогда при вызове malloc у меня можно явно ук... Jan 28 2009, 13:53 Rst7 Плохо только то, что армовский IAR почему-то не ск... Jan 28 2009, 13:57 VslavX Цитата(Rst7 @ Jan 28 2009, 15:57) Плохо т... Jan 28 2009, 14:24 Rst7 ЦитатаПопробуйте применить к функции модификатор s... Jan 28 2009, 14:27 Rst7 ЦитатаА функции, да, не конкатенирует
Дык я об эт... Jan 28 2009, 14:43 sergeeff Многие признают, что scmRTOS для микропроцессоров ... Feb 6 2009, 17:52
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|