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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> uCOS-II LPC 2124 port, Порт для 2124 (из 2129)
emerg_reanimator
сообщение Dec 29 2004, 11:12
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 69
Регистрация: 12-10-04
Пользователь №: 853



Я пытаюсь портировать микроКОС (AN-1229, Keil MCB2100 ) на 2124 (Olimex е2124), но у меня пока как неполучается.

Пробывал под ИАР 4.11, после инициализации платы зависает на IdleTask (нет переключения задач). Под 3.21 пока не удалось скомпилировать.

Разумная идея или/и ценный опыт приветсвувуются smile.gif
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Dec 29 2004, 13:55
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(emerg_reanimator @ Dec 29 2004, 14:12)
Пробывал под ИАР 4.11, после инициализации платы зависает на IdleTask (нет переключения задач). Под 3.21 пока не удалось скомпилировать.
*

Обратите внимание на конфигурирование и инициализацию системного таймера, особенно прерывания от его.
Go to the top of the page
 
+Quote Post
lamerok
сообщение Dec 30 2004, 06:34
Сообщение #3


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

Группа: Свой
Сообщений: 135
Регистрация: 22-06-04
Из: Челябинск
Пользователь №: 88



Цитата(emerg_reanimator @ Dec 29 2004, 14:12)
Я пытаюсь портировать микроКОС (AN-1229, Keil MCB2100 ) на 2124 (Olimex е2124), но у меня пока как неполучается.

Пробывал под ИАР 4.11, после инициализации платы зависает на IdleTask (нет переключения задач). Под 3.21 пока не удалось скомпилировать.

Разумная идея или/и ценный опыт приветсвувуются smile.gif
*



в ИАР 4.11 Если вы делаете пошаговую отладку, то так и будет, так как таймер то тикает, а вы стоите.. и системный тик пропускается, поэтому нужно поставить брейкпоинт сразу на какой-нибудь задаче, только после этого брейкпоинта опять будет сбой тиков.. и опять только идле будет работать, кроме того, необходимо перевести в режим SYS, например не мудрствуя лукаво в файле KikstartCard_cstartup.s79.
mrs r0,cpsr ; Original PSR value
bic r0,r0,#MODE_BITS ; Clear the mode bits
orr r0,r0,#IRQ_MODE ; Set IRQ mode bits
msr cpsr_c,r0 ; Change the mode
ldr sp,=SFE(IRQ_STACK) & 0xFFFFFFF8 ; End of IRQ_STACK

bic r0,r0,#MODE_BITS ; Clear the mode bits
orr r0,r0,#SVC_MODE ; Set System mode bits
msr cpsr_c,r0 ; Change the mode
ldr sp,=SFE(CSTACK) & 0xFFFFFFF8 ; End of CSTACK

поэтому смотреть работу задачи лучше на портах, например сделать задачку которая преключает портик и смотреть он переключается или нет...
Вот ссылочка на тему.. там пример есть
http://forum.electronix.ru/index.php?showtopic=1179&hl=
Go to the top of the page
 
+Quote Post
emerg_reanimator
сообщение Dec 30 2004, 11:07
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 69
Регистрация: 12-10-04
Пользователь №: 853



Спасибо за полезные ответы!

На счёт пропуска тика очень похоже, но непонятно. Почему он пропускается?

Таймер и прерывания настройны правильно. На сколько я знаю микроКОС переходит в System режим при инициализации. В моём случае так есть, проверял все пять битиков установлены. Но можно ещё раз проверить. smile.gif

Было бы интересно если можно было бы при симуляции отлавливать изменения ножек порта. На подобии uVision Debug functions в Keil'e.
Go to the top of the page
 
+Quote Post
emerg_reanimator
сообщение Jan 9 2005, 12:19
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 69
Регистрация: 12-10-04
Пользователь №: 853



Вопрос относится больше к самой процедуре компиляции, чем к ОС.

При компиляции проекта с использованием cstartup.s79 (для IAR). В функции ?cstartup вызвается функция __segment_init() в которой копируются сегменты кода (initTable).

Непонятно в каком случае нужно копировать и собственно говоря зачем?

Объясните пожалуйста! smile.gif
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jan 9 2005, 13:09
Сообщение #6


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(emerg_reanimator @ Jan 9 2005, 15:19)
Непонятно в каком случае нужно копировать и собственно говоря зачем?
*

Если Вы в своей программе обявляли переменные и присваивали им начальные значения, то эти начальные значения (инициализаторы) хранятся в ПЗУ и при старте программы копируются в инициализируемые переменные.
Т. е., в Вашем случае происходит копирование сегмента DATA_ID (ПЗУ) в сегмент DATA_I (ОЗУ).
Go to the top of the page
 
+Quote Post
emerg_reanimator
сообщение Jan 10 2005, 12:37
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 69
Регистрация: 12-10-04
Пользователь №: 853



Ясно,
спасибо!

Я понял почему у меня ОС не заработала (надо было вначале доки читать :P ). В ИАРе нет поддержки симуляции перефирии (а вот в Кейле есть). Таймер не тикает. Для этих целей прелагается использовать генератор прерываний. Но это далеко не всегда удобно.

К сожалению у меня пока нет адаптера Wiggler поэтому приходится пользовать симулятор.
Go to the top of the page
 
+Quote Post
one_man_show
сообщение Jan 10 2005, 22:15
Сообщение #8


Помогу, чем смогу
******

Группа: Админы
Сообщений: 2 786
Регистрация: 28-05-04
Из: Москва
Пользователь №: 25



