Официальный форум СВД Встраиваемые Системы
10 Декабря, 2016, 07:58:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

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

Сообщений: 254


« : 28 Января, 2010, 18:41:17 »

Имеется контроллер на базе AtmelAt91sam9263.
Среда разработки - на Windows-ПК. Cвязь между контроллером и ПК возможна  через JTAG и по RS-232.

Можно ли со стороны QNX6.4 и со стороны Windows сэмулировать Ethernet на RS-232, чтобы использовать
возможности загрузки и пошаговой отладки программ из IDE4.6  с помощью qconn?

Если нет, какие другие способы отладки программ возможны в такой ситуации?

Спасибо.
Записан
Владимир Махилёв
Сотрудник СВД ВС
Ветеран

Сообщений: 659



WWW
« Ответ #1 : 29 Января, 2010, 14:34:00 »

Здравствуйте!

Для отладки через COM порт можно использовать программу pdebug. Необходимо запустить pdebug со стороны целевой системы
Код:
# pdebug /dev/ser1,115200 &
а в Windows QNX IDE в перспективе Debug при создании новой конфигурации для отладки выбрать C/C++ QNX Pdebug (Serial).


Второй вариант сложнее:
Можно организовать сеть через последовательном порт с помощью драйвера devn-fd.so и для отладки использовать qconn, работающий через TCP/IP. Но для этого потребуется дополнительная машина-шлюз с QNX 6.

В качестве второй машины c QNX можно использовать
  • отдельный компьютер с COM портом, соединённый с Windows системой по сети
  • виртуальную машину c QNX
Вторая машина с QNX будет выступать в роли шлюза для доступа к целевой системе через последовательный порт
(или может быть сама использована в качестве машины для разработки если будет использоваться версия QNX 6.3.2 в состав которой еще входила IDE.)

В случае использования виртуальной машины, между host системой (Windows) и гостевым QNX необходимо установить связь по TCP/IP. Так-же необходимо настроить доступ к COM порту из виртуальной машины.

Для организации сети со стороны второй машины можно использовать, например следующий скрипт:
(в моём случае это виртуальная машина VMware с QNX 6.4.1)
Код:
#!/bin/sh
set -x

slay -f io-pkt io-pkt-v4 io-pkt-v4-hc

stty +raw -ihflow -ohflow baud=115200 < /dev/ser1

io-pkt-v4 -d pcnet -d fd fd=/dev/ser1,mac=00AA11223344,ahdlc -p tcpip forward -p qnet
#mount -T io-pkt -o fd=/dev/ser1,mac=00AA11223344,ahdlc devn-fd.so

netmanager
ifconfig en1 192.168.3.1
inetd
Особо хочу отметить, что нужно в опциях tcpip задать передачу (forwarding) пакетов между интерфейсами.

Для запуска драйвера со стороны целевой системы можно использовать, например такой простой скрипт:
Код:
#!/bin/sh
set -x

stty +raw baud=115200 < /dev/ser1

io-pkt-v4-hc -d fd fd=/dev/ser1,mac=0023456789AB,ahdlc -p qnet
ifconfig en0 192.168.3.2

Со стороны первой машины (с Windows) необходимо настроить маршрутизацию пакетов к целевой системе через QNX-шлюз.
Например, в моем случае целевая система находится в подсети 192.168.3. Для Linux команда добавления маршрута выглядит следующим образом:
Код:
route add -net 192.168.3.0/24 gw 192.168.1.56

Для Windows
Код:
route add 192.168.3.0 mask 255.255.255.0 192.168.1.56
или только для нужного узла
Код:
route add 192.168.3.2 192.168.1.56

Записан

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

Сообщений: 254


« Ответ #2 : 29 Января, 2010, 17:22:37 »

Большое спасибо за подробные разъяснения.

На одном из вариантов контроллера с AtmelAt91sam9260 имеется только 2мБ flash и 2 мБ ОЗУ.

Правильно ли я понимаю, что в такой объем памяти не удасться запиcать/загрузить образ QNX6.4 со стеком TCP/IP?

Спасибо.


Спасибо.
Записан
Владимир Махилёв
Сотрудник СВД ВС
Ветеран

Сообщений: 659



WWW
« Ответ #3 : 30 Января, 2010, 13:31:33 »

Стоит проверить на практике, но предварительный ответ - нет.
В 2 Мб флэш-памяти можно записать образ QNX с io-pkt-v4 даже в несжатом виде, но для драйверов, библиотек, пользовательских программ места останется крайне мало и рабочая конфигурация вряд ли получится.
Если образ будет сжат, то тогда 2 Мб флэш-памяти вполне хватит, но в этом случае будет недостаточно 2 Мб ОЗУ - образу не хватит места, чтобы развернутся.

Если возможности к расширению объема оперативной памяти платы уже нет, но требуется QNX с TCP/IP то имеет смысл попробовать версию 6.3.2. Размер ядра и остальных библиотек будет чуть меньше, что позволит сэкономить критичные в данном случае пару сотен килобайт.
Записан

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

Сообщений: 254


« Ответ #4 : 14 Февраля, 2010, 09:00:12 »

С помощью BSP для к-либо ARM , импортированного в IDE, собирается образ файловой системы BSP-ATMEL-at91sam9263ek.ifs и и бинарный файл слияния загрузчика и образа
ipl-BSP-ATMEL-at91sam9263ek.bin

Как запустить на исполнение эти файлы в эмуляторе qemu-system-arm ?

Имеется ли загрузчик для ARM, аналогичный ipl-diskpc2 для x86?

Нашел подсказу:

Цитировать
Modify your '.build' file to generate an ELF image rather than a 'raw' or 'binary' image.
load the resulting image using QEMU like below

qemu-system-arm -M <machine_name> -m <memory size in MB> -kernel <mkifs'ed image> -serial stdio -nographic -net user


В IDE изменил формат образа, получил elf-образ, запустил в qemu-system-arm.exe для Windows.

В итоге имею "черный экран" окошка qemu.
Ctrl-ALT-1 - никакой реакции
Ctrl-ALT-2 - перехожу в командный режим (qemu)
Ctrl-ALT-3 -serial0 console
Ctrl-ALT-4 -parallel0 console

Как продвинуться дальше?

Спасибо.
« Последнее редактирование: 15 Февраля, 2010, 04:29:34 от LH » Записан
Олег Большаков
Администратор
Житель форума

Сообщений: 2934



WWW
« Ответ #5 : 15 Февраля, 2010, 16:26:03 »

BSP разрабатывается под конкретную плату. Если Вы хотите отлаживать BSP в эмуляторе, Вам следует убедиться, что эмулятор может эмулировать не только ядро ARM, но и всю периферию, а также карта памяти соответствует реальному оборудованию.

Вполне может быть, что разработчик платы имеет эмулятор. В таком случае, стоит обратиться к разработчику.
Записан

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

Сообщений: 254


« Ответ #6 : 15 Февраля, 2010, 19:55:11 »

Какой из имеющихся BSP Вы бы посоветовали пробовать?

Вот список эмулируемых ARM-машин в qemu-system-arm 0.9.0 :

Supported machines are:
integratorcp926 ARM Integrator/CP (ARM926EJ-S) (default)
integratorcp1026 ARM Integrator/CP (ARM1026EJ-S)
versatilepb ARM Versatile/PB (ARM926EJ-S)
versatileab ARM Versatile/AB (ARM926EJ-S)
realview   ARM RealView Emulation Baseboard (ARM926EJ-S)


На http://community.qnx.com/sf/wiki/do/viewPage/projects.qemu/wiki/NeutrinoAsGuestInQEMU есть такой абзац:

Цитировать
Non-x86 targets
The startup for non-x86 targets is a little different. They can't boot directly from disk images, and require a kernel image passed as an argument. This section will be updated as soon as I know how to make them work.


Я хотел увидеть хотя бы начало загрузки QNX на ARM-эмуляторе, хотя бы первую фразу - приветствие.

Пробовал отключить загрузку всех драйверов при сборке образа, пробовал в функции main() startup-а сразу завершить работу без к-либо инициализации.

Безрезультатно. Sad
« Последнее редактирование: 15 Февраля, 2010, 20:05:32 от LH » Записан
Александр Варварик
Администратор
Старожил

Сообщений: 1354



WWW
« Ответ #7 : 15 Февраля, 2010, 21:57:50 »

надо выбрать тот BSP, конфигурацию которого вы повторили в qemu.

Несколько непонятная конечная задача, которая решается.
Записан

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

Сообщений: 254


« Ответ #8 : 16 Февраля, 2010, 04:26:46 »

Разглядывая список BSP на http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/BSPAndDrivers
вижу , что все BSP Atmel AT91SAM926* работают на эмулируемом по умолчанию в Qemu процессоре
ARM926EJ-S.

Рассматриваю попытку  - как упражнение, чтобы в отсутствии аппаратуры хоть как-то разобраться с BSP.

Можно конечно предполагаемый проект частично отлаживать вртуальной машине Vmware ( компилируя для x86 ), интересен
другой вариант : попробовать сделать отладочное место для arm-компиляции на одном Windows рабочем месте.


 
Записан
Александр Варварик
Администратор
Старожил

Сообщений: 1354



WWW
« Ответ #9 : 16 Февраля, 2010, 09:33:30 »

эмуляция процессора отличается от эмуляции процессорной платы. Например, для x86 есть эмуляция VGA, наверняка эмулируется bios и т.д.

Скорее вам подойдет не qemu, а эмулятор платы, о котором вам говорили.
Записан

Михаил Колесов
Опытный пользователь

Сообщений: 125



« Ответ #10 : 16 Февраля, 2010, 11:04:23 »

Проще стартап кит купить и тренироваться. Благо сейчас есть не дорогие (для фирмы). То, что Qemu поддерживает одну из ARM платформ, это только начало Smiley. Эта платформа покупается конкретным производителем процессоров и затачивается так как ему (производителю) считается верным. Поэтому и BSP пишется под вполне конкретную реализацию (а не общую спецификацию) процессора ARM. Как заметил Олег, могут банально карты адресов устройств установленных в BSP не совпадать c картой адресов устройств эмулятора Qemu и поэтому не работать. Прерывания могут быть по разному распределены.
Проще говоря для Qemu нужен адаптированный BSP Smiley
« Последнее редактирование: 16 Февраля, 2010, 11:11:25 от Михаил Колесов » Записан
LH
Опытный пользователь

Сообщений: 254


« Ответ #11 : 26 Февраля, 2010, 17:30:44 »

Цитировать
Проще стартап кит купить и тренироваться. Благо сейчас есть не дорогие (для фирмы). То, что Qemu поддерживает одну из ARM платформ, это только начало


Пож. посоветуйте: у кого можно приобрести "старт ап", точнее плату AT91SAM9263-EK?

Спасибо.
Записан
Михаил Колесов
Опытный пользователь

Сообщений: 125



« Ответ #12 : 27 Февраля, 2010, 10:51:08 »

Попробуйте поискать в Терраэлектроннике (Москва) http://www.terraelectronica.ru/ и Мегачипе (Санкт-Петербург) http://megachip.ru/
Записан
Александр Варварик
Администратор
Старожил

Сообщений: 1354



WWW
« Ответ #13 : 27 Февраля, 2010, 11:08:16 »

Если требуется поставка вместе с QNX Momentics, то можем мы поискать и поставить
Записан

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

Сообщений: 254


« Ответ #14 : 22 Июля, 2010, 03:23:09 »

BSP для AT91SAM9260 и AT91SAM9263 рассчитан на тактовую частоту процессора 50 мГц.
Если поднять частоту до 70 мГц - время в QNX начинает идти "быстрее".

Пожалуйста подскажите: на какое место в startup нужно обратить внимание для правильного хода времени?

P.S.
пробовали изменить

#define AT91SAM_CLOCK_FREQ 3125000UL
#define AT91SAM_CLOCK_RATE 320000000UL

в init_qtime_at91sam9xx.c, но это не помогло.
« Последнее редактирование: 22 Июля, 2010, 03:36:06 от LH » Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  

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

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

В последний раз google посещал эту страницу 26 Ноября, 2016, 02:40:35