|
|
  |
Написал порт scmRTOS под ARM, интересны отзывы |
|
|
|
May 23 2006, 02:32
|
Частый гость
 
Группа: Участник
Сообщений: 120
Регистрация: 2-09-05
Из: Екатеринбург
Пользователь №: 8 165

|
Цитата(sergeeff @ May 22 2006, 21:40)  Да, конечно, для ARM надо сделать количество процессов - 32. Будет проще и быстрее. Кол-во процессов scmRTOS_PROCESS_COUNT надо делать таким, сколько требуется, и не больше, т.к. внутри void OS::TKernel::SystemTimer() есть цикл for(byte i = 0; i < scmRTOS_PROCESS_COUNT; i++).Другое дело, что может быть действительно сделать TProcessMap 32-разрядным, хотя это и не вписывается в идеологию scmRTOS об экономии ОЗУ  . Как вариант, ширину TProcessMap можно сделать по потребности, а ее уже приводить к 32 разрядам внутри GetHighPriority(), если позволит компилятор.
|
|
|
|
|
May 23 2006, 07:25
|

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

|
Цитата(amusin @ May 23 2006, 05:32)  Цитата(sergeeff @ May 22 2006, 21:40)  Да, конечно, для ARM надо сделать количество процессов - 32. Будет проще и быстрее.
Кол-во процессов scmRTOS_PROCESS_COUNT надо делать таким, сколько требуется, и не больше, т.к. внутри void OS::TKernel::SystemTimer() есть цикл for(byte i = 0; i < scmRTOS_PROCESS_COUNT; i++).Другое дело, что может быть действительно сделать TProcessMap 32-разрядным, хотя это и не вписывается в идеологию scmRTOS об экономии ОЗУ  . Как вариант, ширину TProcessMap можно сделать по потребности, а ее уже приводить к 32 разрядам внутри GetHighPriority(), если позволит компилятор. Да, так и будем делать - размер TProcessMap минимально необходимый. Про 32 процесса с Гарри утрясли, про GetHighPriority() - для кол-ва процессов меньше 7 сделаю табличный метод - размер таблицы будет те же 64 байта для 6 процессоа, для меньшего кол-ва соответственно меньше. Беру тайм-аут до выходных - в пятницу надо изделие на выставку отправлять а софт еще процентов на 40 написан.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
May 29 2006, 06:18
|
Частый гость
 
Группа: Участник
Сообщений: 120
Регистрация: 2-09-05
Из: Екатеринбург
Пользователь №: 8 165

|
Цитата(dxp @ May 29 2006, 09:46)  Гарри, ты не добавил const в объявлении TProcessMap PrioMaskTable[scmRTOS_PROCESS_COUNT+1] чтобы не заморачиваться с инициализацией таблицы?
|
|
|
|
|
May 29 2006, 10:16
|

Странник
   
Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051

|
Цитата(GetSmart @ May 29 2006, 15:20)  Цитата У АРМа есть аппаратный сдвигатель? Конечно есть. Сдвигает регистр в 1-тактовой команде на любое количество бит. Необходимо уточнить ГДЕ задается "любое количество бит". Если в другом регистре то хорошо. PS: Имеются процы у которых количество бит сдвига задается в коде команды - любое но фиксированное.
--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|