ATLAS Compiler
Version 3.23.06 (20050915)
Release Date: 15 September 2005
Overview
The following describes an overview of changes included within version 20050915 (3.23.6) of the following ATLAS compiler(s)
CASS / RT
and version 20050915 (3.23.6) of the following ATLAS support tools:
None
1.1 Enhancements
1.1.1 CEM Driver Access to Ports Used
1.2 Problem Reports
05-025
2.0 Detailed Description
2.1 Enhancements
2.1.1 CEM Driver Access to Ports Used
Situations arise in the implementation of CEM drivers where it is desirable to have some knowledge of which ATLAS ports
are used in a specific statement prior to the Connect action. A common example is the use of sense lines, i.e. ports
SENSE-HI and SENSE-LO with a DC power supply. If those ports are used then it is likely necessary to have that information
available in the Setup action. This release of the subject ATLAS compilers provides a means of specifying ports of interest
and determining when they are used.
Procedure
- Add the modifier PORTS to the lexical database file modifer as follows:
(MSG_MC ++ LST_MC) PORTS;
i.e. It is of type MSGCHAR (MSG_MC) and can have multiple values (LST_MC).
- Add the modifier PORTS to the lexical database file nounsmod as follows:
begin PSEUDO COMMON MODIFIERS;
MODIFIERS :
…
PORTS;
…
end_unit;
i.e. The modifier PORTS can be used with all nouns.
- In the lexical database file ports, flag all ports of interest with the property SHO_PC (ESTS users ESP_PC) as follows:
define PORTS lexrule = PORTRULE … ;
…
HI;
…
S3;
S4;
(SHO_PC) SENSE-HI;
(SHO_PC) SENSE-LO;
…
end_unit;
- Add the modifier ports to the device database functions. i.e. begin FNC, which use one or more of the
flagged ports and for which it is necessary to determine when the port is used.
Example
begin DEV DSCP1 using
DCPS1;
begin FNC = 1;
source dc signal;
cnx hi
DCPS1-HI, lo DCPS1-LO;
sense-hi DCPS1-SENS-HI, sense-lo
DCPs1-SENS-LO;
control
{
voltage range …;
current max …;
ports;
}
end;
…
end;
- The CEM driver can access that parameter in the manner that is conventional for MSGCHAR list parameters, as follows:
CEM Wizard Parameter
int doDCPS1_1_Setup (…, PCHAR * pPRTS, int nCntPRTS, …
The parameter nCntPRTS will show the number of the flagged ports that were encountered, zero if none were used. The port strings
can be obtained, as follows:
for (int i = 0; i
< nCntPRTS, i ++)
{
PCHAR _port = pPRTS[i];
…
The port strings
will be the port names used in ATLAS as lower case.
Hand coded Parameter
DATUM * pPRTSDatum =
GetDatum(M_PRTS, K_SET);
int nCntPRTS = 0;
if (pPRTSDatum
&& (DatTyp(pPRTSDatum) == TXTV))
{
nCntPRTS = DatCnt(pPRTSDatum);
for (int i = 0; i < nPRTS; i ++)
{
char * _port = GetTXTDatVal(pPRTSDatum, i);
2.2 Problem Reports
2.2.1 05-025 CONN Variable Use Within Procedures
If a program or module included two or more procedures that contained instances of identical CNX fields that used procedure parameters as CONN variables the Signal Resource Allocator would generate path triplets for the second and subsequent CNX fields identicat to the first.
Example:
BEGIN, ATLAS PROGRAM 'XXX' $
…
DEFINE, 'A', PROCEDURE ('HI-PIN', 'LO-PIN') $
…
VERIFY, (RES INTO 'MEAS'), …
CNX HI 'HI-PIN' LO 'LO-PIN' $
END, 'A' $
…
DEFINE, 'B', PROCEDURE ('HI-PIN', 'LO-PIN') $
…
VERIFY, (RES INTO 'MEAS'), …
CNX HI 'HI-PIN' LO 'LO-PIN' $
END, 'B' $
…
E $
100 PERFORM, ‘A’, J1, X1 $
…
200 PERFORM , ‘B’, J2, X2 $
TERMINATE, ‘XXX’ $
When the PEFORM, ‘B’ occurs at statement 200 then the paths connected for the VERIFY statement in that procedure were those previously connected for the VERIFY statement in procedure, ‘A’, i.e. HI to J1 and LO to X1 and not the requested paths HI to J2 and LO to X2.
The problem has been corrected in this release of the ATLAS Compiler.
|