mirror of
https://github.com/apache/nuttx.git
synced 2026-05-22 22:20:01 +08:00
Consolidate buffer dumping; fix all occurrences of 'the the'
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1951 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -1652,7 +1652,7 @@ int nx_bitmap(NXWINDOW hwnd, FAR const struct nxgl_rect_s *dest,
|
||||
or <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a> that specifies the
|
||||
window that will receive the bitmap image.
|
||||
<dt><code>dest</code>
|
||||
<dd> Describes the rectangular on the display that will receive the the bit map.
|
||||
<dd> Describes the rectangular on the display that will receive the bit map.
|
||||
<dt><code>src</code>
|
||||
<dd>The start of the source image. This is an array source images of size
|
||||
<code>CONFIG_NX_NPLANES</code> (probably 1).
|
||||
|
||||
@@ -1348,7 +1348,7 @@ mount -t <fstype> <block-device> <code><dir-path></code>
|
||||
</li>
|
||||
</ol>
|
||||
<p>
|
||||
After the the volume has been mounted in the NuttX
|
||||
After the volume has been mounted in the NuttX
|
||||
<a href="NuttxUserGuide.html#FileSystemOverview"><i>pseudo</i> filesystem</a>,
|
||||
it may be access in the same way as other objects in thefile system.
|
||||
</p>
|
||||
@@ -2108,7 +2108,7 @@ nsh>
|
||||
<tr>
|
||||
<td valign="top"><b><code>CONFIG_EXAMPLES_NSH_DHCPC</code></b></td>
|
||||
<td>
|
||||
Obtain the the IP address via DHCP.
|
||||
Obtain the IP address via DHCP.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -1214,7 +1214,7 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote>
|
||||
<td>
|
||||
<p>
|
||||
This is a tougher environment.
|
||||
In this case, the Windows native toolchain is unaware of the the
|
||||
In this case, the Windows native toolchain is unaware of the
|
||||
Cygwin <i>sandbox</i> and, instead, operates in the native Windows environment.
|
||||
The primary difficulties with this are:
|
||||
</p>
|
||||
|
||||
@@ -170,7 +170,7 @@ paragraphs.
|
||||
</p>
|
||||
</p>
|
||||
If CONFIG_DEV_CONSOLE is defined, the first three file descriptors (corresponding
|
||||
to stdin, stdout, stderr) will be duplicated for the the new task.
|
||||
to stdin, stdout, stderr) will be duplicated for the new task.
|
||||
Since these file descriptors are duplicated, the child task can free close
|
||||
them or manipulate them in any way without effecting the parent task.
|
||||
File-related operations (open, close, etc.) within a task will have no effect
|
||||
@@ -2430,7 +2430,7 @@ VxWorks provides the following comparable interface:
|
||||
</pre>
|
||||
<p>
|
||||
<b>Description:</b>
|
||||
This function returns the time remaining before the the specified watchdog expires.
|
||||
This function returns the time remaining before the specified watchdog expires.
|
||||
</p>
|
||||
<p>
|
||||
<b>Input Parameters:</b>
|
||||
@@ -4490,7 +4490,7 @@ per-thread basis and persist for the life of the calling
|
||||
thread.
|
||||
<p>
|
||||
Upon key creation, the value <I>NULL</I> will be associated with
|
||||
the the new key in all active threads. Upon thread
|
||||
the new key in all active threads. Upon thread
|
||||
creation, the value <I>NULL</I> will be associated with all
|
||||
defined keys in the new thread.
|
||||
<p>
|
||||
|
||||
+1
-1
@@ -801,7 +801,7 @@ support for two new architectures:
|
||||
been integrated due to toolchain issues.
|
||||
|
||||
* Renesas M16C/20. Support for the Renesas SKP16C20 board has been included in
|
||||
the NuttX source tree. However, as the the eZ80Acclaim!, testing and integration
|
||||
the NuttX source tree. However, as the eZ80Acclaim!, testing and integration
|
||||
of that port is stalled due to toolchain issues.
|
||||
|
||||
These changes were verified only on the ZiLOG eZ80910200zcog-d board. Please report any errors
|
||||
|
||||
@@ -160,7 +160,7 @@ static inline irqstate_t irqsave(void)
|
||||
{
|
||||
unsigned short primask;
|
||||
|
||||
/* Return the the current value of primask register and set
|
||||
/* Return the current value of primask register and set
|
||||
* bit 0 of the primask register to disable interrupts
|
||||
*/
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ void up_sigdeliver(void)
|
||||
sig_deliver_t sigdeliver;
|
||||
|
||||
/* Save the errno. This must be preserved throughout the
|
||||
* signal handling so that the the user code final gets
|
||||
* signal handling so that the user code final gets
|
||||
* the correct errno value (probably EINTR).
|
||||
*/
|
||||
|
||||
|
||||
@@ -415,53 +415,16 @@ static void c5471_macassign(struct c5471_driver_s *c5471);
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_C5471_NET_DUMPBUFFER
|
||||
static void c5471_dumpbuffer(const char *buffer, ssize_t nbytes)
|
||||
static inline void c5471_dumpbuffer(const char *msg, const ubyte *buffer, unsigned int nbytes)
|
||||
{
|
||||
#if defined(CONFIG_DEBUG) && defined(CONFIG_DEBUG_NET)
|
||||
char line[128];
|
||||
int ch;
|
||||
int i;
|
||||
int j;
|
||||
|
||||
for (i = 0; i < nbytes; i += 16)
|
||||
{
|
||||
sprintf(line, "%04x: ", i);
|
||||
for (j = 0; j < 16; j++)
|
||||
{
|
||||
if (i + j < nbytes)
|
||||
{
|
||||
sprintf(&line[strlen(line)], "%02x", buffer[i+j] );
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(&line[strlen(line)], " ");
|
||||
}
|
||||
|
||||
if (j == 7 || j == 15)
|
||||
{
|
||||
strcpy(&line[strlen(line)], " ");
|
||||
}
|
||||
}
|
||||
|
||||
for ( j = 0; j < 16; j++)
|
||||
{
|
||||
if (i + j < nbytes)
|
||||
{
|
||||
ch = buffer[i+j];
|
||||
sprintf(&line[strlen(line)], "%c", ch >= 0x20 && ch <= 0x7e ? ch : '.');
|
||||
}
|
||||
|
||||
if (j == 7 || j == 15)
|
||||
{
|
||||
strcpy(&line[strlen(line)], " ");
|
||||
}
|
||||
}
|
||||
ndbg("%s\n", line);
|
||||
}
|
||||
#endif
|
||||
/* CONFIG_DEBUG, CONFIG_DEBUG_VERBOSE, and CONFIG_DEBUG_NET have to be
|
||||
* defined or the following does nothing.
|
||||
*/
|
||||
|
||||
nvdbgdumpbuffer(msg, buffer, nbytes);
|
||||
}
|
||||
#else
|
||||
# define c5471_dumpbuffer(buffer,nbytes)
|
||||
# define c5471_dumpbuffer(msg, buffer,nbytes)
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
@@ -494,7 +457,7 @@ static void c5471_mdtxbit (int bit_state)
|
||||
|
||||
putreg32((getreg32(GPIO_CIO) & ~GPIO_CIO_MDIO), GPIO_CIO);
|
||||
|
||||
/* Select the the bit output state */
|
||||
/* Select the bit output state */
|
||||
|
||||
if (bit_state)
|
||||
{
|
||||
@@ -907,7 +870,7 @@ static int c5471_transmit(struct c5471_driver_s *c5471)
|
||||
c5471->c_lastdescstart = c5471->c_rxcpudesc;
|
||||
|
||||
nvdbg("Packet size: %d RX CPU desc: %08x\n", nbytes, c5471->c_rxcpudesc);
|
||||
c5471_dumpbuffer(dev->d_buf, dev->d_len);
|
||||
c5471_dumpbuffer("Transmit packet", dev->d_buf, dev->d_len);
|
||||
|
||||
while (nbytes)
|
||||
{
|
||||
@@ -1276,7 +1239,7 @@ static void c5471_receive(struct c5471_driver_s *c5471)
|
||||
|
||||
dev->d_len = packetlen;
|
||||
nvdbg("Received packet, packetlen: %d type: %02x\n", packetlen, ntohs(BUF->type));
|
||||
c5471_dumpbuffer(dev->d_buf, dev->d_len);
|
||||
c5471_dumpbuffer("Received packet", dev->d_buf, dev->d_len);
|
||||
|
||||
/* We only accept IP packets of the configured type and ARP packets */
|
||||
|
||||
@@ -2006,7 +1969,7 @@ static void c5471_eimconfig(struct c5471_driver_s *c5471)
|
||||
putreg32(ENET_ADR_BROADCAST|ENET_ADR_PROMISCUOUS, ENET0_ADRMODE_EN);
|
||||
#else
|
||||
/* The CPU port is not PROMISCUOUS, it wants a no-promiscuous address
|
||||
* match yet the the SWITCH receives packets from the PROMISCUOUS ENET0
|
||||
* match yet the SWITCH receives packets from the PROMISCUOUS ENET0
|
||||
* which routes all packets for filter matching at the CPU port which
|
||||
* then allows the s/w to see the new incoming packetes that passed
|
||||
* the filter. Here we are setting the main SWITCH closest the ether
|
||||
|
||||
@@ -287,7 +287,7 @@ static int wdt_ioctl(struct file *filep, int cmd, uint32 arg)
|
||||
{
|
||||
dbg("ioctl Call: cmd=0x%x arg=0x%x", cmd, arg);
|
||||
|
||||
/* Process the the IOCTL command (see arch/watchdog.h) */
|
||||
/* Process the IOCTL command (see arch/watchdog.h) */
|
||||
|
||||
switch(cmd)
|
||||
{
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
*
|
||||
* Inputs:
|
||||
* tcb: Refers to a task in the ready-to-run list (normally
|
||||
* the task at the the head of the list). It most be
|
||||
* the task at the head of the list). It most be
|
||||
* stopped, its context saved and moved into one of the
|
||||
* waiting task lists. It it was the task at the head
|
||||
* of the ready-to-run list, then a context to the new
|
||||
|
||||
@@ -136,7 +136,7 @@ static void _up_dumponexit(FAR _TCB *tcb, FAR void *arg)
|
||||
* This function causes the currently executing task to cease
|
||||
* to exist. This is a special case of task_delete() where the task to
|
||||
* be deleted is the currently executing task. It is more complex because
|
||||
* a context switch must be perform to the the next ready to run task.
|
||||
* a context switch must be perform to the next ready to run task.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
/* Macros to handle saving and restore interrupt state. In the current ARM
|
||||
* model, the state is always copied to and from the stack and TCB. In the
|
||||
* Cortex-M3 model, the state is copied from the stack to the TCB, but only
|
||||
* a referenced is passed to get the the state from the TCB.
|
||||
* a referenced is passed to get the state from the TCB.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_ARCH_CORTEXM3
|
||||
|
||||
@@ -86,7 +86,7 @@ void up_sigdeliver(void)
|
||||
sig_deliver_t sigdeliver;
|
||||
|
||||
/* Save the errno. This must be preserved throughout the
|
||||
* signal handling so that the the user code final gets
|
||||
* signal handling so that the user code final gets
|
||||
* the correct errno value (probably EINTR).
|
||||
*/
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ up_phyrestart:
|
||||
bic r0, r0, #(CR_S|CR_I|CR_V|CR_RR)
|
||||
mcr p15, 0, r0, c1, c0, 0 /* Write control reg */
|
||||
|
||||
/* We know that the the bootloader entry point is at the
|
||||
/* We know that the bootloader entry point is at the
|
||||
* beginning of flash.
|
||||
*/
|
||||
#if 1
|
||||
|
||||
@@ -587,7 +587,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg)
|
||||
* Description:
|
||||
* Called (usually) from the interrupt level to receive one
|
||||
* character from the UART. Error bits associated with the
|
||||
* receipt are provided in the the return 'status'.
|
||||
* receipt are provided in the return 'status'.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
@@ -911,7 +911,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg)
|
||||
* Description:
|
||||
* Called (usually) from the interrupt level to receive one
|
||||
* character from the UART. Error bits associated with the
|
||||
* receipt are provided in the the return 'status'.
|
||||
* receipt are provided in the return 'status'.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
@@ -674,7 +674,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg)
|
||||
* Description:
|
||||
* Called (usually) from the interrupt level to receive one
|
||||
* character from the UART. Error bits associated with the
|
||||
* receipt are provided in the the return 'status'.
|
||||
* receipt are provided in the return 'status'.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
@@ -612,7 +612,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg)
|
||||
* Description:
|
||||
* Called (usually) from the interrupt level to receive one
|
||||
* character from the UART. Error bits associated with the
|
||||
* receipt are provided in the the return 'status'.
|
||||
* receipt are provided in the return 'status'.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
@@ -783,7 +783,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg)
|
||||
* Description:
|
||||
* Called (usually) from the interrupt level to receive one
|
||||
* character from the UART. Error bits associated with the
|
||||
* receipt are provided in the the return 'status'.
|
||||
* receipt are provided in the return 'status'.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
* For SDCC, sizeof(int) is 16 and sizeof(long) is 32.
|
||||
* long long and double are not supported.
|
||||
*
|
||||
* Generic pointers are 3 bytes in length with the the
|
||||
* Generic pointers are 3 bytes in length with the
|
||||
* first byte holding data space intformation.
|
||||
*/
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
*
|
||||
* Inputs:
|
||||
* tcb: Refers to a task in the ready-to-run list (normally
|
||||
* the task at the the head of the list). It most be
|
||||
* the task at the head of the list). It most be
|
||||
* stopped, its context saved and moved into one of the
|
||||
* waiting task lists. It it was the task at the head
|
||||
* of the ready-to-run list, then a context to the new
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
* This function causes the currently executing task to cease
|
||||
* to exist. This is a special case of task_delete() where the task to
|
||||
* be deleted is the currently executing task. It is more complex because
|
||||
* a context switch must be perform to the the next ready to run task.
|
||||
* a context switch must be perform to the next ready to run task.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
*
|
||||
* Inputs:
|
||||
* tcb: Refers to a task in the ready-to-run list (normally
|
||||
* the task at the the head of the list). It most be
|
||||
* the task at the head of the list). It most be
|
||||
* stopped, its context saved and moved into one of the
|
||||
* waiting task lists. It it was the task at the head
|
||||
* of the ready-to-run list, then a context to the new
|
||||
|
||||
@@ -134,7 +134,7 @@ static void _up_dumponexit(FAR _TCB *tcb, FAR void *arg)
|
||||
* This function causes the currently executing task to cease
|
||||
* to exist. This is a special case of task_delete() where the task to
|
||||
* be deleted is the currently executing task. It is more complex because
|
||||
* a context switch must be perform to the the next ready to run task.
|
||||
* a context switch must be perform to the next ready to run task.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
@@ -906,7 +906,7 @@ static boolean up_rxavailable(struct uart_dev_s *dev)
|
||||
{
|
||||
struct up_dev_s *priv = (struct up_dev_s*)dev->priv;
|
||||
|
||||
/* Return true if the there is data available in the read buffer */
|
||||
/* Return true if there is data available in the read buffer */
|
||||
|
||||
return ((up_serialin(priv, M16C_UART_C1) & UART_C1_RI) != 0);
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ void up_sigdeliver(void)
|
||||
sig_deliver_t sigdeliver;
|
||||
|
||||
/* Save the errno. This must be preserved throughout the
|
||||
* signal handling so that the the user code final gets
|
||||
* signal handling so that the user code final gets
|
||||
* the correct errno value (probably EINTR).
|
||||
*/
|
||||
|
||||
|
||||
@@ -644,7 +644,7 @@ static int up_interrupt(int irq, void *context)
|
||||
* Description:
|
||||
* Called (usually) from the interrupt level to receive one
|
||||
* character from the SCI. Error bits associated with the
|
||||
* receipt are provided in the the return 'status'.
|
||||
* receipt are provided in the return 'status'.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ void up_sigdeliver(void)
|
||||
sig_deliver_t sigdeliver;
|
||||
|
||||
/* Save the errno. This must be preserved throughout the
|
||||
* signal handling so that the the user code final gets
|
||||
* signal handling so that the user code final gets
|
||||
* the correct errno value (probably EINTR).
|
||||
*/
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
*
|
||||
* Inputs:
|
||||
* tcb: Refers to a task in the ready-to-run list (normally
|
||||
* the task at the the head of the list). It most be
|
||||
* the task at the head of the list). It most be
|
||||
* stopped, its context saved and moved into one of the
|
||||
* waiting task lists. It it was the task at the head
|
||||
* of the ready-to-run list, then a context to the new
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
* This function causes the currently executing task to cease
|
||||
* to exist. This is a special case of task_delete() where the task to
|
||||
* be deleted is the currently executing task. It is more complex because
|
||||
* a context switch must be perform to the the next ready to run task.
|
||||
* a context switch must be perform to the next ready to run task.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
@@ -163,7 +163,7 @@
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* This is the the type of the register save array */
|
||||
/* This is the type of the register save array */
|
||||
|
||||
typedef uint16 chipreg_t;
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
*
|
||||
* Inputs:
|
||||
* tcb: Refers to a task in the ready-to-run list (normally
|
||||
* the task at the the head of the list). It most be
|
||||
* the task at the head of the list). It most be
|
||||
* stopped, its context saved and moved into one of the
|
||||
* waiting task lists. It it was the task at the head
|
||||
* of the ready-to-run list, then a context to the new
|
||||
|
||||
@@ -138,7 +138,7 @@ static void _up_dumponexit(FAR _TCB *tcb, FAR void *arg)
|
||||
* This function causes the currently executing task to cease
|
||||
* to exist. This is a special case of task_delete() where the task to
|
||||
* be deleted is the currently executing task. It is more complex because
|
||||
* a context switch must be perform to the the next ready to run task.
|
||||
* a context switch must be perform to the next ready to run task.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ void up_sigdeliver(void)
|
||||
sig_deliver_t sigdeliver;
|
||||
|
||||
/* Save the errno. This must be preserved throughout the signal handling
|
||||
* so that the the user code final gets the correct errno value (probably
|
||||
* so that the user code final gets the correct errno value (probably
|
||||
* EINTR).
|
||||
*/
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ void z16f_sysexec(FAR chipreg_t *regs)
|
||||
|
||||
current_regs = regs;
|
||||
|
||||
/* The cause of the the system exception is indicated in the SYSEXCPH&L
|
||||
/* The cause of the system exception is indicated in the SYSEXCPH&L
|
||||
* registers
|
||||
*/
|
||||
|
||||
|
||||
@@ -304,7 +304,7 @@
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* This is the the type of the register save array */
|
||||
/* This is the type of the register save array */
|
||||
|
||||
typedef uint16 chipreg_t;
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* This is the the type of the register save array */
|
||||
/* This is the type of the register save array */
|
||||
|
||||
typedef uint16 chipreg_t;
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
*
|
||||
* Inputs:
|
||||
* tcb: Refers to a task in the ready-to-run list (normally
|
||||
* the task at the the head of the list). It most be
|
||||
* the task at the head of the list). It most be
|
||||
* stopped, its context saved and moved into one of the
|
||||
* waiting task lists. It it was the task at the head
|
||||
* of the ready-to-run list, then a context to the new
|
||||
|
||||
@@ -138,7 +138,7 @@ static void _up_dumponexit(FAR _TCB *tcb, FAR void *arg)
|
||||
* This function causes the currently executing task to cease
|
||||
* to exist. This is a special case of task_delete() where the task to
|
||||
* be deleted is the currently executing task. It is more complex because
|
||||
* a context switch must be perform to the the next ready to run task.
|
||||
* a context switch must be perform to the next ready to run task.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
@@ -2119,7 +2119,7 @@ int up_multicastfilter(FAR struct uip_driver_s *dev, FAR ubyte *mac, boolean ena
|
||||
* is '0', the multicast packet is rejected.
|
||||
*/
|
||||
|
||||
/* Apply the hash algorithm to the the hash table index and bit number
|
||||
/* Apply the hash algorithm to the hash table index and bit number
|
||||
* corresponding to this MAC
|
||||
*/
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ void up_sigdeliver(void)
|
||||
sig_deliver_t sigdeliver;
|
||||
|
||||
/* Save the errno. This must be preserved throughout the signal handling
|
||||
* so that the the user code final gets the correct errno value (probably
|
||||
* so that the user code final gets the correct errno value (probably
|
||||
* EINTR).
|
||||
*/
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ void up_sigdeliver(void)
|
||||
sig_deliver_t sigdeliver;
|
||||
|
||||
/* Save the errno. This must be preserved throughout the signal handling
|
||||
* so that the the user code final gets the correct errno value (probably
|
||||
* so that the user code final gets the correct errno value (probably
|
||||
* EINTR).
|
||||
*/
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ void up_sigdeliver(void)
|
||||
sig_deliver_t sigdeliver;
|
||||
|
||||
/* Save the errno. This must be preserved throughout the signal handling
|
||||
* so that the the user code final gets the correct errno value (probably
|
||||
* so that the user code final gets the correct errno value (probably
|
||||
* EINTR).
|
||||
*/
|
||||
|
||||
|
||||
@@ -51,9 +51,25 @@
|
||||
#include <nuttx/symtab.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Definitions
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
#undef NXFLAT_DUMPBUFFER /* Define to enable very verbose buffer dumping */
|
||||
|
||||
/* CONFIG_DEBUG, CONFIG_DEBUG_VERBOSE, and CONFIG_DEBUG_BINFMT have to be
|
||||
* defined or NXFLAT_DUMPBUFFER does nothing.
|
||||
*/
|
||||
|
||||
#if !defined(CONFIG_DEBUG_VERBOSE) || !defined (CONFIG_DEBUG_BINFMT)
|
||||
# undef NXFLAT_DUMPBUFFER
|
||||
#endif
|
||||
|
||||
#ifdef NXFLAT_DUMPBUFFER
|
||||
# define nxflat_dumpbuffer(m,b,n) bvdbgdumpbuffer(m,b,n)
|
||||
#else
|
||||
# define nxflat_dumpbuffer(m,b,n)
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Private Types
|
||||
****************************************************************************/
|
||||
@@ -72,7 +88,7 @@
|
||||
* Description:
|
||||
* Perform the NXFLAT_RELOC_TYPE_REL32I binding:
|
||||
*
|
||||
* Meaning: Object file contains a 32-bit offset into I-Space at the the offset.
|
||||
* Meaning: Object file contains a 32-bit offset into I-Space at the offset.
|
||||
* Fixup: Add mapped I-Space address to the offset.
|
||||
*
|
||||
* Returned Value:
|
||||
@@ -111,7 +127,7 @@ static inline int nxflat_bindrel32i(FAR struct nxflat_loadinfo_s *loadinfo,
|
||||
* Description:
|
||||
* Perform the NXFLAT_RELOC_TYPE_REL32D binding:
|
||||
*
|
||||
* Meaning: Object file contains a 32-bit offset into D-Space at the the offset.
|
||||
* Meaning: Object file contains a 32-bit offset into D-Space at the offset.
|
||||
* Fixup: Add allocated D-Space address to the offset.
|
||||
*
|
||||
* Returned Value:
|
||||
@@ -246,7 +262,7 @@ static inline int nxflat_gotrelocs(FAR struct nxflat_loadinfo_s *loadinfo)
|
||||
{
|
||||
|
||||
/* NXFLAT_RELOC_TYPE_REL32I Meaning: Object file contains a 32-bit offset
|
||||
* into I-Space at the the offset.
|
||||
* into I-Space at the offset.
|
||||
* Fixup: Add mapped I-Space address to the offset.
|
||||
*/
|
||||
|
||||
@@ -257,7 +273,7 @@ static inline int nxflat_gotrelocs(FAR struct nxflat_loadinfo_s *loadinfo)
|
||||
break;
|
||||
|
||||
/* NXFLAT_RELOC_TYPE_REL32D Meaning: Object file contains a 32-bit offset
|
||||
* into D-Space at the the offset.
|
||||
* into D-Space at the offset.
|
||||
* Fixup: Add allocated D-Space address to the
|
||||
* offset.
|
||||
*/
|
||||
@@ -301,6 +317,15 @@ static inline int nxflat_gotrelocs(FAR struct nxflat_loadinfo_s *loadinfo)
|
||||
}
|
||||
}
|
||||
|
||||
/* Dump the relocation got */
|
||||
|
||||
#ifdef NXFLAT_DUMPBUFFER
|
||||
if (ret == OK && nrelocs > 0)
|
||||
{
|
||||
relocs = (FAR struct nxflat_reloc_s*)(offset - loadinfo->isize + loadinfo->dspace->region);
|
||||
nxflat_dumpbuffer("GOT", (FAR const ubyte*)relocs, nrelocs * sizeof(struct nxflat_reloc_s));
|
||||
}
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -396,11 +421,19 @@ static inline int nxflat_bindimports(FAR struct nxflat_loadinfo_s *loadinfo,
|
||||
|
||||
imports[i].i_funcaddress = (uint32)symbol->sym_value;
|
||||
|
||||
bvdbg("Bound imported function '%s' to address %08x\n",
|
||||
symname, imports[i].i_funcaddress);
|
||||
bvdbg("Bound import %d (%08p) to export 's' (%08x)\n",
|
||||
i, &imports[i], symname, imports[i].i_funcaddress);
|
||||
}
|
||||
}
|
||||
|
||||
/* Dump the relocation import table */
|
||||
|
||||
#ifdef NXFLAT_DUMPBUFFER
|
||||
if (nimports > 0)
|
||||
{
|
||||
nxflat_dumpbuffer("Imports", (FAR const ubyte*)imports, nimports * sizeof(struct nxflat_import_s));
|
||||
}
|
||||
#endif
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ int nxflat_verifyheader(const struct nxflat_hdr_s *header)
|
||||
|
||||
/* Check the FLT header -- magic number and revision.
|
||||
*
|
||||
* If the the magic number does not match. Just return
|
||||
* If the magic number does not match. Just return
|
||||
* silently. This is not our binary.
|
||||
*/
|
||||
|
||||
|
||||
+22
-23
@@ -55,13 +55,32 @@
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
#undef NXFLAT_DUMPBUFFER /* Define to enable very verbose buffer dumping */
|
||||
|
||||
/* CONFIG_DEBUG, CONFIG_DEBUG_VERBOSE, and CONFIG_DEBUG_BINFMT have to be
|
||||
* defined or NXFLAT_DUMPBUFFER does nothing.
|
||||
*/
|
||||
|
||||
#if !defined(CONFIG_DEBUG_VERBOSE) || !defined (CONFIG_DEBUG_BINFMT)
|
||||
# undef NXFLAT_DUMPBUFFER
|
||||
#endif
|
||||
|
||||
#ifdef NXFLAT_DUMPBUFFER
|
||||
# define nxflat_dumpbuffer(m,b,n) bvdbgdumpbuffer(m,b,n)
|
||||
#else
|
||||
# define nxflat_dumpbuffer(m,b,n)
|
||||
#endif
|
||||
|
||||
#ifndef MIN
|
||||
# define MIN(a,b) (a < b ? a : b)
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Private Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
static int nxflat_loadbinary(struct binary_s *binp);
|
||||
#if defined(CONFIG_DEBUG) && defined(CONFIG_DEBUG_BINFMT)
|
||||
static void nxflat_dumpmemory(void *addr, int nbytes);
|
||||
static void nxflat_dumploadinfo(struct nxflat_loadinfo_s *loadinfo);
|
||||
#endif
|
||||
|
||||
@@ -79,25 +98,6 @@ static struct binfmt_s g_nxflatbinfmt =
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: nnxflat_dumpmemory
|
||||
****************************************************************************/
|
||||
|
||||
#if defined(CONFIG_DEBUG) && defined(CONFIG_DEBUG_BINFMT)
|
||||
static void nxflat_dumpmemory(void *addr, int nbytes)
|
||||
{
|
||||
ubyte *ptr;
|
||||
|
||||
bdbg(" ADDRESS VALUE\n");
|
||||
for (ptr = (ubyte*)addr; nbytes > 0; ptr += 4, nbytes -= 4)
|
||||
{
|
||||
bdbg(" %p: %02x %02x %02x %02x\n", ptr, ptr[0], ptr[1], ptr[2], ptr[3]);
|
||||
}
|
||||
}
|
||||
#else
|
||||
# define nxflat_dumpmemory(a,n)
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: nxflat_dumploadinfo
|
||||
****************************************************************************/
|
||||
@@ -115,7 +115,7 @@ static void nxflat_dumploadinfo(struct nxflat_loadinfo_s *loadinfo)
|
||||
|
||||
bdbg(" DSPACE:\n");
|
||||
bdbg(" dspace: %08lx\n", loadinfo->dspace);
|
||||
if (oadinfo->dspace != NULL)
|
||||
if (loadinfo->dspace != NULL)
|
||||
{
|
||||
bdbg(" crefs: %d\n", loadinfo->dspace->crefs);
|
||||
bdbg(" region: %08lx\n", loadinfo->dspace->region);
|
||||
@@ -196,8 +196,7 @@ static int nxflat_loadbinary(struct binary_s *binp)
|
||||
binp->isize = loadinfo.isize;
|
||||
binp->stacksize = loadinfo.stacksize;
|
||||
|
||||
bvdbg("ENTRY CODE:\n");
|
||||
nxflat_dumpmemory(binp->entrypt, 16*sizeof(uint32));
|
||||
nxflat_dumpbuffer("Entry code", (FAR const ubyte*)binp->entrypt, MIN(binp->isize,512));
|
||||
nxflat_uninit(&loadinfo);
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/* The LM3S6918 has 256Kb of FLASH beginning at address 0x0000:0000. However,
|
||||
* if the the Eagle100 Ethernet bootloader is used, then the entry point must
|
||||
* if the Eagle100 Ethernet bootloader is used, then the entry point must
|
||||
* be at the following offset in FLASH (and the size of the FLASH must be
|
||||
* reduced to 248Kb):
|
||||
*/
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/* The LM3S6918 has 256Kb of FLASH beginning at address 0x0000:0000. However,
|
||||
* if the the Eagle100 Ethernet bootloader is used, then the entry point must
|
||||
* if the Eagle100 Ethernet bootloader is used, then the entry point must
|
||||
* be at the following offset in FLASH (and the size of the FLASH must be
|
||||
* reduced to 248Kb):
|
||||
*/
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/* The LM3S6918 has 256Kb of FLASH beginning at address 0x0000:0000. However,
|
||||
* if the the Eagle100 Ethernet bootloader is used, then the entry point must
|
||||
* if the Eagle100 Ethernet bootloader is used, then the entry point must
|
||||
* be at the following offset in FLASH (and the size of the FLASH must be
|
||||
* reduced to 248Kb):
|
||||
*/
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/* The LM3S6918 has 256Kb of FLASH beginning at address 0x0000:0000. However,
|
||||
* if the the Eagle100 Ethernet bootloader is used, then the entry point must
|
||||
* if the Eagle100 Ethernet bootloader is used, then the entry point must
|
||||
* be at the following offset in FLASH (and the size of the FLASH must be
|
||||
* reduced to 248Kb):
|
||||
*/
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user