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

 
 
> Написал порт scmRTOS под ARM, интересны отзывы
Сергей Борщ
сообщение May 15 2006, 14:19
Сообщение #1


Гуру
******

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



Написал порт scmRTOS (http://scmrtos.narod.ru/) для ARM. Отлаживал на AT91SAM7S64. Поскольку опыта в ARMах пока маловато (второй проект на ARM и первый с асмом), то перед тем как связываться с автором хотелось бы чтобы кто-то более опытный глянул. Порт лежит тут: http://upload.caxapa.ru/scmRTOS_arm.zip
Спасибо всем.


--------------------
На любой вопрос даю любой ответ
"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
 
Start new topic
Ответов
GetSmart
сообщение May 17 2006, 16:17
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата
Странно, но почему-то в моем макете с AT91SAM7S64 при отладке через MT-Link перегрузки CPSR не происходит. Могу попробовать на LPC2119, но не думаю что будет большая разница.

Совсем забыл. Перезагрузка CPSR происходит только когда процессор находится не в USER или SYSTEM режиме. Потому что в этих режимах регистра SPSR вообще нет. Команда как бы некорректная, хотя процессор не падает. И ещё. Прочитать (загрузить в CPSR) можно только SPSR текущего режима. Запись в SPSR - аналогично. Даже если в команде явно будет указан регистр SPSR из другого режима. Непонятно только, зачем ассемблер разрешает так писать.

У вас вообще по какому событию происходит переключение?

А для чего или кого вообще пишите?

Сообщение отредактировал GetSmart - May 17 2006, 16:42


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 17 2006, 16:56
Сообщение #3


Гуру
******

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



Цитата(GetSmart @ May 17 2006, 19:17) *
Цитата
Странно, но почему-то в моем макете с AT91SAM7S64 при отладке через MT-Link перегрузки CPSR не происходит. Могу попробовать на LPC2119, но не думаю что будет большая разница.


Совсем забыл. Перезагрузка CPSR происходит только когда процессор находится не в USER или SYSTEM режиме.

Все это понятно. На это я с самого начала нарвался :-) У меня эта команда выполнятеся в IRQ_mode.
Но все же я настаиваю, что восстановление CPSR происходит только в одном варианте команды: когда стоит крыжик (^) И в списке регистров есть R15(PC). При этом восстанавливаются регистры в банке соотв. режима исключений. Если же в команде стоит крыжик и R15 в списке нет, то восстанавливаются регистры user(system) банка и CSPR не восстанавливается.
Или другими словами: если в списке LDM есть R15, то крыжик означает восстановление CSPR, если R15 нет - то крыжик означает восстановление в _user регистры. Детализируя:
LDMxx {R13-R15}^ восстанавливает R13_mode, R14_mode, PC, SPSR_mode->CPSR
LDMxx {R13-R14}^ восстанавливает R13_user, R14_user
Именно так происходит в железе (LPC2119 тоже проверил). Можете проверить. Симулятор же отрабатывает эту команду иначе. Я не вижу ничего незаконного в этой команде поэтому продолжаю считать что в этом случае симулятор явно ошибается.

Цитата
Даже если в команде явно будет указан регистр SPSR из другого режима. Непонятно только, зачем ассемблер разрешает так писать.
Ассемблер не позволяет их указывать. Это в описании ядра они имеют такие обозначения.
Цитата
У вас вообще по какому событию происходит переключение?
Планировщик взводит бит программного прерывания в контроллере прерываний.
Цитата
А для чего или кого вообще пишите?
Для себя :-) Готовлю почву для новых проектов. FreeRTOS не понравилась чрезмерными требованиями к ОЗУ и кривизной написания. scmRTOS использовал в одном проекте на MSP430, понравилась. Из кристаллов под рукой есть макетки с SAM7 и LPC, есть еще ADuС, но на нем пока только пример из иара запускал. Ближайшие 2 проекта будут на ADuC и LPC.

Сообщение отредактировал Сергей Борщ - May 17 2006, 17:01


--------------------
На любой вопрос даю любой ответ
"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
zltigo
сообщение May 18 2006, 07:06
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Не сочтите за 'наезд' - работа несомненно полезная! Однако не могу не отметить, что основная прадигма отлично реализованная в scmRTOS на типичном ARM смотрится уже не так привлекательно,
как на AVR с полукилобайтом-килобайтом памяти.
Цитата(Сергей Борщ @ May 17 2006, 19:56) *
FreeRTOS не понравилась чрезмерными требованиями к ОЗУ и кривизной написания.

