|
scmRtos для медных чайников |
|
|
|
Feb 12 2012, 09:04
|

Частый гость
 
Группа: Участник
Сообщений: 93
Регистрация: 5-01-05
Из: Оулу
Пользователь №: 1 811

|
Добрый день всем! Возникло желание - точнее, необходимось использовать многозадачность в своем проекте - вернее, или надо писать свой диспетчер (в котором я уже успел запутаться), или пользоваться чем-то готовым. Увидел scmRtos - попытался запустить демку. Пример под IAR на MSP430F2617 - у меня на плате MSP430F2410, IAR версия 5.30
Немножко подправил демку под свою плату, чтобы нужный светодиодик моргал, указал иару на MSP430F2410 - и ничего. WDT прерывание случается раза 4 (вроде как это системный таймер?), после чего программа улетает неведомо куда.
Кто-нибудь может на путь истинный наставить - что можно трогать, что нельзя. Может ли на работоспособности версия компилятора сказаться? Или, лучше всего, может у кого готовая рыба завалялась для моргания именно на этом кристалле или похожем?
|
|
|
|
|
 |
Ответов
|
Jan 21 2013, 10:38
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690

|
добрый день! появилась необходимость использовать scmRTOS в своём проекте. пробовал 1-EVENT на кристаллах: STM32F100CB и STM32F103VG. не заработало ни на одном. изменял только main.cpp на предмет светодиодов. приборы взял заведомо рабочие. ни один процесс не запускается, хотя в main() программа заходит. т.е. принудительно светодиоды при инициализации МК включаются (на обеих железках). использую GCC 4.6.2. может в компиляторе какой косяк? собирается всё без ошибок. в makefile правил только компилятор, ну и загрузчик. подскажите пожалуйста куда посмотреть? только начинаю разбираться с ОС.
Сообщение отредактировал dezna - Jan 21 2013, 10:42
|
|
|
|
|
Jan 21 2013, 11:17
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690

|
Цитата(AHTOXA @ Jan 21 2013, 15:10)  Светодиоды в 1-EventFlag мигают быстро-быстро, глазом не углядеть. Может быть, в этом дело? я об этом думал. подключал осцилограф. на всякий случай попробовал - нет, не работает! LSS файл для сравниения. замена Pin<'B', 0> - <'B', 11>, Pin<'B', 1> - <'B', 12>
1_EventFlag.lss.txt ( 11.94 килобайт )
Кол-во скачиваний: 281
Сообщение отредактировал dezna - Jan 21 2013, 11:30
|
|
|
|
|
Jan 21 2013, 16:22
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
В вашем листинге нет упоминания о конструкторах. Похоже, что они не слинковались. Что за компилятор у вас? Попробуйте yagarto или kgp. С ними я проверял - работает.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jan 22 2013, 04:58
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690

|
Цитата(AHTOXA @ Jan 21 2013, 20:22)  В вашем листинге нет упоминания о конструкторах. Похоже, что они не слинковались. Что за компилятор у вас? я просил товарища собрать мне рабочий пример. он у себя проверил - работает. на моей железке тоже. так вот: компилятор уоптимизировал программу до "нельзя" (судя по размеру в 3 раза). там нет упоминания о процессах вообще. судя по всему он посчитал включение выключение выходов не существенным! как это обойти? компилятор gcc-4.6.2 вот флаги сборки: Using built-in specs. COLLECT_GCC=/opt/arm-elf/bin/arm-elf-gcc-4.6.2 COLLECT_LTO_WRAPPER=/opt/arm-elf/libexec/gcc/arm-elf/4.6.2/lto-wrapper Target: arm-elf Configured with: ../gcc-4.6.2/configure --prefix=/opt/arm-elf --target=arm-elf --with-gnu-ld --with-gnu-as --disable-nls --disable-libssp --enable-interwork --enable-multilib --with-newlib --with-headers=../newlib-1.20.0/newlib/libc/include/ --enable-languages=c,c++ --with-float=soft --without-ppl Thread model: single gcc version 4.6.2 (GCC) Цитата(AHTOXA @ Jan 21 2013, 20:22)  Попробуйте yagarto или kgp. С ними я проверял - работает. yagarto - под линук не нашёл kgp - попробую но конечно хотелось бы разобраться с моей сборкой. могу куда-нибудь скинуть для проверки. потому как все остальные проекты то работают.
|
|
|
|
|
Jan 22 2013, 05:47
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(dezna @ Jan 22 2013, 10:58)  COLLECT_GCC=/opt/arm-elf/bin/arm-elf-gcc-4.6.2 А, у вас не-eabi сборка. Она складывает конструкторы в другое место. Попробуйте в скрипт линкера после строки Код KEEP(SORT(*)(.init_array)) /* eabi uses .init_array for static constructor lists */ вставить Код KEEP(SORT(*)(.ctors))
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jan 22 2013, 06:21
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690

