

	------------------------------------------------------------------------------------------------
	    Состав комплекта программного обеспечения для Linux (ядро 4.2.)
		модуля последовательных каналов CPCI429-1-X
	------------------------------------------------------------------------------------------------

	driver 
		cpci429-1.c - исходный файл драйвера, требует компиляции для 
			конкретной версии ОС
		cpci429-1.h - содержит коды функций драйвера
		cpci429-1macro.h - содержит библиотеку макросов
		Makefile - файл для компиляции драйвера
		tms.h - заголовочный файл
		cpci429_1_LNXguide.doc - описание драйвера.

				
	test

		tpscpci429-1.c  - тест модуля (исходный файл) 
		tpsPCI429_4guide.doc - описание теста модуля.

	lib 
		файлы библиотеки функций:
		lib_cpci429_1_LNX.c - исходный,
		lib_cpci429_1_LNX.a - статическая библиотека,
		lib_cpci429_1_LNX.so - разделяемая библиотека,




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

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

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

	
.	2. проверить, существует ли папка

		/lib/modules/4.2.0-23-generic/build

	 если папка не существует, установить средствами операционной системы пакеты
	linux-headers-3.19.0-61-generic  и  build-essential

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

	make -C /lib/modules/4.2.0-23-generic/build M=$PWD modules




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

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


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

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

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



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

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


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




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

	1.
	gcc -c -fPIC  lib_cpci429_1_LNX.c
	gcc -shared -fPIC -o lib_cpci429_1_LNX.so lib_cpci429_1_LNX.o

	gcc testDLLcpci429-1.c -o testDLLcpci429-1 -L. -l_cpci429_1_LNX -Wl,-rpath,/home/CPCI429/ver42
	./testDLLcpci429-1

	2,

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

	gcc -static testDLLcpci429-1.c -L. -l_cpci429_1_LNX -o testDLLcpci429-1
	./testDLLcpci429-1