В частности по этой причине не смог пройти спокойно мимо вышеотцитированого :-(.
"Кривизну", в виду неопределенности формулировки, оставим в покое (хотя можем и побеседовать - тут
есть подходящие ветки ) а по RAM..
Cобрал Ваш демо проект с тремя светодиодиками:

Код
Module               CODE      DATA      CONST
------               ----      ----      -----
                    (Rel)  (Rel)  (Abs)  (Rel)
?CMAIN                108
?CSTARTUP              56
?EnI_t                 20
?RESET
  + common             60
?_EXIT                 12
?__dbg_break            2
?__exit                18
?cppinit               70
?exit                  14
?segment_init          84
OS_Kernel             300     40
  + shared             32             8     12
OS_Services            16
OS_Target_cpp         272    108
  + shared                            8
main                  478    940    220
scmRTOS_Asm           132
  + common             28
N/A (command line)           768
N/A (alignment)        10
----------          -----  -----    ---     --
Total:              1 624  1 856    236     12
  + common             60

И под FreeRTOS такой-же:
Код
Module               CODE      DATA      CONST
------               ----      ----      -----
                    (Rel)  (Rel)  (Abs)  (Rel)
?CMAIN                 80
?CSTARTUP             476
?DiI_t                 32
?EnI_t                 16
?RESET
  + common             64
?_EXIT                 12
?__exit                 2
?exit                  14
?segment_init          84
?strncpy               44
croutine
  + shared                                  12
heap                  244     24
leds                   76             8
  + shared                            4
list                  174
ll_init                 4
main                  186             8     16
port                  376      4     40     16
portasm               340
tasks                 902    168             8
N/A (command line)           530
N/A (alignment)        10
----------          -----    ---     --     --
Total:              3 072    726     60     52
  + common             64


Собственно разница по декларированному критическому ресурсу (RAM занимаемому ядром) отнюдь не впечатляет:
scmRTOS = 0x148 байт
FreeRTOS = 0x1AC
Итого - 100(dec) байт. Не слишком большая плата за несколько отличающюся базовую функциональность и (личное мнение) за большую способность к доработкам.
Причем, при "необходимости" можно убрать еще по 8 байт на задачу во FreeRTOS :-)


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 18 2006, 07:45
Сообщение #5


Гуру
******

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



Цитата(zltigo @ May 18 2006, 10:06) *
Цитата(Сергей Борщ @ May 17 2006, 19:56) *

FreeRTOS не понравилась чрезмерными требованиями к ОЗУ и кривизной написания.

В частности по этой причине не смог пройти спокойно мимо вышеотцитированого :-(.
"Кривизну", в виду неопределенности формулировки, оставим в покое (хотя можем и побеседовать - тут
есть подходящие ветки )

Объясню очень просто: указатели на любой объект передаются как void* что легко позволяет мне передать вместо указателя на семафор указатель на процесс или очередь. Зачем же в "языке высогага уровня Ц" был придуман контроль типов на этапе компиляции? Далее это же void * передается в другие функции место указателя соответствующего типа, а чтобы компилятор не выдавал предупреждения вместо элементарного создания локальной переменной нужного типа и приведения типа
Код
signed portBASE_TYPE xQueueSend( xQueueHandle xQueue, const void *pvItemToQueue, portTickType xTicksToWait )
{
xQueuePtr pxQueue = xQueue;
в описании предлагается задавить предупреждения этого типа в опциях компилятора. Причем предупреждения возникают при компиляции кода самой ОС. Что же это как не кривизна?
Цитата(zltigo @ May 18 2006, 10:06) *
а по RAM..
46 байт на битовый семафор мне показалось расточительно. Они его реализуют как очередь из одного элемента нулевого размера. Да и на очередь 46 байт ОЗУ накладных "жаба душит".

Цитата(zltigo @ May 18 2006, 10:06) *
Cобрал Ваш демо проект с тремя светодиодиками:
Собственно разница по декларированному критическому ресурсу (RAM занимаемому ядром) отнюдь не впечатляет:
scmRTOS = 0x148 байт
FreeRTOS = 0x1AC
Итого - 100(dec) байт. Не слишком большая плата за несколько отличающюся базовую функциональность и (личное мнение) за большую способность к доработкам.
Причем, при "необходимости" можно убрать еще по 8 байт на задачу во FreeRTOS :-)
Я не отрицаю большого потенциала в FreeRTOS. Однако в моем примере из базовой функциональности был только один сервис Sleep(). Оно и понятно - надо было отладить переключатель контекста. Более серьезный пример идет в исходнике scmRTOS с сайта автора. Там есть и семафоры и очереди. Если есть желание - можем сравнить.
Еще раз - я не хоче наступить на горло FreeRTOS, просто мне она субъективно не понравилась.


--------------------
На любой вопрос даю любой ответ
"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
zltigo
сообщение May 18 2006, 08:29
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Сергей Борщ @ May 18 2006, 10:45) *
Еще раз - я не хоче наступить на горло FreeRTOS, просто мне она субъективно не понравилась.

