最近看epics的開發手冊,因為手冊中是分模組介紹的,所以看了一段時間還是寫不出程式來,昨天去讓師兄給我以具體的裝置支援的例子講述了下(因為我們室主要用到的還是裝置支援),下面是構建裝置支援程式的步驟,類似於乙個hello world程式,給同樣在入門道路上的朋友乙個參考。
1. 像ai、bi等這些型別的記錄支援,epics已經提供,一般情況下不需要我們自己code,我們經常需要寫的是裝置支援即device support,下面是乙個device support 簡單程式的code和編譯過程,包括support、ioc和boot。
2. 步驟
說明:我的epics_base路徑為/root/myepics/base/
(1) 裝置支援模組
*5)可以新增自己的.c、.h檔案,需要在本目錄下的makefile中新增firstsupport_srcs +=×××.c來對其進行編譯。
(2) ioc模組
返回到top,然後執行命令:
firstioc_dbd+= firstsupport.dbd
firstioc_libs+= firstsupport
修改此目錄下面的makefile,適當位置新增db:db += firstioc.db
(3)boot模組
返回到top,然後執行命令:
(這裡會提示要你輸入要啟動的ioc名字,這裡firstioc)
2) 到/root/work/epics/myfirst/iocboot/iocfirstboot下修改st.cmd
在適當位置新增載入記錄例項,dbloadrecords("db/firstioc.db"),然後將st.cmd新增執行許可權。
(4)回到top目錄(/root/work/epics/myfirst),make命令編譯,
(5)到/root/work/epics/myfirst/iocboot/iocfirstboot執行st.cmd,會迴圈輸出1,2,3….
上面的步驟中沒指名每步是具體是什麼意識,後面我在補充,當然最好是自己去檢視官方的開發手冊。
devfirstsupport.c
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int i;
static long init_bi(struct birecord *pbi);
static long read_bi(struct birecord *pbi);
struct devfirstsupportbi = ;
epic***portaddress(dset,devfirstsupportbi);
long init_bi(struct birecord *pbi)
long read_bi(struct birecord *pbi)
struct vmeio *pvmeio = (struct vmeio *) &(pbi->inp.value);
char *parm = pvmeio->parm;
if(!strcmp(parm, "first"))
return 2;
}firstioc.db
record(bi, "firstrecord")
EPICS之乙個簡單的裝置支援程式
最近看epics的開發手冊,因為手冊中是分模組介紹的,所以看了一段時間還是寫不出程式來,昨天去讓師兄給我以具體的裝置支援的例子講述了下 因為我們室主要用到的還是裝置支援 下面是構建裝置支援程式的步驟,類似於乙個hello world程式,給同樣在入門道路上的朋友乙個參考。1.像ai bi等這些型別的...
裝置標識及驅動程式所支援的裝置(
2.驅動程式所支援的裝置 在驅動程式的編寫過程中,如果此程式被用來作為硬體裝置的驅動,那麼應該首先確定裝置標識。2.1 pci裝置 可以使用兩個輔助巨集來進行 struct pci device id 結構體的初始化 pci device vendor,device 創 桓黿齪吞囟 碳吧璞?span...
裝置標識及驅動程式所支援的裝置(
2.驅動程式所支援的裝置 在驅動程式的編寫過程中,如果此程式被用來作為硬體裝置的驅動,那麼應該首先確定裝置標識。2.1 pci裝置 可以使用兩個輔助巨集來進行 struct pci device id 結構體的初始化 pci device vendor,device 創 桓黿齪吞囟 碳吧璞?span...