Цитата(emerg_reanimator @ Jan 10 2005, 15:37)
К сожалению у меня пока нет адаптера Wiggler поэтому приходится пользовать симулятор.
*

Повторю слова коллег, почитайте форум, найдете советы, как быстро и легко сделать Wiggler-совместимый адаптер.


--------------------
С уважением,
Ваган Саруханов
Проекты|Форум|Facebook|Linkedin
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jan 11 2005, 07:46
Сообщение #9


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(one_man_show @ Jan 11 2005, 01:15)
Цитата(emerg_reanimator @ Jan 10 2005, 15:37)
К сожалению у меня пока нет адаптера Wiggler поэтому приходится пользовать симулятор.
*

Повторю слова коллег, почитайте форум, найдете советы, как быстро и легко сделать Wiggler-совместимый адаптер.
*


А ещё за схемой Wiggler можно сходить на Сахару
Go to the top of the page
 
+Quote Post
one_man_show
сообщение Jan 13 2005, 23:34
Сообщение #10


Помогу, чем смогу
******

Группа: Админы
Сообщений: 2 786
Регистрация: 28-05-04
Из: Москва
Пользователь №: 25



А мне не удалось нормально использовать сочетание Олимекс+Вигглер+ИАР. Поэтому, не меняя железо, пришлось перейти на КроссВоркс, работает без проблем. Вообще замечено, что Олимекс лучше живет с КроссВорксом. Если не ошибаюсь, то эта среда единственная, которая содержит примеры и "знает" что-то про Олимекс.


--------------------
С уважением,
Ваган Саруханов
Проекты|Форум|Facebook|Linkedin
Go to the top of the page
 
+Quote Post
jojo
сообщение Jan 14 2005, 07:17
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827



На всякий случай прикрепляю файл с ИАР ROM Monitor для ARM. Он пропатчен и работает на скорости 115200 вместо оригинальных 9600. Для начала работы с LPC210x вполне сгодится, и Виглер не нужен.
Примеры использования есть в IAR 4. Разумеется, надо правильно сконфигурировать проект, иначе работать не будет smile3046.gif
Прикрепленные файлы
Прикрепленный файл  115200_LPC210xRomMon.zip ( 20.95 килобайт ) Кол-во скачиваний: 71
 
Go to the top of the page
 
+Quote Post
emerg_reanimator
сообщение Jan 14 2005, 18:14
Сообщение #12


Участник
*

Группа: Свой
Сообщений: 69
Регистрация: 12-10-04
Пользователь №: 853



Спасибо за оперативные ответы!

Схему адаптера я уже скачал и сделал ПП для него. Просто сейчас плата изготавливается и пока приходится пользоваться подручными средствами.

Я использую ИАР 3.21а (кстати установленный 4.11а распознаётся утилиткой в систрэйе как 4.10b) и надеюсь, что проблем особых с адаптером не будет.

Я сейчас пользуюсь Кейл-овским микровижэн+ГНУ. Пример для настройки таймера работает без проблем. А вот с родным бета-компилятором не хочет: после выхода из процедуры прерывания не сбрасываеться I-флаг.

Пока мне не удалось запустить ОС на 2124. Проблема остаётся в таймере. Я даже без ОС не могу его оживить. Это касается ИАР. Ещё раз повторюсь под Кейл таймер заработал. Различия между примерами для ИАР и для Кейл заключаютя в начальной инициализации процессора, но какие настройки влияют на работу таймера пока сообразить не могу.

Если кому-нибудь нечего будет делать на досуге, взгляните плз smile.gif

См. приложение

Сообщение отредактировал emerg_reanimator - Jan 15 2005, 09:25
Прикрепленные файлы
Прикрепленный файл  src.iar321a.zip ( 4.69 килобайт ) Кол-во скачиваний: 49
Прикрепленный файл  src.keil.zip ( 3.71 килобайт ) Кол-во скачиваний: 51
 
Go to the top of the page
 
+Quote Post
emerg_reanimator
сообщение Jan 14 2005, 18:16
Сообщение #13


Участник
*

Группа: Свой
Сообщений: 69
Регистрация: 12-10-04
Пользователь №: 853



Цитата(jojo @ Jan 14 2005, 10:17)
На всякий случай прикрепляю файл с ИАР ROM Monitor для ARM. Он пропатчен и работает на скорости 115200 вместо оригинальных 9600. Для начала работы с LPC210x вполне сгодится, и Виглер не нужен.
Примеры использования есть  в IAR 4. Разумеется, надо правильно сконфигурировать проект, иначе работать не будет  smile3046.gif
*


Спасибо, как будет свободное время обязатльено посмотрю. smile.gif
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jan 14 2005, 19:09
Сообщение #14


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



emerg_reanimator
Вместо вставки такого длинного кода лучше, пожалуйста, прикрепляйте файл к сообщению.
Спасибо.
Go to the top of the page
 
+Quote Post
lamerok
сообщение Jan 15 2005, 06:53
Сообщение #15


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

Группа: Свой
Сообщений: 135
Регистрация: 22-06-04
Из: Челябинск
Пользователь №: 88



В иаре в симуляторе для таймера можно использвать макрос, который будет генерить прерывания.

Только переименуйте его в irq.mac (он у меня так не прикрепился, я ему расщирение на zip Поменял)

В меню debugger->Setup macros галку на use macro, и вставьте файл irq.mac
Прикрепленные файлы
Прикрепленный файл  irq.zip ( 70 байт ) Кол-во скачиваний: 57
 
Go to the top of the page
 
+Quote Post

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

 


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


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