|
scmRTOS холостой ход и системный таймер |
|
|
|
Jul 4 2011, 11:56
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
"Продолжаем разговор" как говорил Карлсон. Запустил ОСь на mega128a в WinAvr (в скрепке проект - сделан на базе http://real.kiev.ua/scmrtos/1-eventflag/)В железе холостой ход явно просматривается, а прерываний системного таймера нет. Все, что зависит от него (это proc1, proc2 ..) естественнго не работает. Поскольку нет отладчика то понять в чем дело сложно. В IAR (v5501) ОСь не работает совсем (проект приложен в скрепке). В проекте сделана визуализация холостого хода и переполнения системного таймера (чего уж может быть проще). Поскольку в железе не видать не только системного таймера, но и холостого хода то получается, что зацикливание происходит в OS::Run(); Подсобите please разобраться ... Спасибо.
Сообщение отредактировал Acvarif - Jul 4 2011, 12:25
|
|
|
|
|
 |
Ответов
|
Jul 9 2011, 11:08
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(ReAl @ Jul 9 2011, 12:45)  1. А почему нет? Даже не-константы можно, только во избежание гонок защищаться от записи во время других операций (других записей или других чтений). Понял. Спасибо. Наверное имеется ввиду Мутекс? Цитата 2. Если функция реентрабельна. Не все функции стандартной библиотеки реентрабелны, например, strtok() нельзя звать из двух процессов вперемешку. Спасибо. Пытаюсь до конца понять такую штуку: Если один процесс совершает омен по USATR0 и полученные данные помещает в глобальный массив типа A[25], то может ли другой процесс достать эти данные из этого же массива, выполнить с ними действия и дальше передать по USART1? Конечно имеется ввиду, что будет обеспечена блокировка совместного доступа через Мутекс. Если да, то получается, что к глобалам (в том числе и к глобальным функциям если они реентрабельны) в принципе имеют доступ все процессы? Тогда встает вопрос, зачем организовывать возможность передачи данных между процессами (например черех message) если все можно крутить через глобальные буфера? Например (могу шибаться) в QNX глобалы из процессов не доступны вообще.
Сообщение отредактировал Acvarif - Jul 9 2011, 11:10
|
|
|
|
|
Jul 9 2011, 11:57
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Конечно может. Цитата(Acvarif @ Jul 9 2011, 14:08)  Например (могу шибаться) в QNX глобалы из процессов не доступны вообще. Ну так (глобальный) объект message и является таким буфером. Только с дополнительным сервисом, чобы закат солнца вручную не организовывать. Цитата(Acvarif @ Jul 9 2011, 14:08)  Например (могу шибаться) в QNX глобалы из процессов не доступны вообще. Интересно, как они могут на уровне ОС запретить то, что компилятор разрешает :-) Другое дело, что они могут «не рекомендовать» такое использование. но сделать невозможным -- никак.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Jul 11 2011, 17:25
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(ReAl @ Jul 9 2011, 14:57)  Интересно, как они могут на уровне ОС запретить то, что компилятор разрешает :-) Другое дело, что они могут «не рекомендовать» такое использование. но сделать невозможным -- никак. Тоже так думал. Но оказывается так таки оно и есть. Потому, как в Linux (в том числе и Windows) и т. п. процессы это разные приложения у каждого из которых своя область видимости. Это по сути разные программы, типа PCAD и Word. В sсmRTOS процессы это потоки запущенные из одного места (не понимаю почему их назвали процессами). А у потоков область видимости на глобалы одна и та же. Поэтому все процессы (потоки) имеют достум ко всему, что объявлено перед main. Если что не так поправьте меня. Ну да ладно... это все не главное. Главное, что потоки работают неплохо. 1. Один из них по прерываниям T1 передает в PC данные по USART1 2. Другой, асинхронно с первым, проспав нужне количество тиков T0 (0.5 sec) формирует запрос по Modbus (Usart0). 3. Третий по прерываниям принимает и обрабатывает данные от Modbus (формирует массив для передачи в первый процесс). Первый данные должен будет передать в PC. Вот только пока не уяснил как лучше передать даные из 3 в 1 - через глобальный буфер или методом типа meccage? Как лучше?
Сообщение отредактировал Acvarif - Jul 11 2011, 17:26
|
|
|
|
Сообщений в этой теме
Acvarif scmRTOS холостой ход и системный таймер Jul 4 2011, 11:56 Acvarif ОСь таки запустилась. Проблема была таки в компиля... Jul 6 2011, 08:29 Сергей Борщ QUOTE (Acvarif @ Jul 6 2011, 11:29) Так д... Jul 6 2011, 08:50  Acvarif Спасибо. Стало немного светлее.
Цитата(Сергей Б... Jul 6 2011, 10:35   MrYuran Цитата(Acvarif @ Jul 6 2011, 14:35) Кто и... Jul 6 2011, 10:40    Acvarif Цитата(MrYuran @ Jul 6 2011, 13:40) Перек... Jul 6 2011, 10:57   Сергей Борщ QUOTE (Acvarif @ Jul 6 2011, 13:35) Получ... Jul 6 2011, 11:47    Acvarif Цитата(Сергей Борщ @ Jul 6 2011, 14:47) Т... Jul 6 2011, 13:10    ReAl Цитата(Сергей Борщ @ Jul 6 2011, 14:47) В... Jul 6 2011, 20:49     Acvarif Спасибо.
Значит в примере от IAR 310 пропущено т... Jul 7 2011, 07:37      ReAl Цитата(Acvarif @ Jul 7 2011, 10:37) Значи... Jul 7 2011, 08:49       Acvarif ЦитатаВ случае "0" переключение производ... Jul 7 2011, 11:00        Acvarif Всем спасибо.
Появилось кое-какое понимание.
Пыт... Jul 7 2011, 14:00 ReAl 1. Подключение файлов к проекту смотрят не в доке ... Jul 7 2011, 20:07 Acvarif Да, понял. Спасибо.
С IAR плотно работал несколько... Jul 8 2011, 07:12 Acvarif Пролем с IAR AVR OCью (310) пока нет.
По ходу воз... Jul 9 2011, 09:01    dxp Цитата(Acvarif @ Jul 12 2011, 00:25) В sс... Jul 12 2011, 10:23     Acvarif Цитата(dxp @ Jul 12 2011, 13:23) А почему... Jul 12 2011, 13:46      MrYuran Цитата(Acvarif @ Jul 12 2011, 17:46) Дума... Jul 12 2011, 13:56 Acvarif Имеется три процесса.
1. Первый передача запросов ... Jul 13 2011, 10:35 AHTOXA В прерывании Usart0_rxc_ISR() надо вычитывать UDR0... Jul 13 2011, 12:15  Acvarif Цитата(AHTOXA @ Jul 13 2011, 15:15) В пре... Jul 13 2011, 13:00   Сергей Борщ QUOTE (Acvarif @ Jul 13 2011, 16:00) Проц... Jul 13 2011, 13:42    Acvarif Цитата(Сергей Борщ @ Jul 13 2011, 16:42) ... Jul 13 2011, 17:43 dxp Цитата(Acvarif @ Jul 12 2011, 20:46) Дума... Jul 14 2011, 03:34 Acvarif Цитата(dxp @ Jul 14 2011, 06:34) Вы имеет... Jul 14 2011, 06:55
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|