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

	driver 
		pex429LNX.c - исходный файл драйвера, требует компиляции для 
			конкретной версии ОС
		pex429LNX.h - содержит коды функций драйвера
		pex429LNXmacro.h - содержит библиотеку макросов
		Makefile - файл для компиляции драйвера
		pci429LNXguide.doc - описание драйвера  модуля PCI429-3 для LINUX, которое может быть
				использовано для работы с драйвером модуля PEX429-1, за 
				исключением функции открытия. Для модуля PEX429-1 имя устройства имеет вид 
				pex429_X .

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

	lib 
		lib_pex429.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  ./pex429LNX.ko 

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


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

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

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



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

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


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


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

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

	gcc testpex429.c -o testpex429 -L. -l_pex429 -Wl,-rpath,/home/PEX429-1
	./testpex429

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

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

	gcc -static testpex429.c -L. -l_pex429 -o testpex429
	./testpex429

