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

 
 
> Keil uVison + RTL, подробности и детали.
Bosicc
сообщение Feb 13 2007, 08:42
Сообщение #1


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

Группа: Свой
Сообщений: 93
Регистрация: 5-03-06
Из: Украина, Киев
Пользователь №: 14 970



Вот решил разобраться как работает компилятор и вообще весь аппарат создания прошивки под ARM.
Просмотрев примеры от производителя я обзавелся парочкой вопросов:

1. Как работает функция printf()? Где есть описание что нужно подключить к проекту что б это зароботало.

2. Для чего нужен файл Retarget.c ?

3. Где можно почитать что такое #pragma import(__use_no_semihosting_swi); ?

4. Что происходит когда в настройках проекта я ставлю галочку использования RTX Kernel ? ( Я попробовал использовать в RTOSе функцию printf, а при линковке возникает ошибка bcsp.axf: Error: L6915E: Library reports error: __use_no_semihosting_swi was requested, but _sys_open was referenced )

5. Где можно почитать описание как работают стандартные фунуции и как их инициализировать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Bosicc
сообщение Feb 14 2007, 08:34
Сообщение #2


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

Группа: Свой
Сообщений: 93
Регистрация: 5-03-06
Из: Украина, Киев
Пользователь №: 14 970



Хорошо.... Рассмотрение данного примера значительно расширило мой кругозор но так и не дало желаемых знаний.
Пример работает хорошо, задания запускаются и вроде бы его работа понятна.
Только вот немогу понять, когда писал свою программку на моменте выполнения функции os_init_context() из файла RTX_Config.c, на моменте
/* Allocate the memory space for the stack. */
p_TCB->stack = _alloc_box (m_stk);
программа подвисает.
Как можно понять и где почитать, как это все работает. Читал хелп, но из него понять что предварительно надо сделать для того что б это все заработало...
И что самое парадоксальное, использование работающих файлов из одного проекта, не дает работоспособности в другом. А лепить свой проект из заготовок, работу которых я не понимаю, очень не хочеться. Может есть хорошее описание всего этого дела?
Go to the top of the page
 
+Quote Post
mihask
сообщение Feb 15 2007, 06:53
Сообщение #3


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

Группа: Validating
Сообщений: 80
Регистрация: 7-12-05
Пользователь №: 11 905



Цитата(Bosicc @ Feb 14 2007, 11:34) *
Хорошо.... Рассмотрение данного примера значительно расширило мой кругозор но так и не дало желаемых знаний.
Пример работает хорошо, задания запускаются и вроде бы его работа понятна.
Только вот немогу понять, когда писал свою программку на моменте выполнения функции os_init_context() из файла RTX_Config.c, на моменте
/* Allocate the memory space for the stack. */
p_TCB->stack = _alloc_box (m_stk);
программа подвисает.
Как можно понять и где почитать, как это все работает. Читал хелп, но из него понять что предварительно надо сделать для того что б это все заработало...
И что самое парадоксальное, использование работающих файлов из одного проекта, не дает работоспособности в другом. А лепить свой проект из заготовок, работу которых я не понимаю, очень не хочеться. Может есть хорошее описание всего этого дела?


Да действительно в хелпе не шибко подробно все описано. smile.gif Но если знать принципы работы операционных систем жесткого реального времени (ссылок на литературу об них этом форуме много ), то в общем то все более понятно становится. smile.gif Боле подробного описания на RTL-ARM Keil, я не нашел.

Чтобы все заработало нужно:
- В Target выбрать RTX Kernel
- Настроить Startup.s - здесь инициализация железяки
(Железяка описана в даташите на микросхему,настройка в хелпе, для филипса например есть еще книжка Тревора Мартина);
- Настроить RTX_Config - здесь инициализация RTOS(описание в хелпе) (нужно обратить внимание на выделение размера стека дело в том что printf требует большого стека до 1.5 K(если float пользуете));
- Настроить Retarget.c (если есть необходимость) (описание в хелпе);
- Создать задачу инициализации;
- В задаче инициализации проинициализировать систему и создать задачи;
- В конце задачи инициализации выполнить функцию удаления задачи инициализации;
Go to the top of the page
 
+Quote Post
mihask
сообщение Feb 15 2007, 10:42
Сообщение #4


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

Группа: Validating
Сообщений: 80
Регистрация: 7-12-05
Пользователь №: 11 905



Цитата(mihask @ Feb 15 2007, 09:53) *
- Настроить Retarget.c (если есть необходимость) (описание в хелпе);


Ну не "Настроить Retarget.c" - конечно smile.gif - а переписать некоторые библиотечные
функции в случае необходимости.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Bosicc   Keil uVison + RTL   Feb 13 2007, 08:42
- - Bosicc   Ок, тогда добавлю еще одну формулировку вопроса. Е...   Feb 13 2007, 13:23
|- - mihask   Цитата(Bosicc @ Feb 13 2007, 16:23) Ок, т...   Feb 13 2007, 16:43
- - mihask   Цитата(Bosicc @ Feb 13 2007, 11:42) Вот р...   Feb 13 2007, 17:07
- - KostyanPro   Цитата(Bosicc @ Feb 13 2007, 07:42) Вот р...   Feb 13 2007, 17:13
- - Bosicc   Дальнейшее освоение осей показало: При создании ...   Feb 16 2007, 16:10
|- - Andrew2000   Цитата(Bosicc @ Feb 16 2007, 16:10) Но чт...   Feb 16 2007, 23:45
|- - Bosicc   Цитата(Andrew2000 @ Feb 16 2007, 22:45) П...   Feb 17 2007, 11:12
- - Bosicc   Даже незнаю с чего и начать... Как работают таски ...   Feb 28 2007, 11:32
|- - Andrew2000   Keil\ARM\Hlp\rvi.chm -> "Em...   Feb 28 2007, 12:10
- - Bosicc   Покопавшись 3 дня в своих сырцах и посчитал мануал...   Mar 2 2007, 13:55
- - VAI   Если это переполнение стека, то в rtx_conf_.c вклю...   Mar 3 2007, 10:57
- - Bosicc   Готов биться головой об стенку!!! Есть...   Mar 6 2007, 08:26
- - VAI   может тогда код в студию?   Mar 6 2007, 12:35
|- - Bosicc   Цитата(VAI @ Mar 6 2007, 11:35) может тог...   Mar 7 2007, 07:51
- - Костян   Вопрос больше по переходу с карма: Если в RVC ана...   Mar 6 2007, 13:18


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

 


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


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