Ericsson’s
APZ is used for development of cellular telephony software. The programming
language used on the APZ is PLEX-C.
PLEX-C
is a protocol-like programming language. Developers or testers couldn’t debug software
by using break-point as other programming languages to view data and how system
behaved.
Testers
used a tool called Test System. When
this test system activated, all signals [similar to procedure calls with data
going in or out of a program (block)] showed with data in order of execution.
Testers could perform simple programs to filter out of unwanted signals or to capture
interested data with test system. I didn’t try all of that functionality.
The
issues with test system were
-
On a live switch, too many signals flying due to many calls by
many mobile users happened at once. In the lab, we have used only one test
phone, thus data was clean and easy to follow and debug.
-
The language used in test system for filtering seems to be too primitive
to create a good program, and it takes lots of time.
I
thought about having a simple command with a few parameters to initiate trace
of signals flying for a specific mobile phone. It’d be useful for a trouble
shooter at a live switch. [There was a problem with identifying the specific data
in a signal that contains the MSNB or SNB pointer/individual.]
Otherwise
trouble shooter could run a command like [a
few samples below]
It is back to the issue how system identifies the snb
or msnb embedded in those signal data. Perhaps using a special trigger?
1. TRACE msnb or snb [IN
BlockName_1] [OUT OF BlockName_2]
This would show all signals in
Blockname_1 or out of Blockname_2
2. If we wanted
to specify a data value in a signal data, it would be more complicated. We must
know the specific position of a signal
data of a signal, and in/out of a
block name.
-
TRACE msnb or snb
[D2 OF HNBCLEAR OUT OF Blockname_3 EQUAL 6]
In this case, we wanted system showed the signal HNBCLEAR if its
signal data, D2, equals 6 going out of Blockname_3. Of course, we would need to
combine with other parameters showing of other signals in order to analyze
issues.
-
TRACE msnb or snb
[D2 OF HNBCLEAR IN Blockname_4 GREATER THAN 6]
This is another example for capturing incoming signal HNBCLEAR to
Blockname_4 if D2 of signal HNBCLEAR
is greater than 6.
3. TRACE msnb or snb [IF
D2 OF HNBCLEAR IN Blockname_5 EQUAL 6 SHOW IN BlockName_1,
Blockname_2, Blockname_n AND
OUT OF Blockname_5, Blockname_m].
In this case, we wanted all signals coming in BlockName_1,
Blockname_2, Blockname_n AND signals going out of Blockname_5, Blockname_m IF D2 of HNBCLEAR signal going in
Blockname_5 equals 6.
4. It would be nice
if the new test system also supports showing of variable values if it triggers
by an msnb or snb.
5. If a trouble
shooter prepared a file of many trace statements, then it would be useful to
list the trace command that triggers tracing before listing traces, i.e. easier
to read.
There was another issue with many signals weren’t
associated with a msnb or snb. Whenever a signal associated to an msnb or snb
showed, we also wanted all signals related to this mobile phone, i.e. signals
with or without msnb or snb embedded.
--------------
P.S. APZ is a good plat form with PLEX-C programming
language, which is easy to understand and debug. APY is better with
introduction of database. Of course, a new PLEX language would be introduced
with additional statements for database handling. Another good thing of APZ was
to allow us loading assembly fixes on a live switch to fix a bug in some cases,
i.e. we don’t need to load those fixes on a standby side and then switch side.
If APZ or APY allows tracing as above on a live switch, it would be a very good
product. I would say user friendly to debuggers.
No comments:
Post a Comment