Appendix b, Digital input/output control – Lanner LEC-7105 User Manual

Page 30

Advertising
background image

30

Digital Input/Output Control

Appendix B

Embedded and Industrial Computing

Appendix B:

Digital Input/Output

Control on the GPIO port

The Digital I/O port (DIO) is designed to provide the input

and output operations for the system. For sample DIO

code, see DIO folder under Driver and Utility on the Driver

and Manual CD.

Executing the commands through the Command Line:
# dio_tst
The program will drive output pin with specific value and

read status of input pin. If you have external loopback

which connects input to output pins directly, the input

value should be identical with the output value.

Note:

For DOS environment, use DJGPP as compiler

1.

and the makefile: Makefile.dos.

For Linux, support kernel versions are 2.4.x and

2.

2.6.x. Use the makefile:Makefile.linux.

For FreeBSD, support version is FreeBSD 8.0.

3.

use the makefile: Makefile.

Build

To build program source code on Linux platform, use the

following steps as a guideline:

Copy the proper makefile from the Driver and Manual

1.

CD to your system
Set the access mode with these two parameters

2.

by editing the Makefile.linux directly: DIRECT_IO_

ACCESS= [0|1] (enter either 1 or 0) and LANNER_

DRIVER= [0|1] (enter either 1 or 0). 1 is for direct access

and no driver is needed. You will only need to execute

the program directly. However, when it equaled to 0,

driver installation is needed. Refer to the following

Install section for more details.
Type make to build source code:

3.
make Makefile (Note: omit the file extensions)
After compiled, the executable program (bpwd_tst) and

the driver (bpwd_drv.ko) will be in the bin subdirecto

Install

The installation procedures depend on the access mode

that you have set by using the above mentioned method.
If you have set DIRECT_IO_ACCESS=1, driver installation is

not necessary. Proceed to the next section on executing
If you have set DIRECT_IO_ACCESS=0, Lanner bypass

driver needs to be installed. Install the driver and create

a node in the /dev directory as shown in the following

example:
For Linux:

Insert module and create node in /dev as below

example:

#insmod dio_drv.[k]o

#mknod /dev/dio_drv c 240 0

For FreeBSD:

Insert module as below example:

#kldload -v ./dio_drv.ko

I/O Address

DIO Address LDN8

Address

Description

0x2e

SUPERIO_INDEX

0x2f

SUPERIO_DATA

0x07

BANK_REG

0xE6 (Bit 3)

GPO63

0: Low 1: High

0xE6 (Bit 2)

GPO62

0: Low 1: High

0xE6 (Bit 1)

GPO61

0: Low 1: High

0xE6 (Bit 0)

GPO60

0: Low 1: High

DIO Address LDN9

Address

Description

0x2e

SUPERIO_INDEX

0x2f

SUPERIO_DATA

0x07

BANK_REG

0xE6 (Bit 3)

GPI24

0: Low 1: High

0xE6 (Bit 2)

GPI25

0: Low 1: High

0xE6 (Bit 1)

GPI26

0: Low 1: High

0xE6 (Bit 0)

GPI27

0: Low 1:High

Advertising