Skip to content

IPAC Driver Version 2.1

Compare
Choose a tag to compare
@anjohnson anjohnson released this 22 Aug 22:08
· 215 commits to master since this release

Released: 1999-08-02
By: Andrew Johnson

Prerequisites

  • EPICS Base 3.13.x

Downloads

Documentation

The source tree includes a copy of all the documents along with the full release notes history for each module; on building these files get installed into a new top-level html directory. The links below currently point to the HTML files in the github repository at the time of the release, but they will not be rendered properly by your browser.


Release Notes

Changes since V2.0 release.

IPAC Driver

Added:

  • Jeff Hill's driver for the GreenSpring ATC40 ISAbus carrier board, including the changes to the main drvIpac software and the other carrier drivers which are necessary to support little-endian architectures. These were:
  • Make all accesses to the IP module registers & ID-Prom use short (16-bit) read/writes, so the endian problem disappears. Adjust various internal routines to allow for this.
  • Provide a new function pointer (optional, may be NULL) in the carrier table which is called by ipmIntConnect. Module drivers should use ipmIntConnect instead of vxWorks' intConnect routine to attach their interrupt routine. This makes it possible to use identical module driver code on both VME and ISA bus, although the module driver may have to be modified as discussed above to resolve the endian issue.
  • Some printf()s in ipacAddCarrier so failures can be seen without having to look at the return value.
  • SRCS.c entries to Makefile.Vx so gnumake depends works.

Bug fixed:

  • Finally tested the MVME162 carrier driver myself - this also works on the MVME172. Changed the checking of m= addresses to use unsigned arithmetic.

CANbus Driver

Incorporated changes from Carl Lionberger that move the receive message callbacks into a fairly high priority task, rather than doing them in the ISR itself. This allows a higher peak message rate to be handled, although the average rate should be essentially unchanged.

Added:

  • ISR funnels incoming CAN packets into a Message queue rather than run the canMessage callbacks directly. NB: The canSignal callbacks are still run from the ISR so must be interrupt-safe.

Octal Serial Driver

Updated due to changes made to drvIpac, and also actually tried it out for myself - got some interrupts but I haven't done a full test.

Changed:

  • Use ipmIntConnect() to attach the ISR.

Bugs fixed:

  • Now works with the ipmv162 carrier driver - the interrupt vector register was being accessed at an offset from the I/O space, which works on GreenSpring carriers but doesn't meet the IPAC specification. The register is correctly accessed in the IP memory space, which means that this must be mapped in.