Good day. I have a database with 7 PV's that drive an aviation six pack. I have successfully built and run on Xilinx ultrascale dev board, Epics base-3.15.5, synApps_6_0 compiled with aarch64. The ioc runs fine under petalinux on zcu106. The simulator uses /dev/ttyUSB0 to talk to a labview application that feeds the data. The example is based upon an arduino example I found on the web. Very simple.
Now I want to target gnueabihf Xilinx zynq 7000 and run on zc706 and NAII board. Database unchanged. I recompiled epics base and syncapps with 32 bit arm compiler, rebuild petalinux. Now when I run I'm getting errors with the serial port. Here is what I think are relevant snippits.
The aoa record:
record(ai, aoa) {
field(DESC, "Angle of Atack Sensor")
field(DTYP, "stream")
field(INP, "@aoa.proto get_analog() $(PORT)")
field(SCAN, ".1 second")
field(HOPR, "360")
field(LOPR, "0")
field(PREC, "2")
field(FLNK, "speed")
}
I limit the error message to first PV, but all records have same errors.
The serial port is there, functional, permissions fine. The same database and startup works fine when built with aarch64 compiler and run on zcu106.
I would like to get working under the 32 bit arm zynq, so the database run on a North Atlantic Industries VPX, or VME board.
Startup:
epicsEnvSet(STREAM_PROTOCOL_PATH,"helloWorldIOCApp/Db")
dbLoadDatabase("dbd/helloWorldIOC.dbd")
helloWorldIOC_registerRecordDeviceDriver(pdbbase)
drvAsynSerialPortConfigure("SERIALPORT","/dev/ttyUSB0",0,0,0)
asynSetOption("SERIALPORT",-1,"baud","115200")
asynSetOption("SERIALPORT",-1,"bits","8")
asynSetOption("SERIALPORT",-1,"parity","none")
asynSetOption("SERIALPORT",-1,"stop","1")
asynSetOption("SERIALPORT",-1,"clocal","Y")
asynSetOption("SERIALPORT",-1,"crtscts","N")
dbLoadRecords("db/arduino.db","PORT='SERIALPORT'"
iocInit()
Starting iocInit
############################################################################
## EPICS R3.15.5
## EPICS Base built Oct 24 2019
############################################################################
2019/10/31 21:26:01.810631 _main_ Cannot find a bus named 'SERIALPORT' for 'aoa'
2019/10/31 21:26:01.810770 _main_ aoa: Can't attach to bus SERIALPORT -1
2019/10/31 21:26:01.810834 _main_ aoa: Record initialization failed
Warning: RSRV has empty beacon address list
iocRun: All initialization complete
## Start any sequence programs
#seq snchelloWorldIOC,"user=johnseebergerlin"
2019/10/31 21:26:02.413981 scan-0.1 aoa: Record not initialised correctly
dbior
Driver: stream
StreamDevice 2.7.7 built Oct 24 2019 13:43:29
registered bus interfaces:
DebugInterface
DummyInterface
Driver: drvAsyn
SERIALPORT multiDevice:No canBlock:Yes autoConnect:Yes
Serial line /dev/ttyUSB0: Connected
dbior "stream"
Driver: stream
StreamDevice 2.7.7 built Oct 24 2019 13:43:29
registered bus interfaces:
DebugInterface
DummyInterface
found this relevant tech-talk post:
If AsynDriverInterface is not listed, have you accidentally commented out the bus interface in CONFIG_STREAM?
Unfortunately, with asyn 4-5, you still have to specify ASYN_VERS=4-3 in
CONFIG_STREAM (I will fix that later).
What is this refering to, where is this?
How can I further debug?
thx
Thad