|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/peterbmiller/MESiWeb/ |
Upload File : |
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Corporate</title>
</head>
<body>
<div align="center"><center>
<table border="1" cellspacing="1" width="100%">
<tr>
<td width="69%"><p align="center"><small><small><font face="Arial"><a href="corporate.htm">Corporate</a>
� <a href="index.html">Home</a> � <a href="license.htm">License</a> � <a
href="memory.htm">Memory</a> � <a href="mips.htm">MIPs</a> � <a href="perform.htm">Performance</a>
� <a href="products.htm">Products</a> � <a href="price.htm">Prices</a></font></small></small></td>
<td width="31%"><p align="center">
<img src="images/mesi_logo6.gif"
alt="Mesi_logo6.gif (2951 bytes)" width="187" height="74"></td>
</tr>
</table>
</center></div>
<p align="center"><font color="#400080"><big><big>
"TARGET.ASM" Hardware Device Driver Information </big></big></font></p>
<p>MESi components all ship with a file that contains drivers for a variety of
hardware components including DSP chip initialization, serial port
initialization, audio codec A/D and DAC interfaces, telephone hook-switch and
ring detect interfaces, and timer functions. This assembly source driver
file is called TARGET.ASM with assembly include file TARGET.INC. The TARGET.OBJ Object is built using the appropriate C compiler
shell or assembler and using the <font color="#008000">-d</font> command-line
option to selectively build the correct drivers for your system
configuration. See the comments at the top of TARGET.ASM for command-line
symbol definitions for specific target boards. MESi supports demos for several popular hardware boards
including Analog Devices EZ-KIT Lite<sup><font face="Times New Roman">�</font></sup>
and EZ-LAB boards, Texas Instruments EVM and DSK boards, DSP Research Tiger boards, and
Silicon Labs DAA EVBs. For customers using similar configurations in their own
hardware designs, the driver file serves as a template. </p>
<p>The functions in the driver file are described in detail below. The source
code includes many <font color="#008000">#ifdef</font>s to control the type of
software implementation specific to supported hardware configurations, such as
DSK5416, TIGER5410, EZBF535, etc.</p>
<table border="1" cellspacing="1" width="895">
<tr>
<td width="295" bgcolor="#DFE7FF" align="center">
<p><b>Variable or Function Name </b></p>
</td>
<td width="79" bgcolor="#DFE7FF" align="center"><b>arguments</b></td>
<td width="73" bgcolor="#DFE7FF" align="center"><b>returns</b></td>
<td width="432" bgcolor="#DFE7FF" align="center"><b>Description</b></td>
</tr>
<tr>
<td width="295">
<p>extern void start_timer(void) </p>
</td>
<td width="79" align="center">none</td>
<td width="73" align="center">none</td>
<td width="432">This function causes the on-chip timer to start from it's
reset state</td>
</tr>
<tr>
<td width="295">
<p>extern int stop_timer(void) </p>
</td>
<td width="79" align="center">none</td>
<td width="73" align="center">16 bit unsigned</td>
<td width="432">This function stops the on-chip timer, and returns the
unsigned integer count value corresponding to the number of CPU cycles
elapsed since it was started. The on-chip timer is used in the demos
to provide a mechanism to measure the MIPs for each call to transmitter()
and receiver().</td>
</tr>
<tr>
<td width="295">
<p>extern void write_sample_to_DAC(int) </p>
</td>
<td width="79" align="center">16 bit integer</td>
<td width="73" align="center">none</td>
<td width="432">This function writes the 16 bit integer argument to the
specific hardware device implementing the Digital-to-Analog Converter. The
hardware is usually a serial port transmit register such as DXR.</td>
</tr>
<tr>
<td width="295">
<p>extern int read_sample_from_ADC(void) </p>
</td>
<td width="79" align="center">
<p> none</p>
</td>
<td width="73" align="center">16 bit integer</td>
<td width="432">This function reads a 16 bit integer from the specific
device implementing the Analog-to-Digital Converter, and returns it to the
caller. The hardware is usually a serial port receive register such
as DRR</td>
</tr>
<tr>
<td width="295">
<p>extern int HW_system_delay </p>
</td>
<td width="79" align="center">
<p> n/a</p>
</td>
<td width="73" align="center">n/a</td>
<td width="432">This integer is copied into Tx->system_delay in
transmitter()'s TX_BLOCK structure. It's initialized with a delay
value that corresponds to the delays inherent in the selected audio codes.</td>
</tr>
<tr>
<td width="295">
<p>extern void init_hardware(void) </p>
</td>
<td width="79" align="center">
<p> none</p>
</td>
<td width="73" align="center">none</td>
<td width="432">This function initializes the DSP chip and hardware
registers (if applicable) so the the target board will run at 8 kHz sample
rate through the specified codec device. It also initializes the serial
port and registers in the audio codec device (if applicable) for operation
at 8 kHz sample rate.</td>
</tr>
<tr>
<td width="295">
<p>extern int go_off_hook(void) </p>
</td>
<td width="79" align="center">
<p> none</p>
</td>
<td width="73" align="center">bool</td>
<td width="432">This function causes the external hook-switch to go
off-hook. A zero return value indicates that the function successfully
executed</td>
</tr>
<tr>
<td width="295">
<p>extern int go_on_hook(void) </p>
</td>
<td width="79" align="center">
<p> none</p>
</td>
<td width="73" align="center">bool</td>
<td width="432">This function causes the external hook-switch to go on-hook.
A zero return value indicates that the function successfully executed</td>
</tr>
<tr>
<td width="295">
<p>extern int wait_billing_delay(void) </p>
</td>
<td width="79" align="center">
<p> none</p>
</td>
<td width="73" align="center">bool</td>
<td width="432">This function polls the billing delay pin on some DAA
circuits. It returns zero if the billing delay squelch is inactive, and
non-zero if the DAA is squelching.</td>
</tr>
<tr>
<td width="295">
<p>extern int poll_ring_indicator(void) </p>
</td>
<td width="79" align="center">
<p> none</p>
</td>
<td width="73" align="center">bool</td>
<td width="432">This function polls the hardware ringing indicator and
returns zero if not ringing, and non-zero if ringing is detected.</td>
</tr>
<tr>
<td width="295">
<p>extern void dump_init(void) </p>
</td>
<td width="79" align="center">
<p>none </p>
</td>
<td width="73" align="center">none</td>
<td width="432">This function sets the dump buffer pointer, <font color="#008000">*dump_ptr</font>,
equal to the start of the dump buffer, <font color="#008000">dump[]</font>.
It also fills the dump buffer, <font color="#008000">dump[]</font> with a
"<font color="#FF3300">0xabcd</font>" pattern so that the user
can quickly determine if valid data has been logged.</td>
</tr>
<tr>
<td width="295">
<p>extern void dump_write(int) </p>
</td>
<td width="79" align="center">
<p> 16 bit integer</p>
</td>
<td width="73" align="center">none</td>
<td width="432">This function writes the 16 bit integer (32 bits for
'C3x/C4x) to the location in <font color="#008000">dump</font>[] pointed
to by *<font color="#008000">dump_ptr</font>, and increments <font color="#008000">dump_ptr.
</font>If the <font color="#008000">dump</font>[] buffer is full, then the
function simply returns to the caller with no action performed. This you
can trigger the dump_write() function endlessly without concern for
overflow. You can also reset *<font color="#008000">dump_ptr</font>
to allow logging to continue</td>
</tr>
<tr>
<td width="295">
<p>extern int dump[] </p>
</td>
<td width="79" align="center">
<p> n/a</p>
</td>
<td width="73" align="center">n/a</td>
<td width="432">This array is the dump buffer written to by the dump_write()
function. It's size defaults to 1 unless DUMP_LEN is defined otherwise in
the C compiler command line (example: -dDUMP_LEN=10000). </td>
</tr>
<tr>
<td width="295">
<p>extern int *dump_ptr </p>
</td>
<td width="79" align="center">n/a</td>
<td width="73" align="center">n/a</td>
<td width="432">This pointer points to elements in <font color="#008000">dump</font>[]
and is incremented by the dump_write() function until the end of <font color="#008000">dump</font>[].</td>
</tr>
<tr>
<td width="295">
<p>IQ_DAC_write: </p>
</td>
<td width="79" align="center">32 bit long</td>
<td width="73" align="center">none</td>
<td width="432">This assembly language routine allows the user to plot the
modem's I and Q symbol pair to an X-Y display device such as an
oscilloscope via a dual DAC. The demodulator calls this routine every time
an I,Q symbol pair is demodulated. The I,Q pair is packed into a 32 bit
word with I in the lower 16 bits, and Q in the upper 16 bits. Unless
c54x.c is compiled for target hardware with a dual DAC, such as the DSP
Research Tiger54x boards, this routine simply returns with no action.</td>
</tr>
</table>
</body>
</html>