Home
TPMC861-SW-42
Contents
1. include tpmc861 h int fd int retval Clear break on Tx line s Wi retval ioctl fd FIO_EXAR16XXX_CLEARBREAK 0 if retval ERROR function succeeded else handle the error TPMC861 SW 42 VxWorks Device Driver Page 37 of 42 TENSE TECHNOLOGIES 5 5 7 FIO_EXAR16XXX_CHECKBREAK This I O control function returns if a break event on the receive line has been detected since the last call of the function The function specific control parameter arg passes a pointer int where the return value will be stored A return value TRUE indicates that a break event has been detected the value FALSE indicates that no break event has been detected EXAMPLE include tpmc861 h int fd int retval int breakDetect Check break retval ioctl fd FIO_EXAR16XXX_CHECKBREAK amp breakDetect if retval ERROR function succeeded if breakDetect A break has been detected else handle the error TPMC861 SW 42 VxWorks Device Driver Page 38 of 42 TENSE TECHNOLOGIES 5 5 8 FIO_EXAR16XXX_CHECKERRORS This I O control function returns the error state of the device The function specific control parameter arg points to a buffer unsigned int the status will be returned The returned status is an OR ed value of the following flags Value Description EXAR16XXX_FRAMING_ERR This bit is set if a fra
2. TENSES The Embedded I O Company TECHNOLOGIES TPMC861 SW 42 VxWorks Device Driver 4 Channel Isolated Serial Interface RS422 RS485 Version 3 0 x User Manual Issue 3 0 0 August 2010 TEWS TECHNOLOGIES GmbH Am Bahnhof 7 25469 Halstenbek Germany Phone 49 0 4101 40580 Fax 49 0 4101 4058 19 e mail info tews com www tews com TPMC861 SW 42 VxWorks Device Driver 4 Chan Isolated Serial Interface RS422 RS485 Supported Modules TEWS amp TECHNOLOGIES This document contains information which is proprietary to TEWS TECHNOLOGIES GmbH Any reproduction without written permission is forbidden TEWS TECHNOLOGIES GmbH has made any effort to ensure that this manual is accurate and TPM 1 wee complete However TEWS TECHNOLOGIES GmbH reserves the right to change the product described in this document at any time without notice TEWS TECHNOLOGIES GmbH is not liable for any damage arising out of the application or use of the device described herein 2001 2010 by TEWS TECHNOLOGIES GmbH Issue Description Date 1 0 First Issue July 7 2001 1 1 Overrun Error added February 18 2001 1 2 Mark Space Parity added June 26 2003 2 0 0 New File List tpmc861Drv and tomc861DevCreate have changed August 14 2006 Description of tomc861Pcilnit added Advanced description of the ioctl function codes 2 0 1 New Address TEWS LLC October 10 2006 2 0 2 Description of BSP dependencies February 12 2007 2 1 0 Description of
3. setting structure EXAR16XXX_FIFO_STRUCT typedef struct int rxFifoTrigger int txFifo Trigger EXAR16XXX_FIFO_STRUCT rxFifoTrigger Specifies the receive FIFO trigger level Allowed values are 1 127 FIFOs enabled value specifies receive FIFO trigger level EXAR16XXX_F_NO FIFOs disabled only valid if transmit FIFO will also be disabled txFifoTrigger Specifies the transmit FIFO trigger level Allowed values are 1 127 FIFOs enabled value specifies transmit FIFO trigger level EXAR16XXX_F_NO FIFOs disabled only valid if receive FIFO will also be disabled TPMC861 SW 42 VxWorks Device Driver Page 41 of 42 TEWS amp TECHNOLOGIES EXAMPLE include tpmc861 h int fd int result EXAR16XXX_FIFO_STRUCT fifoSet Enable FIFO with receive trigger at 85 transmit trigger at 15 fifoSet rxFifoTrigger 85 fifoSet txFifoTrigger 15 result ioctl fd FIO_EXAR16XXX_FIFO amp fifoSet if result OK Success else Function failed ERROR CODES Error code EINVAL Description Invalid Trigger Level specified or the combination of trigger levels is not allowed TPMC861 SW 42 VxWorks Device Driver Page 42 of 42
4. 1 5 or 2 stop bits optional even or odd parity changing baudrates VVVVV The TPMC861 SW 42 supports the modules listed below TPMC861 10 4 Channel Isolated Serial Interface RS422 RS485 PMC To get more information about the features and use of supported devices it is recommended to read the manuals listed below TPMC861 User Manual TPMC861 Engineering Manual TPMC861 SW 42 VxWorks Device Driver Page 4 of 42 TEWS amp TECHNOLOGIES 2 Installation Following files are located on the distribution media Directory path TPMC861 SW 42 TPMC861 SW 42 3 0 0 pdf PDF copy of this manual TPMC861 SW 42 VXBUS zip Zip compressed archive with VxBus driver sources TPMC861 SW 42 LEGACY zip Zip compressed archive with legacy driver sources ChangeLog txt Release history Release txt Release information The archive TPMC861 SW 42 VXBUS zip contains the following files and directories Directory path tews tpmc861 tpmc861drv c TPMC861 device driver source TPMC861 specific tpmc861def h TPMC861 driver include file tpmc861defaults h TPMC861 device default configuration tpmc861 h TPMC861 include file for driver and application exar16xxxDrv c device driver source controller specific exar16xxxDef h driver include file controller specific exar16xxx h include file for driver and application controller specific Makefile Driver Makefile 40tpmc861 ct Component description file for VxWorks development tools tpmc861 dc Config
5. been started or the specified channel has not been detected or channel structure has not been allocated SEE ALSO VxWorks Programmer s Guide I O System TPMC861 SW 42 VxWorks Device Driver Page 18 of 42 TEWS amp TECHNOLOGIES 4 3 tpmc861Pcilnit NAME tpmc861Pcilnit Generic PCI device initialization SYNOPSIS void tomc861Pcilnit DESCRIPTION This function is required only for Intel x86 VxWorks platforms The purpose is to setup the MMU mapping for all required TPMC861 PCI spaces base address register and to enable the TPMC861 device for access The global variable tomc861 Status obtains the result of the device initialization and can be polled later by the application before the driver will be installed Value Meaning gt 0 Initialization successful completed The value of tomc861Status is equal to the number of mapped PCI spaces 0 No TPMC861 device found lt 0 Initialization failed The value of tomc861Status amp OxFF is equal to the number of mapped spaces until the error occurs Possible cause Too few entries for dynamic mappings in sysPhysMemDesc Remedy Add dummy entries as necessary sysLib c EXAMPLE extern void tpmc861Pcilnit tpmc861PcilInit TPMC861 SW 42 VxWorks Device Driver Page 19 of 42 TEWS amp TECHNOLOGIES 4 4 tpmc 8 61lnit NAME tpmc861Init initialize TPMC861 driver and devices and return the assigned channel numbers SYNOPSIS
6. include tomc861 h STATUS tpmc861 Init int firstDevldx int lastDevidx DESCRIPTION This function is used by the TPMC861 example application to install the driver to add all available devices to the VxWorks system and to determine the assigned port names All software FIFOs Receive Transmit will be configured with a size of 1KB The function calls tomc861Drv and tomc861DevCreate The devices will be named with tyCo lt n gt where lt n gt specifies the channel Because the default serial devices are named in the same kind the driver searches for the first free number and will name the TPMC861 starting with this number in a row For example already two local serial devices are created and one TPMC861 is installed the names tyCo 0 and tyCo 1 are assigned to the local channels tyCo 2 up to tyCo 5 will be assigned to the 4 TPMC861 channels In this example the function will set a 2 for the first and a 5 for the last assigned device After calling this function it is not necessary to call tpmc861Drv or tpmc861DevCreate explicitly PARAMETER firstDevldx Pointer where the lowest assigned device number for TPMC861 devices will be returned lastDevldx Pointer where the highest assigned device number for TPMC861 devices will be returned TPMC861 SW 42 VxWorks Device Driver Page 20 of 42 TEWS amp TECHNOLOGIES EXAMPLE include tpmc861 h S
7. the VxWorks basic I O interface VxBus enabled device drivers are the preferred driver interface for new developments The checklist below will help you to make a decision which driver model is suitable and possible for your application Legacy Driver VxBus Driver VxWorks 5 x releases VxWorks 6 6 and later releases VxWorks 6 5 and earlier iA ABUS PE Bug releases SMP systems only the VxBus i i VxWorks 6 x releases without driver is SMP satel VxBus PCI bus support TEWS TECHNOLOGIES recommends not using the VxBus Driver before VxWorks release 6 6 In previous releases required header files are missing and the support for 27 party drivers may not be available 2 2 VxBus Driver Installation Because Wind River doesn t provide a standard installation method for 3 party VxBus device drivers the installation procedure needs to be done manually In order to perform a manual installation extract all files from the archive TPMC861 SW 42 VXBUS zip to the typical 3 party directory installDir vxworks 6 x target 3rdparty whereas installDir must be substituted by the VxWorks installation directory After successful installation the TPMC861 device driver is located in the vendor and driver specific directory installDir vxworks 6 x target 3rdparty tews tomc861 At this point the TPMC861 driver is not configurable and cannot be included with the kernel configuration tool in a Wind River Workbench project To make t
8. the device PARAMETER fd This file descriptor specifies the device to be used The file descriptor has been returned by the open function buffer This argument points to a user supplied buffer The data of the buffer will be written to the device nbytes This parameter specifies the number of bytes to be written TPMC861 SW 42 VxWorks Device Driver Page 28 of 42 TEWS amp TECHNOLOGIES EXAMPLE int fd char buffer Hello World int retval Write data to a TPMC861 device EJ retval write fd buffer strlen buffer if retval ERROR printf d bytes written n retval else handle the writ rror RETURNS Number of bytes written or ERROR If the function fails an error code will be stored in errno ERROR CODES The error code can be read with the function errnoGet The error code is a standard error code set by the I O system see VxWorks Reference Manual SEE ALSO ioLib basic I O routine write TPMC861 SW 42 VxWorks Device Driver Page 29 of 42 TEWS amp TECHNOLOGIES 5 5 iocti NAME ioctl performs an I O control function SYNOPSIS include tomc861 h int ioctl int fd int request int arg DESCRIPTION Special I O operation that do not fit to the standard basic I O calls read write will be performed by calling the ioctl function PARAMETER fd This file descriptor specifies the de
9. 1 Introduction 1 1 Device Driver The TPMC861 SW 42 VxWorks device driver software allows the operation of the supported modules conforming to the VxWorks I O system specification This includes a device independent basic I O interface with open close read write and ioctl functions and a buffered I O interface fopen fclose fprintf fscanf Special I O operation that do not fit to the standard I O calls will be performed by calling the ioctl function with a specific function code and an optional function dependent argument The TPMC861 SW 42 release contains independent driver sources for the old legacy pre VxBus and the new VxBus enabled driver model The VxBus enabled driver is recommended for new developments with later VxWorks 6 x release and mandatory for VxWorks SMP systems The TPMC861 driver includes the following functions supported by the VxWorks tty driver support library for pre VxBus systems or the sio driver library for VxBus compatible systems ring buffering of input and output raw mode optional line mode with backspace and line delete functions optional processing of X on X off optional RETURN LINEFEED conversion optional echoing of input characters optional stripping of the parity bit from 8 bit input optional special characters for shell abort and system restart VVVVVVVV Additionally the following optional functions select FIFO triggering point use 5 8 bit data words use 1
10. 61 specific Error Codes described with the functions are not valid for VxBus devices TPMC861 SW 42 VxWorks Device Driver Page 13 of 42 TEWS amp TECHNOLOGIES 3 3 Compatibility to pre VxBus applications The VxBus driver is compatible to the legacy version of this driver The only point which must be guaranteed is that the driver initialization is made via tomc861Init and not with tomc861Drv and tpmc861DevCreate Legacy compatible initialization function STATUS tpmc861 Init int firstChanNo int lastChanNo This routine just returns the number of the first firstChanNo and last lastChanNo port number assigned to the TPMC861 driver The devices will be named tyCo lt firstChanNo gt up to tyCo lt lastChanNo gt This function has been created for compatibility to the legacy driver It allows usage of the same example for bath legacy and VxBus systems It is not necessary to call this function in custom application TPMC861 SW 42 VxWorks Device Driver Page 14 of 42 TEWS amp TECHNOLOGIES 4 Legacy I O system functions This chapter describes the legacy driver level interface to the I O system The purpose of these functions is to install the driver in the I O system add and initialize devices The legacy I O system functions are only relevant for the legacy TPMC861 driver For the VxBus enabled TPMC861 driver the driver will be installed automatically in the UO system and devic
11. Page 12 of 42 TEWS amp TECHNOLOGIES 3 VxBus driver support 3 1 The TPMC861 will be fully integrated to the VxWorks system and the devices will be automatically created when booting VxWorks Assignment of Port Names The port names are assigned automatically when the ports are created The assigned port name will be tyCo lt n gt where lt n gt specifies the port number Generally the first two port numbers tyCo 0 tyCo 1 are assigned to system ports and the additional ports on the TPMC861 supported boards will start with port number 2 For example a system with one TPMC861 4 channels will assign the following device names tyCo O 17 system port tyCo 1 2 system port tyCo 2 17 channel of TPMC861 tyCo 3 2 channel of TPMC861 tyCo 4 3 channel of TPMC861 tyCo 5 4 channel of TPMC861 If there is more than one supported TPMC861 board installed the assignment of the channel numbers to the boards depends on the search order of the system but all the channels of one board will follow up in a row After booting the available devices can be checked with devs This function will return a list of all created devices If fewer devices have been created please first check the defined maximum number of serial devices See 2 2 2 Modification of the Number of serial ports 3 2 VxBus Error Codes There will be just system generated return codes for the Basic I O Functions The TPMC8
12. TATUS result int firstNo int lastNo char devName 20 int chanNo result tpmc86lInit amp firstNo amp lastNo if result ERROR Error handling else for chanNo firstNo chanNo lt lastNo chanNo sprintf devName tyCo d chanNo fd open devName RETURNS OK or ERROR If the function fails an error code will be stored in errno ERROR CODES Error codes are only set by system functions The error codes are stored in errno and can be read with the function errnoGet See 4 1 and 4 2 for a description of possible error codes TPMC861 SW 42 VxWorks Device Driver Page 21 of 42 5 Basic I O Functions 5 1 open NAME open open a device or file SYNOPSIS int open const char name int flags int mode DESCRIPTION TEWS E TECHNOLOGIES Before I O can be performed to the TPMC861 device a file descriptor must be opened by invoking the basic I O function open PARAMETER name Specifies the device which shall be opened For the legacy driver version the name specified for the device e g by tomc861DevCreate must be used For the VxBus driver version the system assigned device name tyCo lt n gt must be used flags Not used mode Not used TPMC861 SW 42 VxWorks Device Driver Page 22 of 42 EXAMPLE int fd Open the device named tyCo 2 for I O fd open tyC
13. cified serial channel that will be serviced by the TPMC861 driver This function must be called before performing any I O request to this device This function is not implemented for systems supporting VxBus PARAMETER name This string specifies the name of the device that will be used to identify the device for example for open calls devidx This index number specifies the device to add to the system If more than one modules are installed the channel numbers will be assigned in the order the VxWorks pciFindDevice function will find the devices rdBufSize This value specifies the size of the receive software FIFO wrtBufSize This value specifies the size of the transmit software FIFO TPMC861 SW 42 VxWorks Device Driver Page 17 of 42 TEWS amp TECHNOLOGIES devConf This parameter is unused and should be set to NULL EXAMPLE include tpmc861 h STATUS result Create the device tyCo 2 for the first device 1KB transmit and receive FIFO result tpmc861DevCreate tyCo 2 0 1024 1024 NULL if result OK Device successfully created else Error occurred when creating the device RETURNS OK or ERROR If the function fails an error code will be stored in errno ERROR CODES The error codes are stored in errno and can be read with the function errnoGet Error code Description S_iosLib_ DEVICE_NOT FOUND Driver has not
14. default configuration Description how to include device July 6 2009 driver into VxWorks projects modified Address TEWS LLC removed 3 0 0 New version of driver Legacy and VxBus Support August 30 2010 TPMC861 SW 42 VxWorks Device Driver Page 2 of 42 TEWS amp TECHNOLOGIES Table of Contents 1 INTRODUCTION E 4 CH ever Eeer 4 s INSTALLATION E 5 2 1 Legacy Vs VXBUS Dive wicciicccscicccccetatieececdey cccsaads a 6 2 2 VxBus Driver Installation 2 22 0 5cccccesesccsinnscerereseecencsancesseetensendecnceseeersnseadecncedseesseauasencdenseetenaecdondens 6 2 2 1 Direct BSP TI EE 8 2 2 2 Modification of the Number of Serial porte 8 2 3 Legacy Driver Installation ccessececeeneeeeeeeneeseeeeneeseeeeneeseeesneeseeeseeeseeesneeseeesneeseeesneeseeesnenseesenees 9 2 3 1 Include device driver in VxWorks projects 00 2 ceeeeeeeeeeeneeeeeeeeaeeeeeeaaeeeeesaaeeeeeeaeeeeeenaeeeeneaa 9 2 3 2 Special installation for Intel x86 based targets c ccccsseccceeseeceeessneeeeesseeeeessneeeeesseeeenees 9 2 3 3 BSP dependent adjustment AA 10 2 4 System resource requirement cccecccesccesseeeesneeeneeeeeeeeeseeeseseeeeneeeeeeaesasaaesnseaeseeeseseaeseseeeensneeenaes 11 2 5 Default ee alte UL OM EE 12 ao VABUS DRIVER SUPPORT iict a 13 3 1 Assignment ot Port Names ccccceseseesceeeesneeeeeneeseseeeseeesesneeseseeeseaesesanesesneesseneeseaesasnneeneneeesaes 13 3 2 VXBUS e E 13 3 3 Compatibility to p
15. ecific device TENSE TECHNOLOGIES The function specific control parameter arg passes the selected value to the device driver The following values are possible value description EXAR16XXX_NOP do not use parity EXAR16XXX_EVP use EVEN parity EXAR16XXX_ODP use ODD parity EXAR16XXX_SPP use SPACE parity EXAR16XXX_MAP use MARK parity EXAMPLE include tpmc861 h int fd int result Configure channel no parity result ioctl fd FIO_EXAR16XXX_PARITY EXAR16XXX_NOP if result OK Success else Function failed ERROR CODES Error code EINVAL TPMC861 SW 42 VxWorks Device Driver Description Invalid parity mode specified Page 35 of 42 TENSE TECHNOLOGIES 5 5 5 FIO_EXAR16XXX_SETBREAK This I O control function sets break state on transmit line The function specific control parameter arg is unused and will be ignored EXAMPLE include tpmc861 h int fd int retval Set break on Tx line s ZE retval ioctl fd FIO_EXAR16XXX_SETBREAK 0 if retval ERROR function succeeded else handle the error TPMC861 SW 42 VxWorks Device Driver Page 36 of 42 TENSE TECHNOLOGIES 5 5 6 FIO_EXAR16XXX_CLEARBREAK This I O control function resets break state on transmit line The function specific control parameter arg is unused and will be ignored EXAMPLE
16. es will be created as needed for detected modules 4 1 tpmc 861Drv NAME tpmc8 61Drv installs the TPMC861 driver in the I O system This function is not implemented for systems supporting VxBus SYNOPSIS include tomc861 h STATUS tpmc861drv void DESCRIPTION This function searches for devices on the PCI bus installs the TPMC861 driver in the I O system A call to this function is the first thing the user has to do before adding any device to the system or performing any UO request TPMC861 SW 42 VxWorks Device Driver Page 15 of 42 TEWS amp TECHNOLOGIES EXAMPLE include tpmc861 h STATUS result Initialize Driver result tpmc861Drv if result ERROR Error handling RETURNS OK or ERROR If the function fails an error code will be stored in errno ERROR CODES The error codes are stored in errno and can be read with the function errnoGet Error code Description ENXIO No TPMC861 found SEE ALSO VxWorks Programmer s Guide I O System TPMC861 SW 42 VxWorks Device Driver Page 16 of 42 TEWS amp TECHNOLOGIES 4 2 tpmc861DevCreate NAME tpmc861DevCreate Add a TPMC861 device to the VxWorks system SYNOPSIS include tomc861 h STATUS tpmc861DevCreate char name int glbChanNo int rdBufSize int wrtBufSize void devConf DESCRIPTION This routine creates a device on a spe
17. he driver configurable the driver library for the desired processer CPU and build tool TOOL must be built in the following way 1 Open a VxWorks development shell e g C WindRiver wrenv exe p vxworks 6 7 2 Change into the driver installation directory installDir vxworks 6 x target 3rdparty tews tpmc8 amp 6 1 3 Invoke the build command for the required processor and build tool make CPU cpuName TOOL tool TPMC861 SW 42 VxWorks Device Driver Page 6 of 42 TENSE TECHNOLOGIES For Windows hosts this may look like this C gt cd WindRiver vxworks 6 7 target 3rdparty tews tpmc861 C gt make CPU PENTIUM4 TOOL diab To compile SMP enabled libraries the argument VXBUILD SMP must be added to the command line C gt make CPU PENTIUM4 TOOL diab VXBUILD SMP To integrate the TPMC861 driver with the VxWorks development tools Workbench the component configuration file 40tpmc861 cdf must be copied to the directory installDir vxworks 6 x target config comps VxWorks C gt cd WindRiver vxworks 6 7 target 3rdparty tews tpmc861 C gt copy 40tpmc861 cdf Windriver vxworks 6 7 target config comps vxWorks In VxWorks 6 7 and newer releases the kernel configuration tool scans the CDF file automatically and updates the CxrCat txt cache file to provide component parameter information for the kernel configuration tool as long as the timestamp of the copied CDF file is newer than the one of the CxrCat txt If your copy command
18. ified device SYNOPSIS int read int fd char buffer size_t maxbytes DESCRIPTION This function can be used to read data from the device PARAMETER fd This file descriptor specifies the device to be used The file descriptor has been returned by the open function buffer This argument points to a user supplied buffer The returned data will be filled into this buffer maxbytes This parameter specifies the maximum number of read bytes buffer size TPMC861 SW 42 VxWorks Device Driver Page 26 of 42 TEWS amp TECHNOLOGIES EXAMPLE defin BUFSIZE 100 int fd char buffer BUFSIZE int retval Read data from TPMC861 device S retval read fd buffer BUFSIZE if retval ERROR printf d bytes read n retval else handle the read error RETURNS Number of bytes read or ERROR If the function fails an error code will be stored in errno ERROR CODES The error code can be read with the function errnoGet The error code is a standard error code set by the I O system see VxWorks Reference Manual SEE ALSO ioLib basic I O routine read TPMC861 SW 42 VxWorks Device Driver Page 27 of 42 TEWS amp TECHNOLOGIES 5 4 write NAME write write data from a buffer to a specified device SYNOPSIS int write int fd char buffer size_t nbytes DESCRIPTION This function can be used to write data to
19. iver The following values are possible value description EXAR16XXX_DB_5 use 5 data bits EXAR16XXX_DB 6 use 6 data bits EXAR16XXX_DB_ 7 use 7 data bits EXAR16XXX_DB 8 use 8 data bits EXAMPLE include tpmc861 h int fd int result Set channel to a word length of 7 bit result ioctl fd FIO_EXAR16XXX_DATABITS EXAR16XXX_DB_7 if result OK Success else Function failed ERROR CODES Error code Description EINVAL Invalid number of data bits specified TPMC861 SW 42 VxWorks Device Driver Page 33 of 42 TENSE TECHNOLOGIES 5 5 3 FIO_EXAR16XXX_STOPBITS This I O control function selects the number of stop bits used for the specific device The function specific control parameter arg passes the selected value to the device driver The following values are possible value description EXAR16XXX_SB_10 use 1 stop bit EXAR16XXX_SB_15 use 1 5 stop bits EXAR16XXX_SB_ 20 use 2 stop bits EXAMPLE include tpmc861 h int fd int result Set channel to a stop bit length of 1 bit SCH result ioctl fd FIO_EXAR16XXX_STOPBITS EXAR16XXX_SB_10 if result OK Success else Function failed ERROR CODES Error code Description EINVAL Invalid number of stop bits specified TPMC861 SW 42 VxWorks Device Driver Page 34 of 42 5 5 4 FIO_EXAR16XXX_PARITY This I O control function selects parity checking mode for the sp
20. ming error has been detected since the last call EXAR16XXX_PARITY_ERR This bit is set if a parity error has been detected since the last call EXAR16XXX_OVERRUN_ERR This bit is set if an overrun error has been detected since the last call EXAMPLE include tpmc861 h int fd int retval unsigned long errStat Get receive status ey retval ioctl fd FIO_EXAR16XXX_CHECKERRORS int amp errStat if retval ERROR function succeeded if errStat amp EXAR16XXX_FRAMING_ERR Framing error occurred else handle the error TPMC861 SW 42 VxWorks Device Driver Page 39 of 42 TENSE TECHNOLOGIES 5 5 9 FIO_EXAR16XXX_RECONFIGURE This UO control function resets the device to the default configuration The function specific control parameter arg is not used for this function EXAMPLE include tpmc861 h int fd int retval Reconfigure serial channel Wi retval ioctl fd FIO_EXAR16XXX_RECONFIGURE 0 if retval ERROR function succeeded else handle the error TPMC861 SW 42 VxWorks Device Driver Page 40 of 42 TEWS amp TECHNOLOGIES 5 5 10 FIO_EXAR16XXX_FIFO This I O control function specifies if FIFOs shall be enabled and which trigger levels should be used for interrupt generation The function specific control parameter arg passes a pointer to the FIFO
21. nterrupt level stored to the PCI header Another definition allows a simple adaptation for BSPs that utilize a pcilntConnect function to connect shared PCI interrupts If this function is defined in the used BSP the definition of USERDEFINED_SEL_PCIINTCONNECT should be enabled The definition by command line option is made by D lt definition gt Please refer to the BSP documentation and header files to get information about the interrupt connection function and the required offset values TPMC861 SW 42 VxWorks Device Driver Page 10 of 42 TEWS amp TECHNOLOGIES 2 4 System resource requirement The table gives an overview over the system resources that will be needed by the driver Resource Driver requirement Devices requirement Memory lt 1KB lt 1KB Stack lt 1KB Semaphores WW m 1 For legacy drivers only one semaphore is used for VxBus driver one semaphore is used per installed board The specified requirements are specific to the driver The VxWorks terminal manager will require extra resources for each device Memory and Stack usage may differ from system to system depending on the used compiler and its setup The following formula shows the way to calculate the common requirements of the driver and devices lt total requirement gt lt driver requirement gt lt number of devices gt lt device requirement gt The maximum usage of some resources is limited by adjus
22. o 2 0 0 if fd ERROR error handling RETURNS TEWS amp TECHNOLOGIES Wi A device descriptor number or ERROR If the function fails an error code will be stored in errno ERROR CODES The error code can be read with the function errnoGet The error code is a standard error code set by the I O system see VxWorks Reference Manual SEE ALSO ioLib basic I O routine open TPMC861 SW 42 VxWorks Device Driver Page 23 of 42 TEWS amp TECHNOLOGIES 5 2 close NAME close close a device or file SYNOPSIS STATUS close int fd DESCRIPTION This function closes opened devices PARAMETER fd This file descriptor specifies the device to be closed The file descriptor has been returned by the open function EXAMPLE int fd STATUS retval close the device Z retval close fd if retval ERROR error handling TPMC861 SW 42 VxWorks Device Driver Page 24 of 42 TENSE TECHNOLOGIES RETURNS OK or ERROR If the function fails an error code will be stored in errno ERROR CODES The error code can be read with the function errnoGet The error code is a standard error code set by the I O system see VxWorks Reference Manual SEE ALSO ioLib basic I O routine close TPMC861 SW 42 VxWorks Device Driver Page 25 of 42 TEWS amp TECHNOLOGIES 5 3 read NAME read read data from a spec
23. on For TPMC861 VxBus driver version The error code is always a standard error code set by the UO system There are no driver specific error codes SEE ALSO ioLib basic I O routine ioctl TPMC861 SW 42 VxWorks Device Driver Page 31 of 42 5 5 1 FIOBAUDRATE TENSE TECHNOLOGIES This I O control function configures the baudrate for the specified device It is basically a standard function with a few points to pay attention to The function specific control parameter arg passes the selected baudrate to the device driver The selected baud rate is always set to the nearest selectable value How to calculate baudrates please refer to the TPMC861 User Manual Examples Required Baud Rate Selecte 9600 9600 100000 115200 115200 115200 Higher baud rates shall be used with enabled FIFO this will avoid loosing data EXAMPLE include tpmc861 h int fd int result Set baud rate to 9600 Si result ioctl fd FIOBAUDRAT d Baud Rate if result OK Success else Function failed ERROR CODES Error code EINVAL TPMC861 SW 42 VxWorks Device Driver E 9600 Description Baudrate out of range Page 32 of 42 TENSE TECHNOLOGIES 5 5 2 FIO_EXAR16XXX_DATABITS This I O control function selects the number of data bits in one word for the specific device The function specific control parameter arg passes the selected value to the device dr
24. preserves the timestamp force to update the timestamp by a utility such as touch In earlier VxWorks releases the CxrCat txt file may not be updated automatically In this case remove or rename the original CxrCat txt file and invoke the make command to force recreation of this file C gt cd Windriver vxworks 6 7 target config comps vxWorks C gt del CxrCat txt C gt make After successful completion of all steps above and restart of the Wind River Workbench the TPMC861 driver can be included in VxWorks projects by selecting the TEWS TPMC861 Driver component in the hardware default Device Drivers folder with the kernel configuration tool TPMC861 SW 42 VxWorks Device Driver Page 7 of 42 TENSE TECHNOLOGIES 2 2 1 Direct BSP Builds In development scenarios with the direct BSP build method without using the Workbench or the vxprj command line utility the TPMC861 configuration stub files must be copied to the directory installDir vxworks 6 x target config comps src hwif Afterwards the vxbUsrCmdLine c file must be updated by invoking the appropriate make command C gt cd WindRiver vxworks 6 7 target 3rdparty tews tpmc861 C gt copy tpmc861 dc Windriver vxworks 6 7 target config comps src hwif C gt copy tpmc861 dr Windriver vxworks 6 7 target config comps src hwif C gt cd Windriver vxworks 6 7 target config comps src hwif C gt make vxbUsrCmdLine c 2 2 2 Modification of the Number of se
25. re VXBUS AppliCatiONS cccceccesceseeeeeseeeeeeeeeeeeseseaeenseeeeeeesesseseseeeenseeeenens 14 4 LEGACY I O SYSTEM FUNCTIONS eise 15 ALT TP MCBGA DIV E 15 4 2 tpMC8E1DevCreate onana aE NRAN AAA RRE AARAA KAARE RAKENNA ARARA 17 4 3 i nolos LS Uu EN E 19 B A UPC BG TMI EE 20 5 BASIC VO FUNCTIONS E 22 BD OP GIN EE 22 5 2 ClOSC E EEE E E E tendceaved seduce E E E 24 BD HOA naea EE E E E E EA E A E E 26 E Wu A WEE 28 iD LOCI WE 30 5 541 FIQBAUDRAT EB evicc islovestecssescayettved Megerecte dea daaarna daadaa iaaea daaa ee aa eege 32 5 5 2 FIO_EXAR16XXX_DATABITS 00 cc ccc cece eeeeee cece eee eeeeeaaeeeeeeeseaeeesaaeseeaaeseneeesaeeesaeeeeneeee 33 5 5 3 FIO_EXAR16XXX_STOPBITS 00 cccceccceceeeeeeeee cece ee eeeeeeeaeeeeeeeseaeeesaaesseaeeseneeesaeeeeaeeeeeeeee 34 5 5 4 EO ESARIGNNNX PARITY maecritiaiieianaia ironiaa a ae oe aa 35 5 5 5 FIO_EXAR16XXX_SETBREAK cccccccceeeeeneeeeeeeeeeeeeeeeaeeeeeeeceaeeeeaaeeeeaeeseeeeesaeeeeaeeeeneeee 36 5 5 6 FIO ESARIGNXNX CLEARDBDREAk 37 5 5 7 FIO EXAR16XXX_CHECKBREAK sssssessssssrsssrsssrrssrnssrnssrnssrnssinssrnssrnssrnnsrnnsrnnsrnnsnnnsnnnt 38 5 5 8 FIO ESARIGNNNX CHECKRERRORG cee eeeeaeeeeaeeseeeeesaeeeeaeeeeneeee 39 5 5 9 FIO_EXAR16XXX_RECONFIGURE 0 0ccceccceeeeceeceeeeeeeeeeeeee seas eeeeaeseeaeeseeeeesaeeetaeeeeneeee 40 5 5 10 FIO EXARTGXXX FIFO EE 41 TPMC861 SW 42 VxWorks Device Driver Page 3 of 42 TEWS amp TECHNOLOGIES
26. rial ports The new number of serial ports must be specified in the configuration tool By default only the number of onboard serial ports is specified and TPMC861 will not be set up To support the TPMC861 ports the value of hardware peripherals serial SlO number of serial ports NUM_TTY must be set at least to the total number of installed serial ports For example if there are two onboard ports and one TPMC861 with 4 ports should be supported the value must be set to a value of 6 at least TPMC861 SW 42 VxWorks Device Driver Page 8 of 42 TEWS amp TECHNOLOGIES 2 3 Legacy Driver Installation 2 3 1 Include device driver in VxWorks projects For including the TPMC861 SW 42 device driver into a VxWorks project e g Tornado IDE or Workbench follow the steps below 1 Extract all files from the archive TPMC861 SW 42 LEGACY zip to your project directory 2 Add the device drivers C files to your project Make a right click to your project in the Workspace window and use the Add Files topic A file select box appears and the driver files in the tpmc861 directory can be selected 3 Now the driver is included in the project and will be built with the project For a more detailed description of the project facility please refer to your VxWorks User s Guide e g Tornado Workbench etc 2 3 2 Special installation for Intel x86 based targets The TPMC861 device driver is fully adapted for Intel
27. sLib c in the BSP path Remember this for future projects and recompilations TPMC861 SW 42 VxWorks Device Driver Page 9 of 42 TEWS amp TECHNOLOGIES 2 3 3 BSP dependent adjustments The driver includes a file called include tdhal h which contains functions and definitions for BSP adaptation It may be necessary to modify them for BSP specific settings Most settings can be made automatically by conditional compilation set by the BSP header files but some settings must be configured manually There are two way of modification first you can change the include tdhal h and define the corresponding definition and its value or you can do it using the command line option D There are 3 offset definitions USERDEFINED_MEM_OFFSET USERDEFINED_IO_OFFSET and USERDEFINED_LEV2VEC that must be configured if a corresponding warning message appears during compilation These definitions always need values Definition values can be assigned by command line option D lt definition gt lt value gt definition description USERDEFINED_MEM_ OFFSET The value of this definition must be set to the offset between CPU Bus and PCl Bus Address for PCI memory space access USERDEFINED_lIO OFFSET The value of this definition must be set to the offset between CPU Bus and PCl Bus Address for PCI I O space access USERDEFINED_LEV2VEC The value of this definition must be set to the difference of the interrupt vector used to connect the ISR and the i
28. table parameters If the application and driver exceed these limits increase the according values in your project TPMC861 SW 42 VxWorks Device Driver Page 11 of 42 TEWS amp TECHNOLOGIES 2 5 Default Configuration The driver will create the port with the default configuration specified in tomc861defaults h All channels will be set up with the same default configuration If a different configuration is necessary the configuration can be changed by modifying the file The assigned values must be compatible to the values allowed for the corresponding ioctl function The following defines are made for configuration TPMC861_DEFAULT_BAUD Specifies the default baudrate Default value 9600 TPMC861_DEFAULT_OPTIONS Specifies the default terminal settings Default value OPT_RAW TPMC861_DEFAULT_RXFIFOTRIG Specifies the default receive FIFO trigger level Default value 90 TPMC861_DEFAULT_TXFIFOTRIG Specifies the default transmit FIFO trigger level Default value 20 TPMC861_DEFAULT_DATABITS Specifies the default length of the data word Default value EXAR16XXX_DB_8 TPMC861_DEFAULT_STOPBITS Specifies the default length of the stop bit Default value EXAR16XXX_SB_10 TPMC861_DEFAULT_PARITY Specifies the default parity mode Default value EXAR16XXX_NOP If an illegal value is specified in the file the default value in the delivered file will be used TPMC861 SW 42 VxWorks Device Driver
29. uration stub file for direct BSP builds tpmc861 dr Configuration stub file for direct BSP builds include tvxbHal h Hardware dependent interface functions and definitions apps tpmc861exa c Example application The archive TPMC861 SW 42 LEGACY zip contains the following files and directories Directory path tpmc861 tpmc861drv c TPMC861 device driver source tpmc861def h TPMC861 driver include file tpmc861defaults h TPMC861 device default configuration tpmc861 h TPMC861 include file for driver and application tpmc861pci c TPMC861 device driver source for x86 based systems exar16xxxDrv c device driver source controller specific exar16xxxDef h driver include file controller specific exar16xxx h include file for driver and application controller specific tpmc861 exa c Example application include tdhal h Hardware dependent interface functions and definitions TPMC861 SW 42 VxWorks Device Driver Page 5 of 42 2 1 TEWS amp TECHNOLOGIES Legacy vs VxBus Driver In later VxWorks 6 x releases the old VxWorks 5 x legacy device driver model was replaced by VxBus enabled device drivers Legacy device drivers are tightly coupled with the BSP and the board hardware The VxBus infrastructure hides all BSP and hardware differences under a well defined interface which improves the portability and reduces the configuration effort A further advantage is the improved performance of API calls by using the method interface and bypassing
30. vice to be used The file descriptor has been returned by the open function TPMC861 SW 42 VxWorks Device Driver Page 30 of 42 TEWS amp TECHNOLOGIES request This argument specifies the function that shall be executed The TPMC861 device driver uses the standard tty driver support library tyLib For details of supported ioctl functions see VxWorks Reference Manual tyLib and VxWorks Programmer s Guide UO System Following additional functions are defined Function Description FIO_EXAR16XXX_DATABITS Set length of data word FIO_EXAR16XXX_STOPBITS Set length of the stop bit FIO_EXAR16XXX_PARITY Set parity checking mode FIO_EXAR16XXX_SETBREAK Set Break signal FIO_EXAR16XXX_CLEARBREAK Release Break signal FIO_EXAR16XXX_CHECKBREAK Check if a Break signal has been detected FIO_EXAR16XXX_CHECKERRORS Get error state of the device FIO_EXAR16XXX_RECONFIGURE Reconfigure device with the default parameters FIO_EXAR16XXX_FIFO Configure use of FIFO and set trigger levels arg This parameter depends on the selected function request How to use this parameter is described below with the function RETURNS OK or ERROR If the function fails an error code will be stored in errno ERROR CODES The error code can be read with the function errnoGet For TPMC861 legacy driver version The error code is a standard error code set by the I O system see VxWorks Reference Manual Function specific error codes will be described with the functi
31. x86 based targets This is done by conditional compilation directives inside the source code and controlled by the VxWorks global defined macro CRU FAMILY If the content of this macro is equal to 80X86 special Intel x86 conforming code and function calls will be included The second problem for Intel x86 based platforms can t be solved by conditional compilation directives Due to the fact that some Intel x86 BSP s doesn t map PCI memory spaces of devices which are not used by the BSP the required device memory spaces can t be accessed To solve this problem a MMU mapping entry has to be added for the required TPMC861 PCI memory spaces prior the MMU initialization usrMmutInit is done The C source file tpmc861pci c contains the function tomc861Pcilnit This routine finds out all TPMC861 devices and adds MMU mapping entries for all used PCI memory spaces Please insert a call to this function after the PCI initialization is done and prior to MMU initialization usrMmulnit The right place to call the function tomc861Pcilnit is at the end of the function sysHwInit in sysLib c it can be opened from the project Files window Be sure that the function is called prior to MMU initialization otherwise the TPMC861 PCI spaces remains unmapped and an access fault occurs during driver initialization Please insert the following call at a suitable place in sysLib c tpmc861PcilInit Modifying the sysLib c file will change the sy
Download Pdf Manuals
Related Search
TPMC861 SW 42
Related Contents
Suma Nova DPF-517 Spanish manual godkendt 09.10.08 LabVIEW Statistical Process Control Toolkit Reference Manual Hollywood Brass Gold Manual - Soundsonline Visualizza - Sanremo machines FGK 133 - Racing 100 ZiC-ZAG ARAX jEAN-luC DiEtRiCH juliE CHEMiN StarTech.com 10 ft High Speed HDMI Cable with Ethernet - Ultra HD 4k x 2k HDMI Cable - HDMI to HDMI M/M Case Logic XNSLR-7 Copyright © All rights reserved.
Failed to retrieve file