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

 
 
> scmRTOS. Порт под AT91SAM7X, у кого есть уже отлаженный?
LessNik
сообщение Jan 9 2008, 12:23
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 6-09-06
Из: Москва
Пользователь №: 20 118



Привет всем.
Решил поиграться с scmRTOS. Скачал порт под арм, но поддержки AT91Sam7x... там не было. Дописал часть сам, но ОС работает как-то не стабильно. Может где-то ошибся...
Может кто-нибудь поделится уже отлаженным портом?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Waso
сообщение Jun 20 2008, 09:32
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 268
Регистрация: 4-11-05
Пользователь №: 10 470



Ясно. Незнал, простите. Вобщем теперь реализация такая:
Цитата("OS_Target_cpp.cpp")
TBaseProcess::TBaseProcess(TStackItem* Stack, word Stack_Size, TPriority pr, void (*exec)())
: StackPointer(Stack), StackSize(Stack_Size), Priority(pr) , Timeout(0)
{
Kernel.RegisterProcess(this);

#ifdef DEDUG_STACK
//---------------------------------------------------------------
// Fill Stack area with some value to be able later to define stack usage
for (StackPointer-=(StackSize/sizeof(TStackItem)); StackPointer < Stack; *(StackPointer++) = STACK_FILL_CONST);
#endif //DEBUG_STACK

//---------------------------------------------------------------
// Prepare Process Stack Frame

*(--StackPointer) = (dword)exec; // return from interrupt address

StackPointer -= 14; // emulate "push R0-R12, LR"
#if __CPU_MODE__ == 1
*(--StackPointer) = 0x003F; // SR value: system mode, FIQ & IRQ enabled, THUMB
#else
*(--StackPointer) = 0x001F; // SR value: system mode, FIQ & IRQ enabled, ARM
#endif
}
Цитата("OS_Kernel.h")
template<TPriority pr, word stack_size>
class process : public TBaseProcess
{
public:
INLINE process():TBaseProcess(&Stack[stack_size/sizeof(TStackItem)], stack_size, pr, (void (*)())Exec){}
#ifdef DEDUG_STACK
word Used_Stack_Size();
#endif //DEDUG_STACK

OS_PROCESS static void Exec();

private:
TStackItem Stack[stack_size/sizeof(TStackItem)];
};

template<TPriority pr, word stack_size>
word process<pr,stack_size>::Used_Stack_Size()
{
TStackItem* Idx = Stack;
while(*(Idx++) == STACK_FILL_CONST);
return ((Stack + (StackSize/sizeof(TStackItem))) - Idx)*sizeof(TStackItem);
}
Цитата("commdefs.h")
#define STACK_FILL_CONST 0xFFF7FFFF
#define DEDUG_STACK
ну и добавлена константа const word StackSize; в описание класса TBaseProcess.
Из корыстно-альтруистических соображений хочу попросить включить это или нечто подобное в последующие версии, чтоп самому не править после каждого обновления, да и людям, уверен, пригодится. rolleyes.gif

Выражаю благодарность авторам за сей продукт. Действительно легкая и красивая операционка!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- LessNik   scmRTOS. Порт под AT91SAM7X   Jan 9 2008, 12:23
- - Сергей Борщ   Цитата(LessNik @ Jan 9 2008, 14:23) Решил...   Jan 9 2008, 12:45
|- - LessNik   Цитата(Сергей Борщ @ Jan 9 2008, 15:45) А...   Jan 9 2008, 15:36
|- - Сергей Борщ   Цитата(LessNik @ Jan 9 2008, 17:36) Принц...   Jan 9 2008, 16:19
|- - LessNik   ЦитатаЭто тоже уже дописано в той версии, которая ...   Jan 10 2008, 05:33
|- - dxp   Цитата(LessNik @ Jan 10 2008, 11:33) Этот...   Jan 10 2008, 07:07
|- - LessNik   Цитата(dxp @ Jan 10 2008, 10:07) Нет, име...   Jan 10 2008, 11:46
|- - Сергей Борщ   Цитата(LessNik @ Jan 10 2008, 13:46) Спас...   Jan 10 2008, 12:36
|- - LessNik   Цитата(Сергей Борщ @ Jan 10 2008, 15:36) ...   Jan 11 2008, 10:03
|- - Сергей Борщ   Цитата(LessNik @ Jan 11 2008, 12:03) Что ...   Jan 11 2008, 11:20
|- - LessNik   Цитата(Сергей Борщ @ Jan 11 2008, 14:20) ...   Jan 11 2008, 13:32
- - Waso   Пересаживаюсь с FreeRTOS на scmRTOS. Проц AT91SAM7...   Jun 18 2008, 08:41
|- - Сергей Борщ   Цитата(Waso @ Jun 18 2008, 11:41) КодLoad...   Jun 18 2008, 14:33
- - Waso   C макросом я пока париться не стал. А со стеком во...   Jun 19 2008, 07:31
|- - Сергей Борщ   Цитата(Waso @ Jun 19 2008, 10:31) Как я п...   Jun 19 2008, 08:20
- - Waso   Скажите, а у вас стек ниспадающий чтоле? 0_о Запол...   Jun 20 2008, 08:28
|- - Сергей Борщ   Цитата(Waso @ Jun 20 2008, 11:28) Скажите...   Jun 20 2008, 09:02
- - Waso   После ручного сброса или сьема/подачи питания пере...   Jun 23 2008, 08:43
|- - Сергей Борщ   Цитата(Waso @ Jun 23 2008, 11:43) После р...   Jun 23 2008, 09:52
- - Waso   Дописал в инициализацию AT91C_BASE_PMC->PMC_PC...   Jun 23 2008, 11:14
- - Сергей Борщ   Цитата(Waso @ Jun 23 2008, 14:14) Дописал...   Jun 28 2008, 12:51


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

 


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


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