|
Цитата(AHTOXA @ Jan 22 2013, 09:47)  Код KEEP(SORT(*)(.ctors)) уже лучше, но всё равно чего-то ещё не хватает сравниваю один проект от 2-х компиляторов: <OS::TBaseProcess::init_stack_frame - раза в 2 меньше <Default_SystemTimer_ISR> - тоже <__Init_Data> - тоже. к сожалению в арм асме я "0", потому проанализировать не могу вот новый lss
1_EventFlag.lss.txt ( 25.05 килобайт )
Кол-во скачиваний: 266помогите пожалуйста добить этот вопрос!
|
|
|
|
Сообщений в этой теме
varvar scmRtos для медных чайников Feb 12 2012, 09:04 varvar Ok, кажется загрузка новой версии (4.0) немного по... Feb 12 2012, 14:56 dxp QUOTE (varvar @ Feb 12 2012, 21:56) Ok, к... Feb 12 2012, 16:34 varvar Цитата(dxp @ Feb 12 2012, 19:34) А зачем ... Feb 12 2012, 18:11 dxp QUOTE (varvar @ Feb 13 2012, 01:11) так н... Feb 13 2012, 06:27 varvar Я с примеров и начинал - с моей версией ИАРа и 3.1... Feb 13 2012, 16:17 dxp QUOTE (varvar @ Feb 13 2012, 23:17) Я с п... Feb 14 2012, 03:52 varvar Попытаюсь воспользоваться еще раз добротой и отзыв... Feb 14 2012, 20:04 a9d Почитай статьи по потокам. Это фактически тоже сам... Feb 14 2012, 20:48 dxp 1. В процессе ждать флаг события от таймера, когда... Feb 15 2012, 05:04 tamam Здравствуйте. Чтобы не плодить лишних тем решил от... Feb 22 2012, 06:18 AHTOXA Цитата(tamam @ Feb 22 2012, 12:18) За осн... Feb 22 2012, 08:10  tamam Цитата(AHTOXA @ Feb 22 2012, 12:10) Ага. ... Feb 22 2012, 09:12 ReAl У меня всё уже работает (1-EventFlag и 4-Debug и н... Feb 22 2012, 08:05 ReAl Цитата(ReAl @ Feb 22 2012, 10:05) Если за... Feb 22 2012, 17:55  tamam Спасибо, буду разбираться дальше. Feb 22 2012, 19:02 ReAl Прошу прощения за задержку. 23-го первый пример бы... Feb 26 2012, 11:55 tamam Спасибо за оперативность. Разбираюсь.... Feb 27 2012, 12:46 ReAl 4-Debug уже там же. Mar 1 2012, 14:28 varvar Товарищи гуру и приближенные к ним!
Помогите р... Jul 12 2012, 08:29 ReAl Как-то так.
Кодvoid SleepUntil(tick_count_t ti... Jul 12 2012, 08:54 varvar Спасибо, когда пояснили, все стало так очевидно... Jul 12 2012, 09:22 Посторонним В... доброго времени днутра или ночера...
есть комплек... Aug 3 2012, 09:06 _Артём_ Цитата(Посторонним В... @ Aug 3 2012, 12... Aug 3 2012, 10:53 Посторонним В... Цитата(_Артём_ @ Aug 3 2012, 11:53) Приме... Aug 6 2012, 08:12 _Артём_ Цитата(Посторонним В... @ Aug 6 2012, 11... Aug 6 2012, 10:34 _Артём_ Цитата(Посторонним В... @ Aug 6 2012, 11... Aug 6 2012, 12:58  Посторонним В... Цитата(_Артём_ @ Aug 6 2012, 13:58) Updat... Aug 7 2012, 08:06   _Артём_ Цитата(Посторонним В... @ Aug 7 2012, 11... Aug 7 2012, 09:56    Посторонним В... Цитата(_Артём_ @ Aug 7 2012, 10:56) Больш... Aug 16 2012, 08:57     _Артём_ Цитата(Посторонним В... @ Aug 16 2012, 11... Aug 16 2012, 11:39     AHTOXA Цитата(Посторонним В... @ Aug 16 2012, 14... Aug 16 2012, 15:44      Посторонним В... Цитата(AHTOXA @ Aug 16 2012, 15:44) Разра... Aug 21 2012, 03:43       AHTOXA У вас, похоже, не работает прерывание от системног... Aug 21 2012, 04:07        Сергей Борщ QUOTE (AHTOXA @ Aug 21 2012, 07:07) У вас... Aug 21 2012, 05:26 Посторонним В... выкладываю исходники Aug 21 2012, 06:31 _Артём_ Цитата(Посторонним В... @ Aug 21 2012, 09... Aug 21 2012, 20:37  Посторонним В... Цитата(_Артём_ @ Aug 21 2012, 20:37) Стра... Aug 22 2012, 04:26 varvar На очередные грабли наступил. В ИАРе для 430 стОит... Sep 6 2012, 18:50 ReAl Если подозрение на стек -- увеличить стек для проц... Sep 6 2012, 20:36 varvar Цитата(ReAl @ Sep 6 2012, 23:36) Если под... Sep 8 2012, 16:17 Chudik Помогите пожалуйста определиться со структурой про... Oct 3 2012, 02:09 dxp Никто, кроме вас, не знает, как лучше распределить... Oct 4 2012, 04:35 Chudik dxp
Спасибо за ответ.
Про общее правило - это-то ... Oct 4 2012, 19:31 _Артём_ Цитата(Chudik @ Oct 4 2012, 22:31) Ага, с... Oct 4 2012, 20:10  Chudik Цитата(_Артём_ @ Oct 4 2012, 13:10) Ну да... Oct 4 2012, 21:11 Chudik Не нашёл в документации других членов класса proce... Oct 4 2012, 23:54 _Артём_ Цитата(Chudik @ Oct 5 2012, 02:54) Не наш... Oct 5 2012, 00:35 Chudik Ага, спасибо, нашёл в доке. Oct 5 2012, 02:17 Chudik Возможно глупый вопрос: может ли mutex быть членом... Oct 5 2012, 14:22 _Артём_ Цитата(Chudik @ Oct 5 2012, 17:22) может ... Oct 5 2012, 14:27  AHTOXA Локальной тоже может.
Например, представьте, что у... Oct 5 2012, 16:41   _Артём_ Цитата(AHTOXA @ Oct 5 2012, 19:41) Локаль... Oct 5 2012, 17:03   Chudik Цитата(AHTOXA @ Oct 5 2012, 09:41) У меня... Oct 5 2012, 23:59    _Артём_ Цитата(Chudik @ Oct 6 2012, 02:59) Вот, в... Oct 6 2012, 01:03     Chudik Цитата(_Артём_ @ Oct 5 2012, 18:03) А чем... Oct 6 2012, 03:07    AHTOXA Цитата(Chudik @ Oct 6 2012, 05:59) Можно ... Oct 6 2012, 08:53 Chudik AHTOXA
Огромное спасибо! Как раз первое, что я... Oct 6 2012, 20:25 Chudik AHTOXA
Прикинул объявление класса для дисплея. Пос... Oct 11 2012, 22:54 AHTOXA По-моему, вполне. В любом случае, по ходу дела все... Oct 12 2012, 03:33  Chudik Цитата(AHTOXA @ Oct 11 2012, 20:33) по хо... Oct 13 2012, 04:07   AHTOXA Я, честно говоря, не совсем понимаю, что я должен ... Oct 13 2012, 05:10 Chudik Ну, вот такие замечания и нужны Спасибо.
Естестве... Oct 13 2012, 18:54 AHTOXA Цитата(Chudik @ Oct 14 2012, 00:54) А поч... Oct 15 2012, 03:26 Chudik AHTOXA
получил сообщение в IAR
КодError[Pe020... Oct 17 2012, 23:45 AHTOXA Я в IAR-е не копенгаген Oct 18 2012, 03:30 Сергей Борщ QUOTE (Chudik @ Oct 18 2012, 02:45) ident... Oct 18 2012, 05:54 Chudik Посмотрел опции компиляции. Там стоял автоматическ... Oct 18 2012, 18:40 AHTOXA А в файле M3_Terminal.h есть строчка
Код#include ... Oct 18 2012, 18:52 Chudik Конечно:
Код#ifndef M3_TERMINAL_H
#define M3_TERMI... Oct 18 2012, 19:36 AHTOXA Хм. Странно.
1. Возможно где-то ещё есть объявлени... Oct 18 2012, 19:49  Chudik Разобрался, мой косяк был - кросс ссылки на файлы ... Oct 18 2012, 21:00  _Артём_ Цитата(AHTOXA @ Oct 18 2012, 22:49) в ИАР... Oct 18 2012, 21:20 AHTOXA Цитата(Chudik @ Oct 19 2012, 03:00) в соо... Oct 19 2012, 04:54 Chudik Цитата(AHTOXA @ Oct 18 2012, 21:54) Ну и ... Oct 19 2012, 20:22  _Артём_ Цитата(Chudik @ Oct 19 2012, 23:22) Угу, ... Oct 19 2012, 23:00 Chudik Ничего не понимаю
КодError[Pe020]: ide... Oct 26 2012, 22:32 AHTOXA Это же GCC-шные названия файлов и регистров у меня... Oct 26 2012, 23:21 Chudik Логично, конечно.
Сейчас посмотрю. Мне казалось, ч... Oct 26 2012, 23:57 Chudik Регистры переназначил. Функцию rw для SPI подправи... Oct 27 2012, 03:18 AHTOXA 1. spi_base_t - это не шаблонный класс, не надо к ... Oct 27 2012, 05:43 Chudik Ага, спасибо, поменял. Полегчало.
Соотвественно, ... Oct 27 2012, 05:53       AHTOXA Сложно сказать. Листинг практически идентичен моем... Jan 22 2013, 08:20        dezna Цитата(AHTOXA @ Jan 22 2013, 12:20) Сложн... Jan 22 2013, 10:11         AHTOXA Цитата(dezna @ Jan 22 2013, 16:11) но не ... Jan 22 2013, 10:57          dezna Цитата(AHTOXA @ Jan 22 2013, 14:57) Я доб... Jan 22 2013, 11:14          IgorKossak Цитата(AHTOXA @ Jan 22 2013, 12:57) Я пои... Jan 22 2013, 11:49           demiurg_spb Цитата(IgorKossak @ Jan 22 2013, 15:49) Н... Jan 22 2013, 12:58            IgorKossak Цитата(demiurg_spb @ Jan 22 2013, 14:58) ... Jan 22 2013, 13:26           AHTOXA Цитата(IgorKossak @ Jan 22 2013, 17:49) Н... Jan 22 2013, 14:04 IgorKossak Для сборки под Cortex-Mx пользуюсь тулчейном от Li... Jan 22 2013, 08:32 mdmitry Цитата(IgorKossak @ Jan 22 2013, 11:32) Д... Jan 22 2013, 10:24 dezna Цитата(IgorKossak @ Jan 22 2013, 12:32) Д... Jan 22 2013, 10:28
2 страниц
1 2 >
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0
|
|
|