Это пожалуй главное. Так бывает. Я тоже не в восторге от многого, но идеал при знании потрохов :-)
недостижим, посему начал просто править "под себя" и под свой "вкус". А как "база" максимально устроила.
Цитата
Объясню очень просто: указатели на любой объект передаются как void*

Ну такуж и на любой. Семафоры ака очередь это отдельная песня и при необходимости иметь оные несомненно буду встраивать 'семафористые' семафоры :-).
Цитата
Причем предупреждения возникают при компиляции кода самой ОС. Что же это как не кривизна?

Это бардак :-(, такие места правлю, правда "легкой" c "наплевать на warnings" переносимости под разные компиляторы уже гарантировать нельзя.
Цитата
Более серьезный пример идет в исходнике scmRTOS с сайта автора. Там есть и семафоры и очереди. Если есть желание - можем сравнить.

Нет, особого желания нет. Порядок "платы" ясен и меня совсем не смущают пару сот байт, особенно по отношению к размеру стеков (особенно при отсутствии даже простейших механизмов контроля обьема использования стека присутствующих в FreeRTOS) задач :-(. Кстати о стеках, на штатное (руками и так реализуется без напряга) нововведение FreeRTOS 4.x обратили внимание?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 18 2006, 09:08
Сообщение #7


Гуру
******

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



Цитата(zltigo @ May 18 2006, 11:29) *
Цитата(Сергей Борщ @ May 18 2006, 10:45) *

Объясню очень просто: указатели на любой объект передаются как void*

Ну такуж и на любой. Семафоры ака очередь это отдельная песня и при необходимости иметь оные несомненно буду встраивать 'семафористые' семафоры :-).

typedef void * xQueueHandle;
typedef xQueueHandle xSemaphoreHandle;
typedef void * xTaskHandle;
Собственно других открытых пользователю сервисов там вроде и нет.

Цитата(zltigo @ May 18 2006, 11:29) *
Цитата

Более серьезный пример идет в исходнике scmRTOS с сайта автора. Там есть и семафоры и очереди. Если есть желание - можем сравнить.

Нет, особого желания нет. Порядок "платы" ясен и меня совсем не смущают пару сот байт, особенно по отношению к размеру стеков (особенно при отсутствии даже простейших механизмов контроля обьема использования стека присутствующих в FreeRTOS) задач :-(.
Надо будет этот вопрос изучить, спасибо за наводку.
Цитата
Кстати о стеках, на штатное (руками и так реализуется без напряга) нововведение FreeRTOS 4.x обратили внимание?
Нет, я работал с 3.2.2, как проект сдал больше на FreeRTOS.org не заглядывал. Посмотрю обязательно, спасибо.


--------------------
На любой вопрос даю любой ответ
"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
zltigo
сообщение May 18 2006, 09:37
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Сергей Борщ @ May 18 2006, 12:08) *
typedef void * xQueueHandle;
typedef xQueueHandle xSemaphoreHandle;
typedef void * xTaskHandle;

А здесь-то криминал-то в чем? Совершенно разные типы. Я 'дико извиняюсь', но это
typedef а не define - любой компилятор находясь в твердом уме и здравой памяти обломает
подмену безвариантно.





Цитата(Сергей Борщ @ May 18 2006, 12:08) *
Нет, я работал с 3.2.2, как проект сдал больше на FreeRTOS.org не заглядывал. Посмотрю обязательно, спасибо.

Кстати :-) обратите внимание, там в переключении контекстов 'nop'-чик недавно добавился...


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 18 2006, 13:06
Сообщение #9


Гуру
******

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



Цитата(zltigo @ May 18 2006, 12:37) *
Цитата(Сергей Борщ @ May 18 2006, 12:08) *

