1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 <2022> 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 <2022> 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | A simple EPICS driver example for PCI devices using asynPortDriver on Linux |
From: | "Wang, Lin via Tech-talk" <tech-talk at aps.anl.gov> |
To: | tech-talk at aps.anl.gov |
Date: | Fri, 2 Dec 2022 18:15:34 +0800 (GMT+08:00) |
Dear all,
A simple EPICS driver example for PCI devices using asynPortDriver on Linux is shared in the following GitHub link in case somebody might be interested,
https://github.com/wanglin86769/cpciEpicsApp
This is an EPICS IOC developed for the LLRF system of a small-scale accelerator facility at CSNS campus. The LLRF board is a customized cPCI FPGA board with PCI 9056 bridge, the control interface is merely register access plus waveform read with 1 second update period, no interrupt or DMA is needed.
The Linux driver part is implemented as kernel module rather than UIO (Userspace I/O). This example is only useful for simple customized PCI devices that does not need interrupt and DMA, and only one MMIO (Memory mapped I/O) BAR is used to access the FPGA registers.
This is my first assignment to control PCI under Linux rather than vxWorks, any suggestion is appreciated.
Regards,
Lin Wang
Staff Engineer
Controls Group, Accelerator System Division, CSNS (China Spallation Neutron Source)
IHEP (Institute of High Energy Physics), Chinese Academy of Science