Официальный форум СВД Встраиваемые Системы
06 Февраля, 2012, 12:07:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Установка QNX6.4 и отладка на ARM контроллере  (Прочитано 1781 раз)
Владимир Махилёв
Сотрудник СВД ВС
Опытный пользователь

Сообщений: 480



WWW
« Ответ #15 : 22 Июля, 2010, 10:50:01 »

Обратите внимание на частоты, задаваемые в startup'e: cpu_freq, cycles_freq, timer_freq. Если их значения не высчитываются автоматически, исходя из реального значения частоты, то можно задать их вручную через параметр startup'а:
-f [cpu_freq][,[cycles_freq][,timer_freq]]
Записан

LH
Опытный пользователь

Сообщений: 100


« Ответ #16 : 27 Июля, 2010, 18:04:55 »

В BSP-ATMEL-AT91SAM9260-EK при запуске startup ключ -f c аргументами анализируется вызовом
Код:
...
case 'f':
/* cpu frequency, clock cycles frequency, timer chip frequency */
get_freq(&cpu_freq);
get_freq(&cycles_freq);
get_freq(&timer_freq);
break;

но только далее переменные cpu_freq, cycles_freq, timer_freq никак не используются, т.о. ключ -f бездействет. ( исправляется в init_qtime_at91sam9xx.c )

Так же опечаткой выглядит разбор аргумента
Код:
...
switch(*end) {
case 'm': case 'M':
freq *= 1000;
/* fall through */
case 'k': case 'K':
freq *= 1000;
/* fall through */

где с суффиксом m(M) умножение вроде должно идти на 1000000. (common_options.c)

Но действительно изменение cycles_freq, timer_freq ускоряет/замедляет ход времени...

Странно что c BSP-ATMEL-AT91SAM9260-EK на фирменной плате отставание времени составляет примерно 2 секунды за минуту.
Как это можно объяснить (для ОС реального времени) ?

Еще хотелось бы понять: на что влияет установка значения cpu->speed=100 мГц в  startup? Почему это значение в 2 раза отличается от задаваемого -c50000000 ( input clock rate ) при запуске драйвера последовательного порта devc-serusart? Стоит ли установить cpu->speed в 0, чтобы вызвать arm_cpuspeed() ?

« Последнее редактирование: 28 Июля, 2010, 05:03:09 от LH » Записан
Владимир Махилёв
Сотрудник СВД ВС
Опытный пользователь

Сообщений: 480



WWW
« Ответ #17 : 28 Июля, 2010, 18:24:17 »

но только далее переменные cpu_freq, cycles_freq, timer_freq никак не используются, т.о. ключ -f бездействет. ( исправляется в init_qtime_at91sam9xx.c )

Эти переменные используются в QNX для задания соответственно CPU clock frequency, frequency at which the value returned by ClockCycles(), frequency at which the timer chip input runs.
Это платформонезависимые переменные, описание подойдёт и от startup-bios.


Наиболее вероятно, что отставание времени говорит о неправильно заданных частотах, хотя не исключена и аппаратная составляющая.  Если для AT91SAM9260-EK нет механизма для автоматического вычисления частоты (или он некорректно работает) то думаю, что имеет смысл "подкрутить" эти частоты исходя из спецификации на оборудование. Так-же имеет смысл изучить (если существуют) документы с описанием ошибок в оборудовании и/или тематические форумы. Возможно, с такой проблемой уже сталкивались люди, работавшие с AT91SAM9260-EK.

Записан

Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2011 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.16 | SMF © 2006-2009, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС