
		------------------------------------------------------------------------------------------------
	    Состав комплекта программного обеспечения для Linux  (ядро 4.15.)
		адаптера радиальный каналов ARINC429
			 	PCI429-3 
	------------------------------------------------------------------------------------------------

	driver 
		pci429LNX.c - исходный файл драйвера, требует компиляции для 
			конкретной версии ОС
		pci429LNX.h - содержит коды функций драйвера (ядро 4.15.)
		pci429LNXmacro.h - содержит библиотеку макросов
		Makefile - файл для компиляции драйвера
		pci429LNXguide.doc - описание драйвера  PCI429-3 для LINUX.

	examples - примеры программирования
		sngladdrPCI3.c -	выходной канал однократно выдает массив из 256 параметров;
				входной канал принимает данные в адресном режиме;
				прерывания не используются.
		cycleFileIntrPCI3.c -	выходной канал циклически выдает массив из 256 параметров;
				входной канал принимает данные в файловом режиме;
				в процессе выдачи происходит изменение одного из 
				выходных параметров;
				регистрируются прерывания по концу выдачи массива.
		globFileIntrDsPCI3.c -	для 2-х выходных каналов задан режим глобальной 
				выдачи;
				один из этих каналов циклически выдает массив из 8 
				параметров с периодом выдачи 128*Т;
				входной канал принимает данные в файловом режиме;
				в процессе выдачи происходит изменение одного из 
				выходных параметров;
				регистрируются прерывания по концу выдачи массива и от
				разовой команды;
		miniPCI3.c -	пример программирования на основе программной модели.
				
	test
		TVK_pci429LNX -    тест может работать непрерывно или с остановом по ошибке,
				с заглушкой или в режиме "Тест" адаптера, когда входные 
				линии подключены к выходным;
				режимы: 
				     входные каналы-прием по счетчику слов, без прерываний;
				     выходные каналы - циклический режим, с прерыванием по 
				концу выдачи массива первым каналом;
				     разовые команды - разрешено прерывание по логической 
				"1".

	lib 
		lib_pci429.c 	библиотека функций. 




	-----------------------------------------------------------
			Компиляция драйвера
	-----------------------------------------------------------

		Драйвер должен быть скомпилирован для конкретной версии ОС,
	для чего следует:

	1. определить текущую версию ядра
		
		uname -r
	  
	  например, это 	4.2.0-23-generic

	2. проверить, установлены ли  пакеты linux-headers-4.2.0-23-generic  и  build-essential; в случае необходимости 
установить их средствами операционной системы

    3. в папке, содержащей исходный файл драйвера (и Makefile) выполнить команду

	make -C /lib/modules/$(uname -r)/build M=$PWD modules




	-----------------------------------------------------------
		Установка/удаление драйвера в системе
	-----------------------------------------------------------
		
	Для установки драйвера следует задать команду (с правами root)
	
		 insmod  ./pci429LNX.ko 

	В процессе выполнения команды создаются файлы устройств для всех модулей PCI429-3,
	установленных в системе, и выдается системное сообщение вида
	
	_____$ dmesg
	.....
	[ 8281.027416] pci429LNX:  initialization
	[ 8281.027420]            /dev/pci429_0  serial# 3170
	[ 8281.027455]            /dev/pci429_1  serial# 12514


	В случае, если модули отсутствуют, сообщение имеет вид

	_____$ dmesg
	.....
	[ 8550.502400] pci429LNX:  Sorry, devices were not found
	[ 8550.502400]   initialization failed
		
	Для удаления драйвера следует задать команду (с правами root)
	
		 rmmod  pci429LNX.ko  
	
	В процессе выполнения команды удаляются все файлы устройств и выдается системное
	сообщение

	_____$ dmesg
	.....
	[ 9058.127294] pci429LNX:  cleanup



	-----------------------------------------------------------
		диагностические сообщения при работе с драйвером
	-----------------------------------------------------------

	при успешном открытии устройства
	
	open: pci429_0  serial# 12345


	при закрытии устройства
	
	release: pci429_0  serial# 12345

    
    
    	-----------------------------------------------------------
		Компиляция библиотек на примере программы
		testpci429.c (в комплект ПО не входит)
	-----------------------------------------------------------

	1. динамическая
	gcc -c -fPIC  lib_pci429.c
	gcc -shared -fPIC -o lib_pci429.so lib_pci429.o

	gcc testpci429.c -o testpci429 -L. -l_pci429 -Wl,-rpath,/home/PCI429-3
	./testpci429

	2, статическая

	gcc -c lib_pci429.c -o lib_pci429.o
	ar rcs lib_pci429.a lib_pci429.o

	gcc -static testpci429.c -L. -l_pci429 -o testpci429
	./testpci429