typedef void * xQueueHandle;
typedef xQueueHandle xSemaphoreHandle;
typedef void * xTaskHandle;
А здесь-то криминал-то в чем? Совершенно разные типы. Я 'дико извиняюсь', но это
typedef а не define - любой компилятор находясь в твердом уме и здравой памяти обломает
подмену безвариантно.
Совсем не уверен. Во всяком случае
Код
    int x,y;
    xQueueReceive(&x, &y, 0);
IAR съел молча, хотя int* это совсем не xQueueHandle. И что-то мне казалось что в С это не разные типы а синонимы, это в С++ будут разные типы.

По сравнению объемов мне непонятно откуда такие цифры? Чего-то вы напутали. Заглянул в .map, получил там такое:
Код
OS::Kernel      0x28
IdleProcess     0x6c
Proc1           0x134 ( 8 + 0x12C stack)
Proc2           0x134 ( 8 + 0x12C stack)
Proc3           0x134 ( 8 + 0x12C stack)

Т.е. ядро+Idle занимает 148 байт плюс по 8 байт на каждый процесс. Остальное - стеки прцессов. Счас буду делать аналогичный тест с FreeRTOS, сравню сам. Еще особенность - я не правил .xcl из ИАРовского примера, поэтому возможно погрешность ползет оттуда: в качестве IRQ_STACK в scmRTOS используется CSTACK, да и его размер в .xcl определен как 0x400 что явно замного. Продолжаю эксперименты. Счас попробую замерить время переключения контекстов.

Цитата
Кстати :-) обратите внимание, там в переключении контекстов 'nop'-чик недавно добавился...
Еще один? :-))


--------------------
На любой вопрос даю любой ответ
"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
zltigo
сообщение May 18 2006, 14:38
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Сергей Борщ @ May 18 2006, 16:06) *
Совсем не уверен. Во всяком случае
Код
    int x,y;
    xQueueReceive(&x, &y, 0);
IAR съел молча, хотя int* это совсем не xQueueHandle. И что-то мне казалось что в С это не разные типы а синонимы, это в С++ будут разные типы.

Ну начинаем выкручиваться:
1. Амперсандик добавили, спасибо, что не (xQueueHandle) :-)
2. С настройками компилятора разберитесь, ибо я, естественно, как и положено, получил
Код
D:\ARM_WORK\COMMON\LPC2000\rtc.c(107) : Warning[Pe167]: argument of type "int *" is incompatible with parameter of type "xQueueHandle"


Цитата
По сравнению объемов мне непонятно откуда такие цифры? Чего-то вы напутали. Заглянул в .map, получил там такое:

Тоже из MAP. MAP в тестовом виде прилагается, кстати, был в свое время обрадован IARовским
HTML мапом. Смотрите в приложении:
* MODULE SUMMARY *
Делал только сборку, ничего не менял, на железо не переносил.
Цитата
Счас буду делать аналогичный тест с FreeRTOS, сравню сам. Еще особенность - я не правил .xcl из ИАРовского примера, поэтому возможно погрешность ползет оттуда: в качестве IRQ_STACK в scmRTOS используется CSTACK, да и его размер в .xcl определен как 0x400 что явно замного.

Это Правильно! Едиственное изменение мною для уравнивания шансов конфигурирось количество приоритетов равное числу задач, ибо так и в scmRTOS. И отключальтись дополнитительные
наворотики. Собственно конфигурация в приложении. На железо заливалось.
Результат возможно будет даже немного лучше при компиляции базовой FreeRTOS, ибо я своего надобавлял.

Цитата
Счас попробую замерить время переключения контекстов.

Если мне не изменяет память, то я получил на уровне 7us. Но это при ЧЕСТНОМ измерении,
от момента ВНЕШНЕГО а не таймерного прерывания и до проднятия задачи дергающей PIN.
Время это время для FreeRTOS, естественно, не фиксированное. Задач было около 6. Можно
повторить под протокол, но через недельку - болею сейчас.

Цитата
Еще один? :-))

