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

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