EPICS IOC 使用 ProcServControl
软件包 epics-modules/asyn: EPICS module for driver and device support epics-modules/busy: APS BCDA synApps module epics-modules/sequencer: The EPICS SNL Compiler and Sequencer DiamondLightSource/procServControl: EPICS/CA control of running procServ instances ralphlange/procServ: Wrapper to start arbitrary interactive commands in the background, with telnet or Unix domain socket access to stdin/stdout 编译软件包 asyn 正常交叉编译。 busy 💡 提示 编译busy模块时需要用到autosave,如果不需要编译busy测试程序,可以注释configure/RELEASE中的AUTOSAVE定义。 正常交叉编译。 sequencer ℹ️ Title 编译sequencer模块需要用到re2c,可通过包管理器安装。 apt install re2c 正常交叉编译。 procServControl 修改configure/RELEASE: configure/RELEASE ▼ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 index 244da04..98d30ca 100644 --- a/configure/RELEASE +++ b/configure/RELEASE @@ -20,15 +20,15 @@ # CONFIG_SITE file. TEMPLATE_TOP=$(EPICS_BASE)/templates/makeBaseApp/top -SUPPORT=/dls_sw/prod/R3.14.12.7/support +SUPPORT=/home/kira/epics/epics-modules # If using the sequencer, point SNCSEQ at its top directory: -SNCSEQ=$(SUPPORT)/seq/2-2-5dls1 -ASYN=$(SUPPORT)/asyn/4-41 -BUSY=$(SUPPORT)/busy/1-7-2dls5 +SNCSEQ=$(SUPPORT)/sequencer +ASYN=$(SUPPORT)/asyn +BUSY=$(SUPPORT)/busy # EPICS_BASE usually appears last so other apps can override stuff: -EPICS_BASE=/dls_sw/epics/R3.14.12.7/base +EPICS_BASE=/home/kira/epics/base-7.0.9 # Set RULES here if you want to take build rules from somewhere # other than EPICS_BASE: 如果需要交叉编译,修改configure/CONFIG_SITE: configure/CONFIG_SITE ▼ 1 2 3 4 5 6 7 8 9 10 11 12 index f30c124..53c5e23 100644 --- a/configure/CONFIG_SITE +++ b/configure/CONFIG_SITE @@ -19,7 +19,7 @@ CHECK_RELEASE = YES # Set this when you only want to compile this application # for a subset of the cross-compiled target architectures # that Base is built for. -CROSS_COMPILER_TARGET_ARCHS = +CROSS_COMPILER_TARGET_ARCHS = linux-loong64 # To install files into a location other than $(TOP) define # INSTALL_LOCATION here. 编译 shell ▼ 1 make -j procServ 修改procServ.cc: procServ.cc ▼ 1 2 3 4 5 6 7 8 9 10 11 12 index c8d04a2..7cd25f9 100644 --- a/procServ.cc +++ b/procServ.cc @@ -65,7 +65,8 @@ int connectionNo; // Total number of connections char *ignChars = NULL; // Characters to ignore char killChar = 0x18; // Kill command character (default: ^X) char toggleRestartChar = 0x14; // Toggle autorestart character (default: ^T) -char restartChar = 0x12; // Restart character (default: ^R) +char restartChar = 0x18; // Restart character (default: ^X) char quitChar = 0x11; // Quit character (default: ^Q) char logoutChar = 0x00; // Logout client connection character (default: none) int killSig = SIGKILL; // Kill signal (default: SIGKILL) 编译 shell ▼ 1 2 3 4 5 autoreconf -fi # 配置交叉编译器 ./configure --host=loongarch64-linux-gnu CC=loongarch64-linux-gnu-gcc --disable-doc # 编译 make -j 编译完成应该可以看到当前目录生成了procServ可执行程序。 ...