Если последняя рассматриваеваемая Вами версия была 3.X.X, то помнится да.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Сергей Борщ   Написал порт scmRTOS под ARM   May 15 2006, 14:19
- - Pat   Цитата(Сергей Борщ @ May 15 2006, 16:19) ...   May 15 2006, 16:20
- - Сергей Борщ   >Я не шибко опытный, но что то компилер не нахо...   May 15 2006, 16:35
|- - Pat   Скомпилир все ОК. Запускаю отладку в симуляторе. П...   May 15 2006, 17:20
|- - Сергей Борщ   Цитата(Pat @ May 15 2006, 20:20) Скомпили...   May 15 2006, 17:44
|- - Сергей Борщ   Цитата(Pat @ May 15 2006, 20:20) Запускаю...   May 16 2006, 14:10
- - GetSmart   ЦитатаВ данной же ситуации симулятор загружает SPS...   May 16 2006, 15:43
|- - Сергей Борщ   Цитата(GetSmart @ May 16 2006, 18:43) Цит...   May 16 2006, 16:04
|- - spf   Цитата(Сергей Борщ @ May 16 2006, 22:04) ...   May 17 2006, 03:45
- - GetSmart   Напишите комментарии в ASM-файле к каждой команде....   May 16 2006, 16:32
|- - Сергей Борщ   Цитата(GetSmart @ May 16 2006, 19:32) Нап...   May 16 2006, 18:36
- - GetSmart   Вопрос: почему у вас в xcl-файле начальные адреса ...   May 16 2006, 18:09
- - GetSmart   Всё-равно как-то запутанно. Попробуйте разобраться...   May 16 2006, 19:17
|- - Сергей Борщ   Цитата(GetSmart @ May 16 2006, 22:17) Всё...   May 16 2006, 19:57
- - GetSmart   Цитатаmsr CPSR_cf,lr ; перек. в SYSTEM с разреш. п...   May 16 2006, 20:20
- - Сергей Борщ   Послушал советы, кое-чего поправил. Сделал targets...   May 17 2006, 12:37
- - GetSmart   Смотрите, что я нарыл: (цитата из книжки) Бит S ис...   May 17 2006, 18:11
|- - GetSmart   Касательно файла Target_LPC2xxx.h "#define C...   May 17 2006, 18:53
||- - Сергей Борщ   Цитата(GetSmart @ May 17 2006, 21:53) Кас...   May 18 2006, 08:14
|- - Сергей Борщ   Цитата(GetSmart @ May 17 2006, 21:11) Смо...   May 18 2006, 07:16
- - GetSmart   ЦитатаНо все же я настаиваю, что восстановление CP...   May 17 2006, 21:04
|- - Сергей Борщ   Цитата(GetSmart @ May 18 2006, 00:04) Дум...   May 18 2006, 07:00
- - GetSmart   ЦитатаЦитата Команды "LDMFD LR, {R0-LR}^ ; NO...   May 18 2006, 09:13
- - zltigo   Давайте я Вас еще попытаюсь совлечь c "пути и...   May 18 2006, 15:01
|- - Сергей Борщ   Цитата(zltigo @ May 18 2006, 18:01) Давай...   May 18 2006, 15:21
|- - zltigo   Цитата(Сергей Борщ @ May 18 2006, 18:21) ...   May 18 2006, 15:40
- - Сергей Борщ   Сравнил по скорости с FreeRTOS. Тест простой: низк...   May 18 2006, 15:14
|- - zltigo   Цитата(Сергей Борщ @ May 18 2006, 18:04) ...   May 18 2006, 15:16
||- - Сергей Борщ   Цитата(zltigo @ May 18 2006, 18:16) Цитат...   May 18 2006, 15:41
|- - zltigo   [quote name='Сергей Борщ' date='May 18...   May 18 2006, 15:24
|- - zltigo   Цитата(Сергей Борщ @ May 18 2006, 18:14) ...   May 18 2006, 18:50
|- - Сергей Борщ   Цитата(zltigo @ May 18 2006, 21:50) Цитат...   May 19 2006, 11:04
|- - zltigo   Цитата(Сергей Борщ @ May 19 2006, 14:04) ...   May 19 2006, 11:49
|- - Сергей Борщ   Цитата(zltigo @ May 19 2006, 14:49) Ну во...   May 19 2006, 13:13
|- - zltigo   Цитата(Сергей Борщ @ May 19 2006, 16:13) ...   May 19 2006, 13:32
|- - Сергей Борщ   Цитата(zltigo @ May 19 2006, 16:32) Цитат...   May 19 2006, 13:37
- - GetSmart   2 Сергей Борщ Когда закончите доводить до ума свою...   May 18 2006, 15:41
|- - Сергей Борщ   Цитата(GetSmart @ May 18 2006, 18:41) 2 С...   May 18 2006, 15:50
- - sergeeff   Я давно приглядываюсь к scmRTOS применительно к AR...   May 20 2006, 14:01
|- - Сергей Борщ   Цитата(sergeeff @ May 20 2006, 17:01) Я д...   May 20 2006, 17:50
||- - ig_z   Цитата(Сергей Борщ @ May 20 2006, 20:50) ...   May 21 2006, 00:02
||- - Dainis   Цитата(ig_z @ May 20 2006, 18:01) Почему ...   May 21 2006, 12:07
|- - amusin   Цитата(sergeeff @ May 20 2006, 20:01) Ест...   May 22 2006, 04:55
|- - amusin   Цитата(Сергей Борщ @ May 20 2006, 23:50) ...   May 22 2006, 05:32
|- - Сергей Борщ   Цитата(amusin @ May 22 2006, 08:32) Цитат...   May 22 2006, 08:22
- - ig_z   2 Сергей Борщ Посмотрел ваш порт, сходу возник а...   May 20 2006, 15:01
- - sergeeff   Да. Еще про critical section. Твой вариант запрета...   May 20 2006, 15:32
- - GetSmart   ЦитатаSWI единственный коректный способ вызова SYS...   May 21 2006, 12:36
|- - zltigo   ЦитатаМожно хотябы в общих словах пример кода, я е...   May 21 2006, 16:54
- - GetSmart   Цитатавопрос только в том, нужны-ли эти выкрутасы ...   May 21 2006, 17:38
|- - zltigo   Цитата(GetSmart @ May 21 2006, 20:38) А п...   May 21 2006, 18:34
- - GetSmart   Самая близкая по смыслу цитата из <arm7tdmi.pdf...   May 21 2006, 19:08
|- - zltigo   Цитата(GetSmart @ May 21 2006, 22:08) Про...   May 21 2006, 20:02
- - Сергей Борщ   Завтра (в понедельник) буду изучать все это вдумчи...   May 21 2006, 19:42
|- - zltigo   Цитата(Сергей Борщ @ May 21 2006, 22:42) ...   May 21 2006, 20:33
- - GetSmart   1,2,3 - OK 4. Как только в коде (даже в IRQ, и даж...   May 21 2006, 19:57
- - GetSmart   ЦитатаА посмотреть на исходник и почитать Аtmel-ов...   May 21 2006, 20:34
|- - zltigo   Цитата(GetSmart @ May 21 2006, 23:34) У-у...   May 21 2006, 20:57
- - GetSmart   ЦитатаНе стал, но завязан :-( А AIC уже в официаль...   May 21 2006, 21:28
|- - zltigo   Цитата(GetSmart @ May 22 2006, 00:28) Ну ...   May 21 2006, 22:21
- - aaarrr   Цитата(amusin @ May 22 2006, 09:32) Нет в...   May 22 2006, 10:32
- - Сергей Борщ   Спасибо всем, кто подсказал функцию поиска наиболе...   May 22 2006, 11:30
|- - amusin   Цитата(Сергей Борщ @ May 22 2006, 17:30) ...   May 22 2006, 11:48
|- - Сергей Борщ   Цитата(amusin @ May 22 2006, 14:48) Цитат...   May 22 2006, 11:59
|- - IgorKossak   Цитата(Сергей Борщ @ May 22 2006, 14:59) ...   May 22 2006, 12:16
- - sergeeff   Да, конечно, для ARM надо сделать количество проце...   May 22 2006, 15:40
|- - amusin   Цитата(sergeeff @ May 22 2006, 21:40) Да,...   May 23 2006, 02:32
|- - Сергей Борщ   Цитата(amusin @ May 23 2006, 05:32) Цитат...   May 23 2006, 07:25
- - sergeeff   Пара соображений по поводу быстродействия. Я эту и...   May 26 2006, 17:34
|- - IgorKossak   Цитата(sergeeff @ May 26 2006, 20:34) ......   May 27 2006, 16:03
|- - dxp   Цитата(sergeeff @ May 27 2006, 00:34) voi...   May 29 2006, 03:46
|- - amusin   Цитата(dxp @ May 29 2006, 09:46) Гарри,...   May 29 2006, 06:18
- - GetSmart   ЦитатаУ АРМа есть аппаратный сдвигатель? Конечно е...   May 29 2006, 09:20
|- - spf   Цитата(GetSmart @ May 29 2006, 15:20) Цит...   May 29 2006, 10:16
- - GetSmart   АРМ имеет команды с обоими вариантами: как непосре...   May 29 2006, 10:21


Closed TopicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


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


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